50
Aplicando Boas práticas Metodologias Por que Projetos falham? Gestão e Processos para construção de Software

Gestão e Processos para Desenvolvimento de Software

Embed Size (px)

DESCRIPTION

Minha palestra para o curso Técnico em Informática Pronatec em Santos Dumond/MG, onde falei sobre falhas durante a construção de software e exemplifiquei algumas boas práticas (técnicas) para se fazer um processo de software.

Citation preview

Page 1: Gestão e Processos para Desenvolvimento de Software

Aplicando

Boas práticas

Metodologias

Por que Projetos

falham?

Gestão e Processospara construção

de Software

Page 2: Gestão e Processos para Desenvolvimento de Software

Rafael AmaralAnalista de Sistemas / PSM I

- Professional Scrum Master I

- Conhecimentos em metodologias de desenvolvimento de software: SCRUM, Kanban, RUP e CMMI;

- Experiência em Análise de Sistemas e Gestão de Projetos - implementação de Processos de Software, Especificação de Sistemas (Casos de Uso, Levantamento de Requisitos, Padrões de Desenvolvimento, etc);

- Programador PHP e VB.Net;

- Experiente em modelagem de banco de dados;

- Sólidos conhecimentos em POO, CakePHP, Arquitetura MVC, SQL, Ajax, JavaScript, jQuery, CSS, SEO, UML, MySql e Postgres;

- Ferramental: Enterprise Architect, Axure, MS Project, Dreamweaver, Fireworks, Coreldraw, Photoshop.

Twitter: @rafaelamaralllFacebook: rafaelamaralllLinkedIn: @rafaelamaralllProfissionais TI: rafaelamaralll

www.rafaelamaral.com.br

Page 3: Gestão e Processos para Desenvolvimento de Software

Desafio

Orçamento

Prazo

Custo

Page 4: Gestão e Processos para Desenvolvimento de Software

Desafio

Quanto vai custar???Quando fica pronto???

O meu site cresceu, e por consequência, preciso obter mais informações dos

meus clientes por meio de uma página de contato de forma a aprimorar algumas estratégias e conhecer mais o meu público alvo. Para isso, preciso

criar uma simples página contendo um simples formulário de contato.A princípio, preciso saber do cliente os seguintes dados:

NomeE-mailTelefoneEndereçoSexo

Motivo do contato

Gestão e Processos Rafael Amaral Pág. 4

Page 5: Gestão e Processos para Desenvolvimento de Software

Desafio

Nome

E-mail

Telefone

Endereço

Sexo

Motivo contato

Enviar

Gestão e Processos Rafael Amaral Pág. 5

Page 6: Gestão e Processos para Desenvolvimento de Software

Desafio

Nome

E-mail

Telefone

CEP

Rua

Bairro

Cidade

Estado

Motivo do contato

Enviar

Preencher de forma automática os campos de endereço após preenchido o CEP

* Fields bloqueados

Gestão e Processos Rafael Amaral Pág. 6

Page 7: Gestão e Processos para Desenvolvimento de Software

Desafio

Nome

E-mail

Telefone

CEP

Rua

Bairro

Cidade

Estado

Motivo do contato

Enviar

* Tratamento de erros de preenchimento em tempo real

contatomeudominio.com.br

* Este campo é de preenchimento obrigatório.

* Verifique se você digitou um e-mail válido.

Gestão e Processos Rafael Amaral Pág. 7

Page 8: Gestão e Processos para Desenvolvimento de Software

Desafio

Nome

E-mail

Telefone

CEP

Rua

Bairro

Cidade

Estado

Motivo do contato

Enviar

(_ _) _ _ _ _ - _ _ _ _

Máscara de preenchimento

Lembrando que, telefones de São Paulo têm 9 dígitos e o sistema deverá reconhecer automaticamente pelo preenchimento do CEP.

Gestão e Processos Rafael Amaral Pág. 8

* O CEP deverá ser preenchido primeiro?

Page 9: Gestão e Processos para Desenvolvimento de Software

Conclusão

O que podemos concluir?

Gestão e Processos Rafael Amaral Pág. 9

Page 10: Gestão e Processos para Desenvolvimento de Software

Conclusão

O que podemos concluir?

Gestão e Processos Rafael Amaral Pág. 10

Page 11: Gestão e Processos para Desenvolvimento de Software

Conclusão

Desenolvedor

Cliente

- Fechamos um valor fixo no início da negociação, e agora?

- Quem vai levar o prejuízo?

- O cliente não soube explicar ao certo o que queria..- O cliente disse que seria um SIMPLES formulário...

- Vocês cobraram X para construir meu projeto e agora quer que eu pague 3X?- Sua empresa e serviços são péssimos...

Gestão e Processos Rafael Amaral Pág. 11

Page 12: Gestão e Processos para Desenvolvimento de Software

Conclusão

Fizemos uma analogia utilizando como exemplo, um simples formulário de

contato.

Agora, imagine se o cliente pedisse para construir uma loja virtual.

Gestão e Processos Rafael Amaral Pág. 12

Page 13: Gestão e Processos para Desenvolvimento de Software

Por que Projetos Falham?

Cliente

não sabe

o que quer

Mudanças de

requisitos

Falha de

comunicação

Estimativas

fantasiosas

Page 14: Gestão e Processos para Desenvolvimento de Software

Por que projetos falham?

Gestão e Processos Rafael Amaral Pág. 14

Page 15: Gestão e Processos para Desenvolvimento de Software

Cliente não sabe o que quer...

- Cliente NÃO sabe o que quer ou nem sempre consegue expressar o que

pensa

- E em muitos casos, explicam totalmente o contrário do que realmente queriam explicar

- Falta de conhecimento de tendências- Falta de sensibilidade

- Falta de conhecimento técnico- Conhecimento de mundos diferentes...

Motivos:

Gestão e Processos Rafael Amaral Pág. 15

Page 16: Gestão e Processos para Desenvolvimento de Software

- Você entendeu realmente o que seu cliente precisa? Como você validou

isso?

- E seu cliente, consegue entender quando você diz que as mensagens do

sistema serão exibidas através de uma Janela Modal?

Falha de comunicação...

Gestão e Processos Rafael Amaral Pág. 16

Page 17: Gestão e Processos para Desenvolvimento de Software

Falha de comunicação...

Dr. esse comprimido

tem problema se tomar

com diarréia?

Olha! Eu costumo

tomar com água, mas o

Sr. quem sabe!

Gestão e Processos Rafael Amaral Pág. 17

Page 18: Gestão e Processos para Desenvolvimento de Software

Mudanças de requisitos...

Seu Manuel,

precisamos fazer uma

pequena mudança!

Gestão e Processos Rafael Amaral Pág. 18

Page 19: Gestão e Processos para Desenvolvimento de Software

Estimativas fantasiosas...

Gasto cerca de 20 minutos de casa ao trabalho...

Gestão e Processos Rafael Amaral Pág. 19

Page 20: Gestão e Processos para Desenvolvimento de Software

Estimativas fantasiosas...

Será?!

Gestão e Processos Rafael Amaral Pág. 20

Page 21: Gestão e Processos para Desenvolvimento de Software

Produtos fora de conformidade

Gestão e Processos Rafael Amaral Pág. 21

Page 22: Gestão e Processos para Desenvolvimento de Software

Produtos sem aceitação ao usuário final

Gestão e Processos Rafael Amaral Pág. 22

Vamos construir um software para um contador...

Page 23: Gestão e Processos para Desenvolvimento de Software

Produtos sem aceitação ao usuário final

Gestão e Processos Rafael Amaral Pág. 23

Page 24: Gestão e Processos para Desenvolvimento de Software

Conclusão

- Não é complicado programar, é complicado desenvolver uma solução que

automatize as tarefas do usuário final- A TI deve ser o braço direito das demais áreas dentro da organização não

uma pedra de tropeço

- É preciso planejar

- Criar procedimentos- Investir tempo em construir modelos e processos

- Validar modelos e processos

Gestão e Processos Rafael Amaral Pág. 24

Page 25: Gestão e Processos para Desenvolvimento de Software

Processos de Software

CMMI

RUP

Scrum

Page 26: Gestão e Processos para Desenvolvimento de Software

Introdução

A utilização de um processo de software têm sido apontada como um fator

primordial para o sucesso de empresas de desenvolvimento de software.

‘’é um conjunto de atividades, ligadas por padrões de relacionamento entre ela, pelas quais se as atividades operarem corretamente e de acordo com os

padrões requeridos, o resultado desejado é produzido. O resultado desejado é

um software de alta qualidade e baixo custo. Obviamente , um processo que não aumenta a produção (não suporta projetos de software grandes) ou não

pode produzir software com boa qualidade não é um processo adequado.’’Jalote

Gestão e Processos Rafael Amaral Pág. 26

Page 27: Gestão e Processos para Desenvolvimento de Software

Razões

- Qualidade do software (Custo, Escopo e Tempo)

Gestão e Processos Rafael Amaral Pág. 27

Page 28: Gestão e Processos para Desenvolvimento de Software

Atividades do Processo de Software

- Especificação

- Análise de Requisitos

- Especificação de Sistema

- Projeto

- Modelo conceitual- Projeto de Interface

- Implementação

- Codificação

- Validação

- Testes

- Manutenção e Evolução

Gestão e Processos Rafael Amaral Pág. 28

Page 29: Gestão e Processos para Desenvolvimento de Software

Modelos de Processos de Software

- CMMI

- RUP

- XP

- Scrum

- Etc.

Gestão e Processos Rafael Amaral Pág. 29

Page 30: Gestão e Processos para Desenvolvimento de Software

Aplicando ‘‘Boas Práticas’’

Um pouco

daqui

Um bocado

deste...

Page 31: Gestão e Processos para Desenvolvimento de Software

Escopo do produto

- O que vai ser construído?

- Braimstorm- Defina os limites do projeto:

- O que está dentro e o que está fora do projeto

Gestão e Processos Rafael Amaral Pág. 31

Page 32: Gestão e Processos para Desenvolvimento de Software

Defina seu Stakeholder

- Identifique quem responderá pelo projeto

- Quem fornecerá os requisitos- Quem tem o conhecimento de domínio

- Quem é o patrocinador- Quem receberá feedback

Gestão e Processos Rafael Amaral Pág. 32

Page 33: Gestão e Processos para Desenvolvimento de Software

Defina seu Stakeholder

- Tome cuidado quando se tem vários fornecedores de requisitos...

Especialistas de domínio ou alta gestão:

- Têm visão diferente - Explicam diferente- Pedem de formas diferentes

Gestão e Processos Rafael Amaral Pág. 33

Page 34: Gestão e Processos para Desenvolvimento de Software

Requisitos

- Colete requisitos (as necessidades) do seu cliente

- Reuniões formais/ não formais- Conversas face a face

- Brainstorm- Observação

Como coletar?

Gestão e Processos Rafael Amaral Pág. 34

Page 35: Gestão e Processos para Desenvolvimento de Software

Casos de Uso

- Comece com o que tem e crie cenários

- Desenhe diagramas (se necessário)

- Descobre novas informações

- Descobre requisitos escondidos

- Valide seu entendimento

Primeiro...

Com isso, você...

E, por fim...

Gestão e Processos Rafael Amaral Pág. 35

Page 36: Gestão e Processos para Desenvolvimento de Software

Ponto de partida

A esta altura, você já terá uma ideia:

- do que será construído

- do que precisará fazer para construir

- do tempo que precisará para construir- custos do projeto

Gestão e Processos Rafael Amaral Pág. 36

Page 37: Gestão e Processos para Desenvolvimento de Software

Planeje seus passos

- Crie um canal de comunicação com o cliente de fácil entendimento e acesso

para ele

- Crie um passo a passo das atividades de entregas do projeto (EAP)

- Para cada atividade da EAP, verifique os recursos que precisará (e sua disponibilidade) para concluir a mesma

- Crie um plano para que este recurso esteja disponível

- Defina prazos de conclusão das atividades da EAP

- Criar uma linguagem (termologia) comum entre você e o cliente (comunicação)

- Fazer uma breve documentação- Criar diagramas de alto nível

- Elaborar contratos (se achar necessário)- Envolver o cliente no projeto

Não se esqueça de:

Gestão e Processos Rafael Amaral Pág. 37

Page 38: Gestão e Processos para Desenvolvimento de Software

Pintar uma sala

Prepararmateriais

Prepararsala

Pintarsala

Limparsala

Ÿ Comprar tintaŸ Comprar escadaŸ Comprar rolosŸ Comprar removedor de

papel de parede

1.

1.1.

1.2.1. 1.2.2.

1.2.2.1. 1.2.2.2. 1.2.2.3.

1.2. 1.3. 1.4.

Nível 1

Nível 2

Nível 3

Nível 4

Gestão e Processos Rafael Amaral Pág. 38

EAP (Estrutura Analítica do Projeto)

Page 39: Gestão e Processos para Desenvolvimento de Software

Prototipação

- Antes de pisar fundo no acelerador, crie protótipos de telas...

- Simule as principais funcionalidades e a suas interações com o usuário

Projeto aceito?

SIM

- Crie Casos de Testes

NÃO

- Anote as mudanças- Revise a documentação e os modelos de diagramas (RTF)

- Refaça o protótipo

Gestão e Processos Rafael Amaral Pág. 39

Page 40: Gestão e Processos para Desenvolvimento de Software

Desenvolva com qualidade

Outras pessoas poderão utilizar/reaproveitar seu código, então, mantenha um padrão e sensibilidade ao criar variáveis, métodos, funções e principalmente o

cuidado ao documentar seu código.

- Codifique com qualidade

- Crie variáveis e/ou álias que caracterizam o contexto- Idente seu código

- Faça bons comentários

- Programe em par

Lembre-se...

Gestão e Processos Rafael Amaral Pág. 40

Page 41: Gestão e Processos para Desenvolvimento de Software

Desenvolva com qualidade

Olhe a cara de quem não identa o código!

Gestão e Processos Rafael Amaral Pág. 41

Page 42: Gestão e Processos para Desenvolvimento de Software

Desenvolvendo...

Precisa se concentrar, sim. Porém, não se isole!

Gestão e Processos Rafael Amaral Pág. 42

Page 43: Gestão e Processos para Desenvolvimento de Software

Feedback

- Desenvolva mas não se isole do mundo, principalmente do seu cliente!

- Mantenha o cliente a par do projeto- Mantenha um histórico das conversas

- Peça-lhe feedbacks

- Tire dúvidas constantemente (mesmo que elas sejam óbvias/absurdas)

Gestão e Processos Rafael Amaral Pág. 43

Page 44: Gestão e Processos para Desenvolvimento de Software

Feedback

- Mantenha os stakeholders a par do projeto

Gestão e Processos Rafael Amaral Pág. 44

Page 45: Gestão e Processos para Desenvolvimento de Software

Quase lá...

- Faça testes do que estiver pronto

- Valide o que você desenvolveu com o que o cliente pediu (documentação)- Faça uma RTF

Gestão e Processos Rafael Amaral Pág. 45

Page 46: Gestão e Processos para Desenvolvimento de Software

Fase pronta!

- Forneça o que está pronto ao cliente

- Valide o que você desenvolveu com o que combinou com ele- Faça Testes de Aceitação

- Crie um termo de aceitação

Gestão e Processos Rafael Amaral Pág. 46

Page 47: Gestão e Processos para Desenvolvimento de Software

Lembre-se

- Seu cliente é usuário e seu usuário é seu cliente

- Faça uma aplicação que alguém irá utilizar (usabilidade)

Um dos maiores desafios no desenvolvimento é o da construção do sistema certo, que preencha as necessidades dos usuários a um preço razoável.

O grande desafio do analista não se limita apenas em implementar melhores soluções tecnológicas, mas sim em mudar a cultura de uma empresa.

Rafael Amaral

Gestão e Processos Rafael Amaral Pág. 47

Page 48: Gestão e Processos para Desenvolvimento de Software

Lembre-se

- Seu cliente é usuário e seu usuário é seu cliente

- Faça uma aplicação que alguém irá utilizar (usabilidade)

Um dos maiores desafios no desenvolvimento é o da construção do sistema certo, que preencha as necessidades dos usuários a um preço razoável.

O grande desafio do analista não se limita apenas em implementar melhores soluções tecnológicas, mas sim em mudar a cultura de uma empresa.

Rafael Amaral

Gestão e Processos Rafael Amaral Pág. 48

Page 49: Gestão e Processos para Desenvolvimento de Software

Gestão e Processos Rafael Amaral Pág. 49

Page 50: Gestão e Processos para Desenvolvimento de Software

Rafael AmaralAnalista de Sistemas / PSM I

Twitter: @rafaelamaralllFacebook: rafaelamaralllLinkedIn: @rafaelamaralllProfissionais TI: rafaelamaralll

www.rafaelamaral.com.br