Softwares: Tortoise SVN Crucible JIRA

Transcrição

Softwares: Tortoise SVN Crucible JIRA
Faculdade de Tecnologia SENAC - Goiás
Projeto Integrador
Sistemas de Gestão Empresarial
Softwares: Tortoise SVN
Crucible
JIRA
Diego Miranda
José Rodrigues Neto
Romário Sena
Warley Gabriel
Introdução
Nós da Clavin Sistemas entendemos que para uma Software House o que temos
de mais valioso é o produto, o bem mais precioso que possuímos é nosso código,
aquele que dá origem a aplicação que é comercializada.
Priorizando a qualidade do código, teremos uma aplicação mais qualificada e
mais respeitada no mercado, posteriormente a isto uma gama interessante de clientes
e assim um sucesso no mercado.
Para garantir a segurança do nosso “bem mais precioso”, necessitamos de 3
ferramentas que irão controlar o atendimento ao cliente (bugs e projetos) e a
criação/manutenção de softwares, são elas: JIRA, Tortoise SVN e Crucible. Ocorrendo
uma integração entre as três teremos um controle completo do que está no produto
(código) e porque aquele código está lá, quem solicitou a implementação.
JIRA
Software controlador de chamados, projetos e customizações. Este software
deve ser a porta de entrada para o cliente, qualquer solicitação de modificação do
sistema deve passar pelo JIRA.
Quando o cliente entrar em contato na Clavin, toda a sua solicitação deve ser
descrita no JIRA, criando assim um chamado que deverá percorrer toda a empresa
(analise, desenvolvimento e testes). Ao passar pelo departamento de testes o
chamado deve ser encaminhado ao suporte para o mesmo entregar a solução ao
cliente.
Implementando este software controlaremos todas as solicitações dos clientes
junto a Clavin, porém o JIRA oferece bem mais que isso, podemos controlar os
processos da empresa usando metodologias Ágeis, os desenvolvedores poderão lançar
horas nos chamados, assim controlaremos quanto tempo esta sendo gasto por
implementação, com base nessas informações o faturamento ocorrerá junto ao
cliente.
Tortoise SVN
Software faz versionamento de código, com o SVN saberemos o que foi
alterado, quando foi alterado e quem alterou, dando assim uma completa segurança
sobre o que está (código) em nosso produto.
O SVN será o “dono” do nosso produto, todos os códigos implementados pelo
desenvolvimento, analises de projetos, casos de teste será controlado por ele, com
este software saberemos a exata data/hora de quando algum código foi alterado, por
quem foi alterado. O Tortoise integrando com o JIRA saberemos qual chamado esta
sendo tratado naquela implementação, qual cliente solicitou, e o porquê da
solicitação.
Caso ocorra algo de grave em alguma rotina do sistema, poderemos
simplesmente fazer um revert nas alterações feitas naquela rotina em especifico.
Resumindo o Tortoise SVN é o centralizador do que ocorre em nosso produto,
ele é o responsável por organizar as alterações feitas.
Crucible
O Crucible deve integrar com o JIRA e o Tortoise SVN, carregando informações
de um para o outro. A maior vantagem do Crucible será a revisão de código que
ocorrera a cada commit feito no sistema.
Este processo ocorrerá da seguinte forma: desenvolvedor, desenvolve suas
alterações e aplica as mesmas na “aplicação paralela”, via Tortoise SVN, Crucible
solicita qual chamado é referente a solicitação e lança horas no chamado (integrando
com o JIRA). Após a implementação estar no sistema, responsável pelo departamento
fara uma revisão do código que foi implementado, fazendo assim um check-list de
possíveis inconsistências, este review ocorrerá utilizando o Crucible.
Assim que houver um commit na “aplicação paralela” o código irá para a
“versão estável” somente após a revisão de código ser feita pelo Crucible, entregando
assim maior segurança sobre a versão.
Integração dos sistemas e a segurança da informação.
Com a integração dos três sistemas, cada um com a sua responsabilidade e uma
troca de informações entre eles, conseguiremos um software com versionamento de
código e revisão de código sendo executada a cada commit. E todo este processo que
ocorre no desenvolvimento do software estará disponível no JIRA para que caso o
usuário tenha permissão será possível ver todas as alterações feitas no código para
aquela melhoria ou projeto.
A segurança que estas três ferramentas proporcionaram é a segurança no
produto que está sendo comercializado, trata-se de um controle completo em cima de
algo virtual que está nas mãos do colaborador.
Tudo o que vai ser commitado no código, vai ser commitado somente caso a
pessoa tenha permissão de usuário para alterar aquele modulo em especifico.
Infraestrutura para suportar estas aplicações.
É necessário um servidor com um bom aporte para trafego de rede, pois o JIRA
e Crucible são aplicações WEB. O JIRA em especial poderá ser acessado de fora da
rede interna da corporação, o Crucible não, este será acessado somente internamente.
O Tortoise SVN deverá ter um espaço maior, pois lá estará o código de todas as
aplicações desenvolvidas, será estabelecido uma rotina de backup para o disco e ainda
teremos uma replicação deste disco, evitando uma perca destas informações.
Fluxo do processo.
1.0 - Cliente abri solicitação (projeto ou bug) pelo JIRA
2.0 - Desenvolvedor recebe chamado pelo JIRA
3.0 - Desenvolvedor desenvolve aplicação
4.0 - Desenvolvedor commita código pelo SVN, com controle do Crucible e informando
quando tempo foi gasto (esta informação vai para o JIRA)
5.0 - Responsável pelo departamento faz revisão de código pelo Crucible
6.0 - Após aprovação Crucible redireciona código para a “versão estável”
7.0 - Departamento de teste recebe chamado, testa funcionalidade/software
8.0 - Suporte recebe chamado e comunica cliente
9.0 - Cliente fecha chamado/solicitação.
Conclusão.
As três ferramentas juntas darão aporte ao primeiro contato com o cliente,
sendo assim responsável pelos projetos executados naquele momento, tratará do
versionamento de código e será responsável pela segurança do que está na aplicação.
É imprescindível que as aplicações sejam monitoradas assim como os hardwares que a
suportam. É necessário controlar os acessos aos sistemas citados acima para que não
ocorra uma liberdade por parte de alguém malicioso.