destacando aspectos de produtividade de software em feature driven development, lean software...

Download Destacando Aspectos de Produtividade de Software em Feature Driven Development, Lean Software Development e Programação Pragmática Kleber Silva (khfts@cin.ufpe.br)

Post on 07-Apr-2016

214 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • Destacando Aspectos de Produtividade de Software em Feature Driven Development, Lean Software Development e Programao PragmticaKleber Silva(khfts@cin.ufpe.br)Tpicos Avanados Em Engenharia de Software 3Centro de InformticaUniversidade Federal de Pernambuco

  • AgendaIntroduoMotivaoOverviewFDD, Lean Software Development (LSD) e Programao Pragmtica (PP).O Problema da Produtividade em SoftwareAspectos de Produtividade em FDD, LSD e PPUm Framework SimplesConcluso e Trabalhos FuturosReferncias e Bibliografia

  • IntroduoEm busca da bala de prataMelhor ProcessoMelhor PessoalWhat if analysisEm dado momento, identificar ganhos de produtividade podem significar a sobrevivncia da empresa.

  • MotivaoIdentificar pontos relacionados a produtividade em FDD, LSD (metodologias agis endeream melhor o problema do cost of change) e PPSugerir um framework para unir os pontos fortes de cada metodologia para aumentar o nvel de produtividade.

  • OverviewFeature Driven Development (FDD)Lean Software Development (LSD)Programao Pragmtica

  • Feature Driven Development

  • Lean Software DevelopmentIntroduoOriginado do Lean Thinking da Toyota que surgiu da abordagem Lean Manufactoring em 1980;Resulta de um trabalho de Mary e Tom Poppendieck para transferir as idias Lean da rea de manufatura para software;Aos 7 princpios do Lean foram adicionadas 22 ferramentas para implementao em software.

  • Lean Software DevelopmentPrincpiosEliminar o desperdcio;Potencializar a aprendizagem;Decidir o mais tarde possvel;Entregar o mais rpido possvel;Dar autonomia ao time (descentralizar);Construir com integridade;Ver o todo.

  • Lean Software DevelopmentFerramentasEliminar o desperdcio;See Waste, Value Stream MappingPotencializar a aprendizagem;Feedback, Iterations, Synchronizations, Set-Based DevelopmentAdiar o comprometimento (Decidir o mais tarde possvel);Options Thinking, Making Decisions, The Last Responsible MomentEntregar o mais rpido possvel;Pull Systems, Queueing Theory, Cost of Delay

  • Lean Software DevelopmentFerramentas (continuao)Dar autonomia ao time (descentralizar);Self-DeterminationMotivationLeadershipExpertiseConstruir com integridade;Perceived IntegrityConceptual IntegrityRefactoringTesting

  • Lean Software DevelopmentFerramentas (continuao)Ver o todo.MeasurementsContracts

  • Programao PragmticaYou shouldn't be wedded to any particular technology, but have a broad enough background and experience base to allow you to choose good solutions in particular situations. Your background stems from an understanding of the basic principles of computer science, and your experience comes from a wide range of practical projects. Theory and practice combine to make you strong., [Andrew Hunt 1999].

  • O Problema da Produtividade em SoftwareMedindo a produtividade;Eliminando atividades com nvel de rudo;Medidas tradicionais para aumento de produtividade, reduzem-na [Tom De Marco]:Presso cronograma (mais horas);Mecanizao do processo de desenvolvimento do produtoComprometimento em termos de qualidade do produto

  • Aspectos de Produtividade em FDD, LSD e PPFDDFeaturesClass Code OwnershipReleases frequentes, builds regularesGerncia de ConfiguraoReportagem de ProgressoFacilidade de Identificao de Gargalos

  • Aspectos de Produtividade em FDD, LSD e PPLSDEliminar o desperdcioEvitando atividades que no agreguem valor para o cliente;Features and Function usage. The Standish Group International 2002.

  • Aspectos de Produtividade em FDD, LSD e PPLSDPotencializar AprendizagemFeedback rpidos;Decidir o mais tarde possvelDecidir em cima de aprendizagem e no em previses.Entregar o mais rpido possvelD suporte a Decidir o mais tarde possvel, pois s se pode decidir o mais tarde possvel, se houver a garantia de entregar o mais cedo possvelDar autonomia ao time (descentralizar)

  • Aspectos de Produtividade em FDD, LSD e PPLSDConstruir com integridadePrincpios que levam a alta produtividade foram aplicadosVer o todoNo entrar em detalhes demais nas partes em detrimento do todoMedidas individuais de performance devem ser evitadas

  • Aspectos de Produtividade em FDD, LSD e PPPPDont Gather Requirements, Dig For Them Elicitar no significa apenas amontoar requisitos e sim, conseguir extrair o entendimento do que est por detrs de cada afirmao do usurio.Use a Requirements Template Serve para orientar a escrita, pois fora no se esquecer de pr-condioes, ps-condioes, fluxos principais e alternativos e etc

  • Um Framework SimplesRequirementsDont gather requirements, dig for them (PP)Avoid non client-valued functions (LSD)Use requirement templates (PP)Decide as late as possible: dont take a first-depth approach (LSD)

  • Um Framework SimplesAnalysis & DesignDomain object modeling (FDD approach)Build a features list (FDD)Plan By Feature (FDD)Design By Feature (FDD)Build or ImplementationBuild By Feature (FDD)Regular Builds (FDD)Build Integrity In (LSD)Refactoring (LSD e PP)

  • Um Framework SimplesTestsBuild Integrity InInspection (FDD e LSD);Project TrackingTools for project reporting (FDD)

  • Concluso e Trabalhos FuturosCombinar os aspectos de FDD, LSD e PP podem levar a ganhos de produtividade, entretanto, necessria a participao de membros chave com bastante experinciaCriar uma instncia desse framework e compar-la em termos de aspectos de produtividade com projetos similares que utilizem processos mais tradicionais, utilizando metodologias estabelecidas como pontos de funo.

  • Concluso e Trabalhos FuturosDesenvolver uma ferramenta integrada para acompanhamento de projeto de forma automtica(FDD)Utilizar questionrios para obter a opinio dos clientes, desenvolvedores e alta gerncia sobre os ganhos de produtividade percebidos.

  • Referncias e BibliografiaPalmer, S. R. and Felsing, J. M. (2002). A Practical Guide to Feature-Driven Development. Upper Saddle River, NJ, Prentice-Hallhttp://www.nebulon.com/articles/fdd/latestprocesses.html, The Latest FDD Processes, Nebulon Pty Ltd. P. Abraharnsson, O. Salo, J. Ronkainen, and J. Warsta, Agile software development methods: Review and Analysis. Espoo, Finland: Technical 252. Research Centre of Finland, VTT Publications 478, Available online: http://www.inf.vtt.fffpdf/publications/2002/P478.pdf Christoph S. (2004), Lean Software Development, Institute Central Region 2004, Herrenberg, Germany. IBM CorporationCause, G. (2004). Delivering Real Business Value using FDD, IT Project Services Pty. Ltd. http://www.agilemodeling.com/essays/fdd.htm, Feature Driven Development (FDD) and Agile Modeling. Scott W. AmblerPoppendieck, M. Lean Development & the Predictability Paradox, Poppendieck LLC, 2003. Available online: http://www.poppendieck.com/pdfs/Predictability_Paradox.pdfPoppendieck, M. Lean Software Development, C++ Magazine Methodology Issue (Publication Fall 2003). Available online: http://www.poppendieck.com/pdfs/Lean_Software_Development.pdf[Andrew Hunt 1999] A. Hunt, Thomas, D., The Pragmatic Programmer: Addison-Wesley, 2000 http://www.pragmaticprogrammer.com/courses/ppoverview.html, Briefings and Presentations: Pragmatic Programming OverviewP. Abrahamsson, J. Warsta, Mikko T. Siponen and J. Ronkainen. New Directions on Agile Methods: A Comparative Analysis. Technical Research Centre of Finland, VTT ElectronicsBoehm/Turner, Balancing Agility and Discipline: A Guide for the Perplexed, Addison Wesley, Boston, 2003. Walt S. (1994). Understanding Software Productivity, University of Southern California, Los Angeles, USA.

  • Referncias e BibliografiaFelsing M., The Hidden Cost of Application Development: Using Process as a Productivity Tool, Processexchange, Inc., 2003. Available online: http://www.processexchange.com Coad P., Lefebyre E., De Luca, J. Java Modeling In Color With UML: Enterprise Components And Processes. Prentice Hall. Mary P. and Tom P., Lean Software Development: An Agile Toolkit, Addison-Wesley Professional, 2003 J. Johnson, Features and Function Usage, Standish Group International, 2002.http://www.strategosinc.com/value_stream_mapping1.htm, Article & Guide to Value Stream Mapping (VSM)B. Boehm, Software Engineering Economics, Prentice Hall PTR, October 1981Salo, O., Abrahamsson, P. Empirical Evaluation of Agile Software Development: The Controlled Case Study Approach, VTT Technical Research Centre of Finland, FinlandChing, C., Making More Money: An Introduction to Agile Development, XPDay, November 2005. Available online: http://www.clarkeching.com/2005/11/index.htmlDeMarco, T. and Lister, T. Peopleware: Productive Projects and Teams, 2nd Ed., Dorset House Publishing. Barry W. Boehm and Philip N. Papaccio, "Understanding and Controlling Software Costs," IEEE Transactions on Software Engineering, October 1988. Jones, C. Measuring Programming Quality and Productivity, IBM Systems Journal, 1978. Capability Maturity Model Integration (CMMI) Overview, Software Engineering Institute, Carnegie Mellon. Available online: http://www.sei.cmu.edu/cmmi/adoption/pdf/cmmi-overview05.pdf Clark, B.K. ; Quantifying the effects of process improvement on effort , IEEE Volume 17, Issue 6, Nov.-Dec. 2000

    Ganhos de produtividade tem sido bastante procurados pelas empresas. H uma frentica busca pela bala de prata que possa matar o lobisomem que assusta as empresas que pode ser representado como complexidade, conformidade, alterabilidade.O nosso trabalho teve por meta entao identificar pontos aspectos de produtividade de software na metodologioa FDD, LSD e PP. Um framework ser sugerido.Eliminar o desperdcio o mais importante aspecto do Lean, sobre o qual derivam todos os outros. Consiste em identificar e eliminar as atividades que no agreguem valor para o cliente.Potencializar a aprendizagem Atravs de maior nmero de feedbacks, por isso

Recommended

View more >