A importância do planejamento no desenvolvimento de um projeto



Esse vídeo mostra a importância de fazer um planejamento antes de começar a elaborar um projeto de software.
O primeiro passo é verificar quais são os requisitos que o cliente quer, saber o que realmente ele precisa. Depois dessa etapa, é elaborar o projeto e mandar para o cliente pra ele verificar se é aquilo que ele real mente precisa. Se o projeto for aprovado pelo cliente, começa o desenvolvimento do produto e a integração e os testes.
Com um bom planejamento você consegue elaborar um projeto de ótima qualidade, entrega da data prevista e com custos baixos, deixando assim o cliente satisfeito.

Ciclo de vida de um Software

Um ciclo de vida de um software nada mais é como as atividades serão executadas durante o projeto e em que ordem.
Nos últimos 40 anos foram criados vários modelos de ciclos de vida. Aqui vamos descrever os dois modelos mais utilizados.

Modelo Cascata
Modelo Cascata é um modelo seqüencial de desenvolvimento de software. Nele, o ciclo de vida de um projeto começa pelos Requisitos seguindo por Especificações, Desenho, Implementação, Testes, Integração e Manutenção, onde, uma é executada após a outra, podendo inclusive ter sobreposição entre elas, ou seja, iniciar uma antes de finalizar a anterior.

Algumas características do Modelo Cascata:
- A execução das atividades é seqüencial;
- Todos os requisitos são definidos no inicio do projeto;
- O usuário é envolvido no inicio e no fim do projeto (na entrega do produto final);
- As chances de falha durante o projeto é grande;
- As mudanças nos requisitos não são bem vistas, pois gera retrabalho e conseqüentemente custos;




Modelo Iterativo Incremental

Modelo iterativo incremental é um modelo onde o objetivo são fazer pequenas entregas (releases) para o stakeholder. Ou também podemos dizer que o objetivo é entregar pequenas partes do produto final. E na finalização de cada uma, apresentar para o stakeholder validar, dando sua opinião se o que foi apresentado está dentro de suas expectativas. Lembrando que cada release é uma parte funcional e executável.
Quando todos os releases forem entregues e validados, começamos a integração final. E assim, teremos certeza que o produto fina,l é aquele que irá agregar valor ao negócio do cliente.
Cada iteração tem duração que varia de duas semanas a no máximo seis semanas.
Algumas características do Modelo Iterativo Incremental:
- Levantamento e gestão de requisitos são repetidos a cada nova iteração;
- O usuário é envolvido constantemente no projeto;
- O entendimento dos requisitos e os objetivos do sistema são melhorados ao longo das iterações;
- É mais fácil identificar se o projeto será entregue dentro do prazo e custo combinado;
- A gestão de requisitos e mudanças é facilitada;
- A evolução do requisito é bem vinda.


Kanban utilizado para desenvolver Software



Kanban significa “cartão visual”, é uma metodologia de produção que utiliza controles visuais (cartões) como sinalizadores de estoque ou status de uma determinada etapa do processo. 
A técnica do kanban começou a ser utilizada em desenvolvimento de software com a introdução dos métodos ágeis. Um quadro com cartões é utilizado para sinalizar o status do trabalho em andamento.
O primeiro passo é definir a ferramenta a ser usada para a aplicação do Kanban. Com um simples quadro branco ou cartões já é possível criar um controle de fluxo de histórias buscando 100% de eficiência. O quadro deve conter colunas para identificar os diversos status de uma história (ex: Não Iniciado, Em Andamento, Impedimento, Em Publicação, Concluído). 


 Da mesma forma, podemos transpor essa ideia para o quadro. Caso haja algum problema que impeça o andamento da história, a equipe pode “acender a luz vermelha”  acima da história para indicar a todos que o problema existe e ainda não foi solucionado.

Quando a equipe move, por exemplo, um cartão para a área de "concluído" do quadro, ela sinaliza para o demandante que está pronta para o próximo trabalho. Isso permite a criação do fluxo dentro de uma iteração e impede que a demanda seja empurrada para a equipe em grandes lotes. 

Com o canban você passa a ter um feedback  visual, facilitando a leitura visual em que etapa está o processo.

Qualidade em Software


O gerente de projetos de software sabe como é difícil entregar seus projetos, principalmente pela complexidade envolvida durante todo ciclo de desenvolvimento, entregar um projeto no prazo é uma grande maratona.
Uma das principais causas que gera atraso na entrega é a falta de qualidade do produto, por exemplo, o gerente de projetos prepara o produto, apresenta para o cliente, e na primeira execução da um problema na aplicação, devido a isso, terá que trazer o produto para a linha de produção, e terá que corrigir toda a etapa defeituosa, e esse trabalho acaba não sendo contabilizado no seu planejamento, e existem projetos que nem possuem planejamentos, aqueles projetos ágeis de mais. 
Um programador precisa resolver problemas complexos com qualidade e precisa ser cada vez mais produtivo/veloz para atingir um objetivo (desenvolver um produto, terminar um projeto da sua empresa e por ai vai). A melhor ferramenta não é a sua preferida ou aquela que você escolheu para seguir e amar, e sim aquela que te faz ser mais rápido, mais produtivo, com mais qualidade e que te dá mais conforto para trabalhar. A melhor ferramenta é a que melhor atende os requisitos da sua profissão e do seu projeto
Para ajudar no ciclo de desenvolvimento existem ferramentas para que você tenha o controle efetivo da qualidade durante o desenvolvimento. A idéia é usar a tecnologia a seu favor pra favorecer o controle de qualidade de seu projeto, por que o quanto mias cedo você testar, mais barato vai ser. Muitas empresas consideram teste de software como custo. A falta de qualidade de um projeto que acaba aumentando custos no projeto acaba gerando atraso e muito insucesso.

O que é um Software

Um software é um conjunto de programas de computadores, em suas diversas formas (código fonte, objeto, executável, APIs, scripts, etc.) e toda a sua documentação associada.

Os produtos de software podem ser desenvolvidos para um cliente em particular (Software personalizado, sob encomenda) ou para o mercado geral.

O software é um produto conceitual e lógico. Isto significa que o software não é um produto material, ele é um produto ou artefato virtual. Ele apenas existe na mente das pessoas envolvidas com o seu desenvolvimento e utilização.

Exemplos de Software.
  • Microsoft Office, composto pelo Word, Excel, Access, Power Point e etc.
  • Norton Anti-Virus
  • Photoshop
  • Linux, Windows (XP, Seven, Vista)