Desenvolvimento de Software para Baixa Plataforma

Embed Size (px)

DESCRIPTION

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

Citation preview

  • 1. Desenvolvimento de Softwarepara baixa plataforma1 Fase Artstica ou artesanal profissionais no especializados Engenheiros Matemticos Adm. Empresas sem metodologia sem padres solues diferentes a cada aplicao aplicaes caras objetivos "simples" e especficos computadores fora da rede2 Fase Engenharia problemas aumentavam complexidade aumentava mquinas em rede software caros longo tempo de desenvolvimento necessrio desenvolver novos paradgmas tecnologias de software metodologias profissionais reviram tcnicas antigas no funcionavam Oritentao a Objetos paradigma da computao que unefuncionalidade e estado no objeto MIT em 1950/1960 para ambientesde inteligncia 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 proprietria pelaRaional (hoje da IBM) surgimento em 95~98 CASE 1989~1995 Computer Aided Software Engineering

2. x CAD cojunto de ferramentas e mtodos criar sistemas alta qualidade sem erros fcil manuteno sem depreciao Geradores de Cdigo podiam criar produtos Framework Enterprise JavaBeans EJB 1.0 em 1998 J2EE especificao API muito complexa .Net em 2000 Rails, Django, Sinatra3 Fase Arquitetura problemas mais relacionados a negcio 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 desenvolvimentoiterativo e incremental de ciclo de vidaextremamente curso (60 a 90 dias) lana a idia de planejamentomnimo e rpida prototipao 1980 - modelo desenvolvimento espiralBarry Boehm 1982 - modelo desenvolvimento evolucionrioTom Glib RIPP Rapid Interative Production Prototyping melhor fase 1990 MSF Microsoft Solution Framework 1994 boas prticas Microsoft usa Cascata/espiral Agile conjunto de mtodos dedesenvolvimento criadocomo resposta ao usoindiscriminado doCMMI, RUP, PMBOK 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 limitao tempo recurso JAD Joint Application Design processos para colega de requerimentos o usurio participa do desenvolvimento JAD workshops IT knowledge workers AUP Agile Unified Process RUP para Agile desenvolvido pela IBM Agile Modeling suporte a outros mtodos diminui a falta de modelagem proporcional alguma documentao Crystal Clear metodologia "leve" projetos no crticos foca eficincia e habilidade foca pessoas e no processos e ferramentas XP Extreme Programming 1999 foco qualidade responsividade na mudana de requerimentos TDD Test Driven Development Kant Beck 2003 tcnica baseada no ciclo curto caso de teste teste cdigo teste refatora BDD Behavior Driven Development resposta ao TDD Dean North 2003 4. tcnica insentiva colaborao desenvolvedores QA negcio no tcnicos 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 negcio Outside-in Development FDD Feature Driven Development 2002 processo baseado em "melhores prticas" foca funcionalidade de valor para o cliente (feature) baseado em modelo Scrum "restart" de partica rugbyaps pequena infrao mais voltado a gerenciamento novos paradgmas para gerenciamento empirical process control decises tomadas pela equipe Lean Software Development derivado Lean Manugacturing Lean ID traduo para princpios e prticas 2080 Software Concept 2005 "inverso" do princpio de pareto princpios foco em funcionalidade construo ou compra prototipao tcinicas agile4 Lean Manufactoring Manufatura enxuta sistema Toyota de produo (TPS) 1990 filosofia de gesto totalmente focado na criao de VALOR para o cliente final valor qualquer "coisa" que o 5. clientes esteja pronto para pagar na otimizao busca-se preservar ovalor com menos trabalho estratgia na eliminao de disperdcios eliminando disperdcio melhoraqualidade, tempo e custo ferramentas processo contnuo anlise do fluxo (kanban) produo por pull (kanban) melhoramente contnuo (kaizen) qualidade total flexibilidade tipos desperdcios mura irregularidade muda supfulo desnecessrio muri impossvel muito difcil classificao Transportation riscos danos perdas custo no 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 funcionrios acidentes Waiting produto parado Over-processing alm do pedido pelo cliente melhor que o necessrio mais precisa que o necessrio Over-production aumenta inventory waiting motion etc Defects retrabalho 6. 5 Lean IT extenses dos princpios Lean para o desenvolvimento e gerenciamento de IT basea-se na eliminao de desperdcios desperdcio trabalho que no adiciona valor nova classe Employee Knowledge falha em captarnovas idias reteno do conhecimento implementao incremental complementar a uma metodologia6 LSD Lean Software Development livro de Mary Poppendieck e Tom Poppendieck 2003 7 princpios Lean Eliminar Desperdcios Aumentar conhecimento Postergar definies o mximo Entregar o mais rpido possvel Fortalecer a equipe Integridade implicita apresentao entrega implementao acesso facilidade de uso preo soluo de problemas Viso do todo desenvolvimento por pedaes valor pelo todo Think big, act small,fail fast; learn rapidly 22 ferramentas Reconhecer disperdcios Aprender a reduzir disperdcios Feedback Iteraes Sincronizao Definir desenvolvimento bsico Criar opes Definir Momento ltimo para definio Tomada de decises Sistema Puxado 7. Teoria do Enfileiramento Custo de atraso Auto-determinao Motivao Liderana Expertise Integridade percebida Integridade conceitual Refactoring Teste Medies (instrumentao) Contratos