Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Skip header Section
Lean Software Development: An Agile ToolkitMay 2003
Publisher:
  • Addison-Wesley Longman Publishing Co., Inc.
  • 75 Arlington Street, Suite 300 Boston, MA
  • United States
ISBN:978-0-321-15078-3
Published:01 May 2003
Pages:
240
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

From the Publisher:

In Lean Software Development, Mary and Tom Poppendieck identify seven fundamental "lean" principles, adapt them for the world of software development, and show how they can serve as the foundation for agile development approaches that work. Along the way, they introduce 22 "thinking tools" that can help you customize the right agile practices for any environment.

Better, cheaper, faster software development. You can have all three--if you adopt the same lean principles that have already revolutionized manufacturing, logistics and product development.

  • Iterating towards excellence: software development as an exercise in discovery

  • Managing uncertainty: "decide as late as possible" by building change into the system.

  • Compressing the value stream: rapid development, feedback, and improvement

  • Empowering teams and individuals without compromising coordination

  • Software with integrity: promoting coherence, usability, fitness, maintainability, and adaptability

  • How to "see the whole"--even when your developers are scattered across multiple locations and contractors

Simply put, Lean Software Development helps you refocus development on value, flow, and people--so you can achieve breakthrough quality, savings, speed, and business alignment.

Cited By

  1. Rahman M, Khomh F, Hamidi A, Cheng J, Antoniol G and Washizaki H (2023). Machine learning application development: practitioners’ insights, Software Quality Journal, 31:4, (1065-1119), Online publication date: 1-Dec-2023.
  2. ACM
    Bernardes M and Marczak S On the Understanding of the Role of Continuous Experimentation in Technology-Based Startup Proceedings of the XXXVII Brazilian Symposium on Software Engineering, (21-30)
  3. Dakkak A, Bosch J, Olsson H and Issa Mattos D (2023). Continuous deployment in software-intensive system-of-systems, Information and Software Technology, 159:C, Online publication date: 1-Jul-2023.
  4. Tenhunen S, Männistö T, Ihantola P, Kousa J and Luukkainen M Software Startup within a University - Producing Industry-Ready Graduates Proceedings of the 45th International Conference on Software Engineering: Software Engineering Education and Training, (82-94)
  5. Tona C, Jiménez S, Juárez-Ramírez R, Pacheco López R, Quezada Á and Guerra-García C (2022). Scrumlity: An Agile Framework Based on Quality of User Stories, Programming and Computing Software, 48:8, (702-715), Online publication date: 1-Dec-2022.
  6. Radhakrishnan A, David D and Davis J (2022). Examining the Critical Success Factors in IT Projects, International Journal of Information Technology Project Management, 13:1, (1-38), Online publication date: 31-Jan-2022.
  7. ACM
    Maroukian K and R. Gulliver S Synthesis of a Leadership Model for DevOps Adoption Proceedings of the 2021 European Symposium on Software Engineering, (58-66)
  8. ACM
    Theunissen T, Overbeek S and Hoppenbrouwers S Continuous Learning with the Sandwich of Happiness and Result Planning Proceedings of the 26th European Conference on Pattern Languages of Programs, (1-8)
  9. Senapathi M and Drury‐Grogan M (2020). Systems Thinking Approach to Implementing Kanban, Journal of Software: Evolution and Process, 33:4, Online publication date: 1-Apr-2021.
  10. Faisal Abrar M, Sohail M, Ali S, Faran Majeed M, Ali Shah I, Rashid N and Ullah N (2020). De‐motivators for the adoption of agile methodologies for large‐scale software development teams, Journal of Software: Evolution and Process, 32:12, Online publication date: 3-Dec-2020.
  11. ACM
    Zorzetti M, Signoretti I, Pereira E, Salerno L, Moralles C, Machado M, Bastos R and Marczak S An Empirical-informed Work Process Model for a Combined Approach of Agile, User-Centered Design, and Lean Startup Proceedings of the XIX Brazilian Symposium on Software Quality, (1-10)
  12. Moyón F, Soares R, Pinto-Albuquerque M, Mendez D and Beckers K Integration of Security Standards in DevOps Pipelines: An Industry Case Study Product-Focused Software Process Improvement, (434-452)
  13. ACM
    Maroukian K and Gulliver S The Link Between Transformational and Servant Leadership in DevOps-Oriented Organizations Proceedings of the 2020 European Symposium on Software Engineering, (21-29)
  14. ACM
    Ju A, Hemani A, Dimitriadis Y and Fox A What Agile Processes Should We Use in Software Engineering Course Projects? Proceedings of the 51st ACM Technical Symposium on Computer Science Education, (643-649)
  15. Conboy K, Dennehy D and O'Connor M (2022). ‘Big time’, Information and Management, 57:1, Online publication date: 1-Jan-2020.
  16. Franch X, Lopez L, Martínez-Fernández S, Oriol M, Rodríguez P and Trendowicz A Quality-Aware Rapid Software Development Project: The Q-Rapids Project Software Technology: Methods and Tools, (378-392)
  17. Scandaroli A, Leite R, Kiosia A and Coelho S Behavior-driven development as an approach to improve software quality and communication across remote business stakeholders, developers and QA Proceedings of the 14th International Conference on Global Software Engineering, (95-100)
  18. ACM
    de Aquino G and Dantas A An Agile Approach Applied to Intense Maintenance Projects Proceedings of the XV Brazilian Symposium on Information Systems, (1-8)
  19. Murphy G and Kersten M Towards Bridging the Value Gap in DevOps Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment, (181-190)
  20. Famelis M and Chechik M (2019). Managing design-time uncertainty, Software and Systems Modeling (SoSyM), 18:2, (1249-1284), Online publication date: 1-Apr-2019.
  21. ACM
    Walker H and Dooley J The History of the SIGCSE Submission and Review Software Proceedings of the 50th ACM Technical Symposium on Computer Science Education, (1074-1080)
  22. ACM
    Kasims G Applying Lean to Improve Quality in Software Development Projects Proceedings of the 2nd International Conference on Business and Information Management, (130-134)
  23. Nurdiani I, Börstler J and Fricker S (2018). Literature review of flexibility attributes, Journal of Software: Evolution and Process, 30:9, Online publication date: 17-Sep-2018.
  24. ACM
    Janes A, Mairegger M and Russo B code_call_lens: raising the developer awareness of critical code Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering, (876-879)
  25. ACM
    Rindell K, Ruohonen J and Hyrynsalmi S Surveying Secure Software Development Practices in Finland Proceedings of the 13th International Conference on Availability, Reliability and Security, (1-7)
  26. ACM
    Watson R Enriching Technical Communication Education Proceedings of the 36th ACM International Conference on the Design of Communication, (1-6)
  27. Özcan‐Top Ö and McCaffery F (2017). A hybrid assessment approach for medical device software development companies, Journal of Software: Evolution and Process, 30:7, Online publication date: 22-Jul-2018.
  28. Fernandes F, Filgueiras E and Neves A Comparing Human Against Computer Generated Designs: New Possibilities for Design Activity Within Agile Projects Design, User Experience, and Usability: Theory and Practice, (693-710)
  29. ACM
    Matthies C Scrum2kanban Proceedings of the 2nd International Workshop on Software Engineering Education for Millennials, (48-55)
  30. ACM
    S. R, Kumar R and Mani V Transitioning from plan-driven to lean in a global software engineering organization Proceedings of the 13th International Conference on Global Software Engineering, (1-5)
  31. ACM
    Lemos G, de C. Costa M, Borghi T and Povoas P Validation of outsourcing teams work on agile projects of samsung R&D institute Brazil Proceedings of the 13th International Conference on Global Software Engineering, (11-15)
  32. ACM
    Gralha C, Damian D, Wasserman A, Goulão M and Araújo J The evolution of requirements practices in software startups Proceedings of the 40th International Conference on Software Engineering, (823-833)
  33. ACM
    Lindsjørn Y and Moustafa R Challenges with lack of trust in agile projects with autonomous teams and fixed-priced contracts Proceedings of the 19th International Conference on Agile Software Development: Companion, (1-5)
  34. Onokoy L and Lavendels J (2018). Evolution and Development Prospects of Information System Design Methodologies, Applied Computer Systems, 23:1, (63-68), Online publication date: 1-May-2018.
  35. Ngatchu D, Ngwa A and Esowe S (2018). Acceptance of an Online Voting System at the Catholic University Institute of Buea, International Journal of Technology Diffusion, 9:2, (74-85), Online publication date: 1-Apr-2018.
  36. Park J, Jang J and Lee E (2018). Theoretical and empirical studies on essence-based adaptive software engineering, Information Technology and Management, 19:1, (37-49), Online publication date: 1-Mar-2018.
  37. Shobeiri S, Atabak N and Shokouhyar S (2018). An Evaluation of Lean IT Efficiency in Organization Using Fuzzy Approach, Journal of Cases on Information Technology, 20:1, (1-19), Online publication date: 1-Jan-2018.
  38. Rosa W, Madachy R, Clark B and Boehm B Early phase cost models for agile software processes in the US DoD Proceedings of the 11th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, (30-37)
  39. ACM
    Van Heesch U, Theunissen T, Zimmermann O and Zdun U Software Specification and Documentation in Continuous Software Development Proceedings of the 22nd European Conference on Pattern Languages of Programs, (1-13)
  40. Sedano T, Ralph P and Péraire C Software development waste Proceedings of the 39th International Conference on Software Engineering, (130-140)
  41. Laukkarinen T, Kuusinen K and Mikkonen T DevOps in regulated software development Proceedings of the 39th International Conference on Software Engineering: New Ideas and Emerging Results Track, (15-18)
  42. Roopa M, Sankarasubbiah C and Mani V Usable software at the end of each takt Proceedings of the 12th International Conference on Global Software Engineering, (116-120)
  43. ACM
    Dürschmid T Continuous Code Reviews Companion Proceedings of the 1st International Conference on the Art, Science, and Engineering of Programming, (1-3)
  44. Alahyari H, Berntsson Svensson R and Gorschek T (2017). A study of value in agile software development organizations, Journal of Systems and Software, 125:C, (271-288), Online publication date: 1-Mar-2017.
  45. Su Y, Luarn P, Lee Y and Yen S (2017). Creating an invalid defect classification model using text mining on server development, Journal of Systems and Software, 125:C, (197-206), Online publication date: 1-Mar-2017.
  46. Mäkinen S, Leppänen M, Kilamo T, Mattila A, Laukkanen E, Pagels M and Männistö T (2016). Improving the delivery cycle, Information and Software Technology, 80:C, (175-194), Online publication date: 1-Dec-2016.
  47. ACM
    Rossi C, Shibley E, Su S, Beck K, Savor T and Stumm M Continuous deployment of mobile software at facebook (showcase) Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, (12-23)
  48. ACM
    Storey M and Zagalsky A Disrupting developer productivity one bot at a time Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, (928-931)
  49. Nurdiani I, Börstler J and Fricker S (2016). The impacts of agile and lean practices on project constraints, Journal of Systems and Software, 119:C, (162-183), Online publication date: 1-Sep-2016.
  50. ACM
    Garousi V, Felderer M and Mäntylä M The need for multivocal literature reviews in software engineering Proceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering, (1-6)
  51. ACM
    Savor T, Douglas M, Gentili M, Williams L, Beck K and Stumm M Continuous deployment at Facebook and OANDA Proceedings of the 38th International Conference on Software Engineering Companion, (21-30)
  52. ACM
    Prechelt L, Schmeisky H and Zieris F Quality experience Proceedings of the 38th International Conference on Software Engineering, (1017-1027)
  53. ACM
    Viswanath U Lean Transformation Proceedings of the 9th India Software Engineering Conference, (156-162)
  54. Kundu G and Manohar M (2016). Prioritizing lean practices for implementation in IT support services, VINE Journal of Information and Knowledge Management Systems, 46:1, (104-122), Online publication date: 8-Feb-2016.
  55. Clarke P, OConnor R, Leavy B and Yilmaz M (2015). Exploring the Relationship between Software Process Adaptive Capability and Organisational Performance, IEEE Transactions on Software Engineering, 41:12, (1169-1183), Online publication date: 1-Dec-2015.
  56. ACM
    Nikou A and Chatzigiannakis I Applying a customer centric development approach for web 2.0 applications Proceedings of the 19th Panhellenic Conference on Informatics, (245-246)
  57. ACM
    Vogel B, Kilamo T and Kurti A Teaching Distributed Agile Development to Software Professionals Proceedings of the 2015 European Conference on Software Architecture Workshops, (1-8)
  58. ACM
    Alahyari H The role of social interactions in value creation in agile software development processes Proceedings of the 7th International Workshop on Social Software Engineering, (17-20)
  59. ACM
    Stavnycha M, Yin H and Römer T A large-scale survey on the effects of selected development practices on software correctness Proceedings of the 2015 International Conference on Software and System Process, (117-121)
  60. Kupiainen E, Mäntylä M and Itkonen J (2015). Using metrics in Agile and Lean Software Development - A systematic literature review of industrial studies, Information and Software Technology, 62:C, (143-163), Online publication date: 1-Jun-2015.
  61. Dotoli M, Epicoco N, Falagario M, Costantino N and Turchiano B (2015). An integrated approach for warehouse analysis and optimization, Computers in Industry, 70:C, (56-69), Online publication date: 1-Jun-2015.
  62. Conboy K, Gleasure R and Cullina E Agile Design Science Research Proceedings of the 10th International Conference on New Horizons in Design Science: Broadening the Research Agenda - Volume 9073, (168-180)
  63. Yamashita A Integration of SE research and industry Proceedings of the Second International Workshop on Software Engineering Research and Industrial Practice, (11-17)
  64. Leppänen M, Kilamo T and Mikkonen T Towards post-agile development practices through productized development infrastructure Proceedings of the Second International Workshop on Rapid Continuous Software Engineering, (34-40)
  65. Klepper S, Krusche S, Peters S, Bruegge B and Alperowitz L Introducing continuous delivery of mobile apps in a corporate environment Proceedings of the Second International Workshop on Rapid Continuous Software Engineering, (5-11)
  66. Park J Essence-based, goal-driven adaptive software engineering Proceedings of the Fourth SEMAT Workshop on General Theory of Software Engineering, (33-38)
  67. Ralph P Developing and evaluating software engineering process theories Proceedings of the 37th International Conference on Software Engineering - Volume 1, (20-31)
  68. ACM
    Anslow C and Maurer F An Experience Report at Teaching a Group Based Agile Software Development Project Course Proceedings of the 46th ACM Technical Symposium on Computer Science Education, (500-505)
  69. Korkala M and Maurer F (2014). Waste identification as the means for improving communication in globally distributed agile software development, Journal of Systems and Software, 95, (122-140), Online publication date: 1-Sep-2014.
  70. Olsson C and Eriksson J Methodological Capabilities for Emergent Design 16th International Conference on Human-Computer Interaction. Theories, Methods, and Tools - Volume 8510, (110-121)
  71. ACM
    Fagerholm F, Guinea A, Mäenpää H and Münch J Building blocks for continuous experimentation Proceedings of the 1st International Workshop on Rapid Continuous Software Engineering, (26-35)
  72. ACM
    Fitzgerald B, Musiał M and Stol K Evidence-based decision making in lean software project management Companion Proceedings of the 36th International Conference on Software Engineering, (93-102)
  73. ACM
    Ralph P Lab-based action design research Companion Proceedings of the 36th International Conference on Software Engineering, (528-531)
  74. ACM
    Nikitina N and Kajko-Mattsson M Guiding the adoption of software development methods Proceedings of the 2014 International Conference on Software and System Process, (109-118)
  75. ACM
    Boehm B Principles for successful systems and software processes Proceedings of the 2014 International Conference on Software and System Process, (3-7)
  76. ACM
    Eloranta V Patterns for Controlling Chaos in a Startup Proceedings of the 8th Nordic Conference on Pattern Languages of Programs (VikingPLoP), (1-8)
  77. Fitzgerald B, Stol K, O'Sullivan R and O'Brien D Scaling agile methods to regulated environments: an industry case study Proceedings of the 2013 International Conference on Software Engineering, (863-872)
  78. ACM
    Rodríguez P, Mikkonen K, Kuvaja P, Oivo M and Garbajosa J Building lean thinking in a telecom software development organization: strengths and challenges Proceedings of the 2013 International Conference on Software and System Process, (98-107)
  79. Lagerström R, Sporrong U and Wall A (2013). Increasing software development efficiency and maintainability for complex industrial systems - A case study, Journal of Software: Evolution and Process, 25:3, (285-301), Online publication date: 1-Mar-2013.
  80. Turner R, Madachy R, Ingold D and Lane J Improving systems engineering effectiveness in rapid response development environments Proceedings of the International Conference on Software and System Process, (78-82)
  81. Turner R, Madachy R, Ingold D and Lane J Modeling kanban processes in systems engineering Proceedings of the International Conference on Software and System Process, (23-27)
  82. Wang X, Conboy K and Cawley O (2012). "Leagile" software development, Journal of Systems and Software, 85:6, (1287-1299), Online publication date: 1-Jun-2012.
  83. ACM
    Williams L (2012). What agile teams think of agile principles, Communications of the ACM, 55:4, (71-76), Online publication date: 1-Apr-2012.
  84. ACM
    Soundararajan S, Chigani A and Arthur J Understanding the tenets of agile software engineering Proceedings of the 43rd ACM technical symposium on Computer Science Education, (313-318)
  85. ACM
    Cukier D and Yoder J The artist in the computer scientist Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software, (129-136)
  86. ACM
    Cukier D and Kon F Extending patterns for fearless change Proceedings of the 18th Conference on Pattern Languages of Programs, (1-10)
  87. Treccani P and De Souza C Collaborative refactoring Proceedings of the 17th international conference on Collaboration and technology, (73-80)
  88. Korhonen K Adopting agile practices in teams with no direct programming responsibility - a case study Proceedings of the 12th international conference on Product-focused software process improvement, (30-43)
  89. Trujillo M, Oktaba H, Pino F and Orozco M Applying agile and lean practices in a software development project into a CMMI organization Proceedings of the 12th international conference on Product-focused software process improvement, (17-29)
  90. ACM
    Abrahamsson P, Fronza I and Vlasenko J Analyzing tool usage to understand to what extent experts change their activities when mentoring Proceedings of the 2nd International Workshop on Emerging Trends in Software Metrics, (19-22)
  91. ACM
    Fronza I, Sillitti A, Succi G and Vlasenko J Understanding how novices are integrated in a team analysing their tool usage Proceedings of the 2011 International Conference on Software and Systems Process, (204-207)
  92. ACM
    Esfahani H, Yu E and Annosi M Strategically balanced process adoption Proceedings of the 2011 International Conference on Software and Systems Process, (169-178)
  93. ACM
    Streit J and Pizka M Why software quality improvement fails (and how to succeed nevertheless) Proceedings of the 33rd International Conference on Software Engineering, (726-735)
  94. ACM
    Hoda R, Kruchten P, Noble J and Marshall S (2010). Agility in context, ACM SIGPLAN Notices, 45:10, (74-88), Online publication date: 17-Oct-2010.
  95. ACM
    Hoda R, Kruchten P, Noble J and Marshall S Agility in context Proceedings of the ACM international conference on Object oriented programming systems languages and applications, (74-88)
  96. Pareto L, Eriksson P and Ehnebom S Architectural descriptions as boundary objects in system and design work Proceedings of the 13th international conference on Model driven engineering languages and systems: Part II, (406-419)
  97. Ganis M, Maximilien E and Rivera T (2010). A brief report on working smarter with Agile software development, IBM Journal of Research and Development, 54:4, (415-424), Online publication date: 1-Jul-2010.
  98. ACM
    Musat D and Rodríguez P Value stream mapping integration in software product lines Proceedings of the 11th International Conference on Product Focused Software, (110-111)
  99. ACM
    Yilmaz M and O'Connor R Maximizing the value of the software development process by game theoretic analysis Proceedings of the 11th International Conference on Product Focused Software, (93-96)
  100. Garousi V (2010). Experience and challenges with UML-driven performance engineering of a Distributed Real-Time System, Information and Software Technology, 52:6, (625-640), Online publication date: 1-Jun-2010.
  101. ACM
    Meckem S and Carlson J Using "rapid experimentation" to inform customer service experience design CHI '10 Extended Abstracts on Human Factors in Computing Systems, (4553-4566)
  102. ACM
    Janes A and Succi G To pull or not to pull Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications, (889-894)
  103. ACM
    Ikonen M and Kurhila J Discovering high-impact success factors in capstone software projects Proceedings of the 10th ACM conference on SIG-information technology education, (235-244)
  104. Lehto I and Rautiainen K Software development governance challenges of a middle-sized company in agile transition Proceedings of the 2009 ICSE Workshop on Software Development Governance, (36-39)
  105. Dybå T and Dingsøyr T (2008). Empirical studies of agile software development, Information and Software Technology, 50:9-10, (833-859), Online publication date: 1-Aug-2008.
  106. ACM
    Klein H and Canditt S Using opinion polls to help measure business impact in agile development Proceedings of the 1st international workshop on Business impact of process improvements, (25-32)
  107. Maurer F and Melnik G Agile Methods Companion to the proceedings of the 29th International Conference on Software Engineering, (176-177)
  108. ACM
    Hadar E and Hadar I The composition refactoring triangle (CRT) practical toolkit Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications, (786-797)
  109. ACM
    Bachmann P Static and metaprogramming patterns and static frameworks Proceedings of the 2006 conference on Pattern languages of programs, (1-33)
  110. Qumer A and Henderson-Sellers B A Framework to Support Non-fragile Agile Agent-Oriented Software Development Proceedings of the 2006 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the fifth SoMeT_06, (84-100)
  111. ACM
    Maurer F and Melnik G Agile methods Proceedings of the 28th international conference on Software engineering, (1057-1058)
  112. Pessôa M, Loureiro G and Alves J A Value Creation Planning Method to Complex Engineering Products Development Proceedings of the 2006 conference on Leading the Web in Concurrent Engineering: Next Generation Concurrent Engineering, (871-881)
  113. Thompson E Using a subject area model as a learning improvement model Proceedings of the 8th Australasian Conference on Computing Education - Volume 52, (197-203)
  114. Noble J and Biddle R Postmodern prospects for conceptual modelling Proceedings of the 3rd Asia-Pacific conference on Conceptual modelling - Volume 53, (11-20)
  115. Lindgaard G, Dillon R, Trbovich P, White R, Fernandes G, Lundahl S and Pinnamaneni A (2006). User Needs Analysis and requirements engineering, Interacting with Computers, 18:1, (47-70), Online publication date: 1-Jan-2006.
  116. Bozheva T and Gallo M Framework of agile patterns Proceedings of the 12th European conference on Software Process Improvement, (4-15)
  117. Lauritsen T and Stålhane T Safety methods in software process improvement Proceedings of the 12th European conference on Software Process Improvement, (95-105)
  118. ACM
    Patton J Finding the forest in the trees Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (266-274)
  119. Steindl D From Agile Software Development to Agile Businesses Proceedings of the 31st EUROMICRO Conference on Software Engineering and Advanced Applications, (258-265)
  120. ACM
    VanHilst M, Garg P and Lo C (2005). Repository mining and Six Sigma for process improvement, ACM SIGSOFT Software Engineering Notes, 30:4, (1-4), Online publication date: 1-Jul-2005.
  121. ACM
    Zannier C and Maurer F (2005). A qualitative empirical evaluation of design decisions, ACM SIGSOFT Software Engineering Notes, 30:4, (1-7), Online publication date: 1-Jul-2005.
  122. ACM
    Law A and Charron R (2005). Effects of agile practices on social factors, ACM SIGSOFT Software Engineering Notes, 30:4, (1-5), Online publication date: 1-Jul-2005.
  123. ACM
    Grisham P and Perry D (2005). Customer relationships and Extreme Programming, ACM SIGSOFT Software Engineering Notes, 30:4, (1-6), Online publication date: 1-Jul-2005.
  124. Middleton P, Flaxel A and Cookson A Lean software management case study Proceedings of the 6th international conference on Extreme Programming and Agile Processes in Software Engineering, (1-9)
  125. ACM
    VanHilst M, Garg P and Lo C Repository mining and Six Sigma for process improvement Proceedings of the 2005 international workshop on Mining software repositories, (1-4)
  126. ACM
    Zannier C and Maurer F A qualitative empirical evaluation of design decisions Proceedings of the 2005 workshop on Human and social factors of software engineering, (1-7)
  127. ACM
    Law A and Charron R Effects of agile practices on social factors Proceedings of the 2005 workshop on Human and social factors of software engineering, (1-5)
  128. ACM
    Grisham P and Perry D Customer relationships and Extreme Programming Proceedings of the 2005 workshop on Human and social factors of software engineering, (1-6)
  129. ACM
    Brechner E Journey of enlightenment Proceedings of the 27th international conference on Software engineering, (39-42)
  130. Ceschi M, Sillitti A, Succi G and Panfilis S (2005). Project Management in Plan-Based and Agile Companies, IEEE Software, 22:3, (21-27), Online publication date: 1-May-2005.
  131. Weber B and Wild W Towards the agile management of business processes Proceedings of the Third Biennial conference on Professional Knowledge Management, (409-419)
  132. Luqi , Zhang L, Berzins V and Qiao Y (2004). Documentation Driven Development for Complex Real-Time Systems, IEEE Transactions on Software Engineering, 30:12, (936-952), Online publication date: 1-Dec-2004.
  133. Noble J, Marshall S, Marshall S and Biddle R Less Extreme Programming Proceedings of the Sixth Australasian Conference on Computing Education - Volume 30, (217-226)
  134. Favaro J Value based management and agile methods Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (16-25)
Contributors

Reviews

Joan Catherine Horvath

This wonderful, short book is a pragmatic guide to the realities of managing software projects, and to the pitfalls of guiding research and development projects in general. The authors begin by discussing the issues that arise in development projects. With short examples based on the authors' real-life experiences, one sees how "good software practice" in its traditional and literal sense can often lead to something between disaster and frustration. In particular, the authors argue-based on experience with developing lean manufacturing systems-that specifying a software system in its entirety before developing any code ensures there is no flexibility for changes down the road when more is known about the problem. They draw the distinction between creative parts of the development process, during which variability is valued, and later stages, which attempt to stamp out any variances. The latter regime does not really apply to most software development, virtually all of which is a creative endeavor, and so mismatches arise when manufacturing-style practices and metrics are applied to software development. The origins of Toyota's manufacturing systems are discussed. When Toyota started making cars, the Japanese market was small, and capital was scarce. Therefore, traditional mass production was not an option for them. Instead, they built cars as closely as possible to the time the car would be sold. To do this, they did many counterintuitive things, particularly delaying decisions until the "last responsible moment," a term the authors credit to the Lean Construction Institute. The software implementation of this concept is to develop enough of an idea of customer requirements to develop a prototype on a short schedule. Customers then use this prototype, determine changes, and interact with developers on a short (one week to one month) turnaround cycle to be certain that the most important needs are implemented first, and that the features being implemented are actually needed. Structured as a series of tools, or principles, this book takes concepts from lean manufacturing and moves them to the software domain. The authors are careful to note, though, that one of the key elements of developing good practices is to carry only high-level principles from one domain to the next. Best practices are likely only to be best for that particular industry and situation, and one can drown in the consequences of non-applicable analogies taken too far. Each chapter ends with a section of good, pragmatic exercises to try out with a class or software team. The exercises (and the book) build up a clear image of how to think about the development process, which culminates in some suggestions about how to think about systems being developed as a whole, rather than as a series of unconnected parts. To me, this book rings very true, and has quite a bit of advice that runs against traditional management and development wisdom. That is probably a large part of what makes it so much fun to read! It also has detailed, extremely implementable suggestions about how to write contracts without becoming trapped in overly restrictive and ultimately counterproductive business relationships. This would be a great book to give to a new software manager or entrepreneur as a primer on what to look for and think about when leading a team for the first time, and a terrific book to leave on the chair of an established manager who perhaps has gotten a little too enamored of measurement tools. The exercises would work well in a technology-oriented graduate management program as role-playing exercises or structures to use in reviewing case studies of successful or failed software projects. Online Computing Reviews Service

Will Wallace

An excellent foundation is presented in this book for anyone wanting to implement agile software development practices. Authors Mary and Tom Poppendieck present seven principles and 22 thinking tools to help readers develop agile practices. Principles are universal concepts, applying to any discipline. It is sometimes difficult, however, to see how these concepts can be used in a particular discipline. In contrast, practices are the procedures used to implement principles. Principles can be applied to many disciplines, as long as they are translated into workable practices. Lean principles have been used and refined in such areas as manufacturing, health care, and construction. But applying these principles to a new discipline requires a change in thinking and environment. Many software managers and developers will be reluctant to consider implementing these principles because manufacturing practices, not principles, have been inappropriately applied to software development in the past. The first principle presented in the book is "eliminate waste." Waste is anything that doesn't add to customer-defined value. This is a concept many IT professionals will have trouble adopting; they have spent many years knowing what the user needs better than the user. For the user to use the product, however, and not put it on the shelf to gather dust, the user, or a user representative, needs to be a key player in the project. The next principle is "amplify learning." The example of a master chef is used to help explain this principle. A chef makes many iterations of a recipe before it is finalized. This is a process of exploration, discovery, and learning. This concept can be applied to software development to provide more than one possible design for a project. This leads to the third and fourth principles "decide as late as possible" and "deliver as fast as possible." By making critical design decisions as late as possible, fewer changes are needed in the design. By using iterative development, working software can be delivered to demonstrate the current understanding of the project. This allows users, designers, and developers to adapt the design to a changing understanding of what features provide the most business value. "Empower the team" is the fifth principle. As the book points out, this is very counter-intuitive for the majority of software development managers. The best way to get the best results is to let the people with the most knowledge of the details make decisions. By allowing a team of front line developers to pool their brainpower and their knowledge of the details, companies can achieve excellence in software development. Integrity is a quality all IT professionals want their products to have, and the sixth principle is identified as "build integrity in." The authors identify two types of integrity: perceived and conceptual. Perceived integrity is how the user sees the software, usually influenced by the usability of the interface. Conceptual integrity is achieved when all of the parts fit together and function seamlessly. The final principle is "see the whole." Many software developers and managers have a tendency to become myopic when dealing with a project. This causes them to focus only on their little piece of the project, and can lead to the problem of suboptimization, optimizing individual parts of the project. While all parts of the project may be optimized, the whole system may suffer performance problems. The project needs to be optimized as a whole to ensure the best system performance. This can be brought about by trade-offs coordinated by a master developer. When the tools identified with each of these principles are used, the probability of success increases. Two of these tools are feedback and refactoring. By getting feedback on the latest design as quickly as possible from the users, developers and users can collaborate on improvements in the design. In refactoring, users, designers, and developers coordinate what features will add the most value, and what should be included in the next iteration. The authors point out several times that applying these principles is not a silver bullet for software development problems within a company. Implementing these principles will require the management to change thinking patterns and the development environment. The book includes an example of how one team within a company had successfully implemented these principles, but was not able to transfer the practice to other teams within the same company. After readers have completed reading and digesting this book, they can move on to one of the other books in the Addison-Wesley Agile Software Development series, to implement one of the agile software development methodologies. In the last chapter of the book, "Instructions and Warranty," the reader is cautioned to use the principles only as directed. The book contains a very functional index. It is a must read for anyone seriously considering a move to one of the agile software development methodologies. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Recommendations