Desenvolvimento de Software                          para baixa plataforma1 Fase Artística ●   ou artesanal ●   profission...
○  x CAD     ○ cojunto de ferramentas e métodos     ○ criar sistemas        ■ alta qualidade        ■ sem erros        ■ f...
■  processos lentos e gordos    ■ grande "Lead Time"    ■ muito Work in Process○   framework conceitual○   Agile Manifesto...
●   técnica insentiva colaboração              ○ desenvolvedores              ○ QA              ○ negócio              ○ n...
clientes esteja pronto para pagar●   na otimização busca-se preservar o    valor com menos trabalho●   estratégia na elimi...
5 Lean IT ●   extensões dos princípios Lean     para o desenvolvimento     e gerenciamento de IT ●   basea-se na eliminaçã...
○   Teoria do Enfileiramento○   Custo de atraso○   Auto-determinação○   Motivação○   Liderança○   Expertise○   Integridade...
Upcoming SlideShare
Loading in …5
×

Desenvolvimento de Software para Baixa Plataforma

1,993 views

Published on

Fase Artística, Fase Engenharia, Fase Arquitetura, Lean Manufactoring, Lean IT e LSD

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,993
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Desenvolvimento de Software para Baixa Plataforma

  1. 1. Desenvolvimento de Software para baixa plataforma1 Fase Artística ● ou artesanal ● profissionais não especializados ○ Engenheiros ○ Matemáticos ○ Adm. Empresas ● sem metodologia ● sem padrões ● soluções diferentes a cada aplicação ● aplicações caras ● objetivos "simples" e específicos ● computadores fora da rede2 Fase Engenharia ● problemas aumentavam ● complexidade aumentava ● máquinas em rede ● software caros ● longo tempo de desenvolvimento ● necessário desenvolver ○ novos paradígmas ○ tecnologias de software ○ metodologias ● profissionais ○ reviram técnicas antigas ■ não funcionavam ● Oritentação a Objetos ○ paradigma da computação que une funcionalidade e estado no objeto ○ MIT em 1950/1960 para ambientes de inteligência artificial ○ formalmente em 1960 com Simula 67 ○ anos 70 com Smaltalk da Xerox ○ predominante em 1990 com ■ Visual FoxPro3 ■ C++ ■ Delphi ● Design Pattern ○ veio da engenharia e arquitetura (1977) ○ livro publicado em 1994 ○ marca uso de conceitos de outras áreas ● RUP(UML) ○ metodologia proprietária pela Raional (hoje da IBM) ○ surgimento em 95~98 ● CASE 1989~1995 ○ Computer Aided Software Engineering
  2. 2. ○ x CAD ○ cojunto de ferramentas e métodos ○ criar sistemas ■ alta qualidade ■ sem erros ■ fácil manutenção ■ sem depreciação ○ Geradores de Código ■ podiam criar produtos ● Framework ○ Enterprise JavaBeans ■ EJB 1.0 em 1998 ■ J2EE ● especificação ● API muito complexa ○ .Net em 2000 ○ Rails, Django, Sinatra3 Fase Arquitetura ● problemas ○ mais relacionados a negócio ○ alta volatilidade de regras ○ custo do software ○ tempo de desenvolvimento ○ tempo de resposta ● uso do embasamento da fase Engenharia ● uso de Frameworks ● RAD ○ modelo de processos de desenvolvimento iterativo e incremental de ciclo de vida extremamente curso (60 a 90 dias) ○ lança a idéia de planejamento mínimo e rápida prototipação ○ 1980 - modelo desenvolvimento espiral Barry Boehm ○ 1982 - modelo desenvolvimento evolucionário Tom Glib ○ RIPP ■ Rapid Interative Production Prototyping ○ melhor fase 1990 ○ MSF ■ Microsoft Solution Framework ■ 1994 ■ boas práticas ■ Microsoft usa Cascata/espiral ● Agile ○ conjunto de métodos de desenvolvimento criado como resposta ao uso indiscriminado do CMMI, RUP, PMBOK
  3. 3. ■ processos lentos e gordos ■ grande "Lead Time" ■ muito Work in Process○ framework conceitual○ Agile Manifesto em 2001○ DSDM ■ Dynamic System Development Method ■ 1994 ■ primariamente par disciplinar o RAD ■ 2007 ganha autonomia ■ baseado em limitação ● tempo ● recurso ■ JAD ● Joint Application Design ● processos para colega de requerimentos ● o usuário participa do desenvolvimento ● JAD workshops ○ IT ○ knowledge workers○ AUP ■ Agile Unified Process ■ RUP para Agile ■ desenvolvido pela IBM○ Agile Modeling ■ suporte a outros métodos ■ diminui a falta de modelagem ■ proporcional alguma documentação○ Crystal Clear ■ metodologia "leve" ■ projetos não críticos ■ foca eficiência e habilidade ■ foca pessoas e não processos e ferramentas○ XP ■ Extreme Programming ■ 1999 ■ foco ● qualidade ● responsividade na mudança de requerimentos ■ TDD ● Test Driven Development ● Kant Beck 2003 ● técnica baseada no ciclo curto ○ caso de teste ○ teste ○ código ○ teste ○ refatora ■ BDD ● Behavior Driven Development ● resposta ao TDD ● Dean North 2003
  4. 4. ● técnica insentiva colaboração ○ desenvolvedores ○ QA ○ negócio ○ não técnicos ● o comportamento determina o teste ● primeiro framework - JBehave ○ java ● RBehave ○ Ruby 2007 ○ incorporou ao RSpec ○ livro de RSpec e Cocumber em 2010 ● guiado por valores de negócio ○ Outside-in Development ○ FDD ■ Feature Driven Development ■ 2002 ■ processo baseado em "melhores práticas" ■ foca ● funcionalidade de valor para o cliente (feature) ● baseado em modelo ○ Scrum ■ "restart" de partica rugby após pequena infração ■ mais voltado a gerenciamento ■ novos paradígmas para gerenciamento ■ empirical process control ■ decisões tomadas pela equipe ○ Lean Software Development ■ derivado ● Lean Manugacturing ● Lean ID ■ tradução para princípios e práticas ● 2080 ○ Software Concept ○ 2005 ○ "inversão" do princípio de pareto ○ princípios ■ foco em funcionalidade ■ construção ou compra ■ prototipação ■ técinicas agile4 Lean Manufactoring ● Manufatura enxuta ● sistema Toyota de produção (TPS) 1990 ● filosofia de gestão ● totalmente focado na criação de VALOR para o cliente final ● valor é qualquer "coisa" que o
  5. 5. clientes esteja pronto para pagar● na otimização busca-se preservar o valor com menos trabalho● estratégia na eliminação de disperdícios● eliminando disperdício melhora qualidade, tempo e custo● ferramentas ○ processo contínuo ○ análise do fluxo (kanban) ○ produção por pull (kanban) ○ melhoramente contínuo (kaizen) ○ qualidade total ○ flexibilidade● tipos desperdícios ○ mura ■ irregularidade ○ muda ■ supéfulo ■ desnecessário ○ muri ■ impossível ■ muito difícil● classificação ○ Transportation ■ riscos ■ danos ■ perdas ■ custo ■ não transforma o produto ○ Inventory ■ de materiais ■ de trabalho em processo ■ de produto acabado ○ Motion ■ danos a quem cria o produto ■ desgaste de equipamentos ■ stress de funcionários ■ acidentes ○ Waiting ■ produto parado ○ Over-processing ■ além do pedido pelo cliente ■ melhor que o necessário ■ mais precisa que o necessário ○ Over-production ■ aumenta ● inventory ● waiting ● motion ● etc ○ Defects ■ retrabalho
  6. 6. 5 Lean IT ● extensões dos princípios Lean para o desenvolvimento e gerenciamento de IT ● basea-se na eliminação de desperdícios ● desperdício ○ trabalho que não adiciona valor ○ nova classe ■ Employee Knowledge ● falha em captar novas idéias ● retenção do conhecimento ● implementação incremental ● complementar a uma metodologia6 LSD ● Lean Software Development ● livro de Mary Poppendieck e Tom Poppendieck ● 2003 ● 7 princípios Lean ○ Eliminar Desperdícios ○ Aumentar conhecimento ○ Postergar definições o máximo ○ Entregar o mais rápido possível ○ Fortalecer a equipe ○ Integridade implicita ■ apresentação ■ entrega ■ implementação ■ acesso ■ facilidade de uso ■ preço ■ solução de problemas ○ Visão do todo ■ desenvolvimento por pedações ■ valor pelo todo ■ Think big, act small, fail fast; learn rapidly ● 22 ferramentas ○ Reconhecer disperdícios ○ Aprender a reduzir disperdícios ○ Feedback ○ Iterações ○ Sincronização ○ Definir desenvolvimento básico ○ Criar opções ○ Definir Momento último para definição ○ Tomada de decisões ○ Sistema Puxado
  7. 7. ○ Teoria do Enfileiramento○ Custo de atraso○ Auto-determinação○ Motivação○ Liderança○ Expertise○ Integridade percebida○ Integridade conceitual○ Refactoring○ Teste○ Medições (instrumentação)○ Contratos

×