Business / Management / Team process
The Leanban Primer is a useful reference for teams who have had some basic training in agile practices (such as Scrum or kanban) and want to use agile in the context of Lean. It is designed to assist the transition to effective Lean-Agile practices that enable enterprise delivery of value to customers. While this is not a book on Lean practices, it is presented in a manner that is consistent with Lean Thinking. Certainly, there is more to Lean-Agile than this. There is work in Business Discovery (portfolio management, planning, staging) and in later phases of Business Deployment (in release and support) as well as managing the value stream. We chose to focus on the team level to keep the guide at a reasonable and useful size.
The Lean-Agile Pocket Guide for Scrum Teams, Second Edition Online is a useful reference for Scrum teams who have had some basic training and want to use Scrum in the context of Lean. Topics include the essential competencies of Scrum, how to get started, how Lean and Scrum relate, the roles of Scrum, planning and analysis and estimation, iterations, quality and testing, and communication. This pocket guide offers a complete set of checklists for Scrum teams and resources teams need to succeed.
This pocket guide is designed to assist the transition to effective Scrum practices that enable enterprise delivery of value to customers. All of the material in this book are consistent with Lean thinking and Scrum practices.
Lean-Agile Software Development: Achieving Enterprise Agility addresses: How to drive maximum value from Lean development – and avoid or fix the mistakes that prevent software teams from succeeding with Lean; the crucial make-or-break details that team leaders and developers need to succeed with Lean processes; why many teams fall back on ineffective processes that compromise their commitment to Lean software development.
More and more software organizations are recognizing the potential value of “Lean” techniques in improving productivity and driving more business value from software. But succeeding with Lean requires clarity, knowledge and skills that many organizations haven’t developed.
This book brings together the practical insights every organization needs to succeed with Lean. The authors systematically answer the four most important questions about Lean development: “What tools can I use to successfully implement Lean in my company? How do I transition to Lean Software Development? How do I correct specific counterproductive practices that stand in my way? How do I identify waste within my company?”
Lean Software Strategies: Proven Techniques for Managers and Developers shows how the most advanced concepts of lean production can be applied to software development and how current software development practices are inadequate.
Lean production, which has radically benefited traditional manufacturing, can greatly improve the software industry with similar methods and results. This transformation is possible because the same overarching principles that apply in other industries work equally well in software development. The software industry follows the same industrial concepts of production as those applied in manufacturing; however, the software industry perceives itself as being fundamentally different and has largely ignored what other industries have gained through the application of lean techniques.
Written for software engineers, developers, and leaders who need help creating lean software processes and executing genuinely lean projects, this book draws on the personal experiences of the two authors as well as research on various software companies applying lean production to software development programs.
ATDD / Technical
In the approximately ten years since the publication of the seminal work in the field of design patterns, Design Patterns Explained: A New Perspective on Object-Oriented Design, this practice has moved from being an esoteric part of computer science research to the mainstream of software engineering. Yet despite their widespread acceptance, design patterns are frequently misunderstood.
Design Patterns Explained provides the reader with a gentle yet thorough introduction to design patterns and recent trends and developments in software design.
For software to consistently deliver promised results, software development must mature into a true profession. Emergent Design: The Evolutionary Nature of Professional Software Development points the way. As software continues to evolve and mature, software development processes become more complicated, relying on a variety of methodologies and approaches. This book illuminates the path to building the next generation of software.
Scott L. Bain integrates the best of today’s most important development disciplines into a unified, streamlined, realistic, and fully actionable approach to developing software. Drawing on patterns, refactoring, and test-driven development, Bain offers a blueprint for moving efficiently through the entire software lifecycle, smoothly managing change, and consistently delivering systems that are robust, reliable, and cost-effective.
Essential Skills for the Agile Developer: A Guide to Better Programming and Design answers the question many developers have after taking some initial Agile/Scrum training – “OK, how do I write code now that we are building our software in iterations?” This book provides over a dozen proven practices that help developers improve their coding practices and make their code more easily changeable and maintainable in Agile projects.
Software development projects have been adopting agility at a rapid pace. Although agility provides quicker delivery of business value, lean principles suggest reducing waste, delays, and hand-offs can provide even faster delivery. With Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration to help, the business customer, the tester, and the developer collaborate to produce testable requirements.
These acceptance tests form the detailed specification of how the software should work from an external point of view. They help the customer to clarify their needs, the developer to have an objective to code towards, and the tester to plan for more than just functional testing.
Prefactoring: Extreme Abstraction, Extreme Separation, Extreme Readability approaches software development of new systems using lessons learned from many developers over the years. It is a compendium of ideas gained from retrospectives on what went right and what went wrong in development. Some of these ideas came from experience in refactoring. Refactoring is improving the design of existing code to make it simpler and easier to maintain.
This practical, thought-provoking guide details prefactoring guidelines in design, code, and testing. These guidelines can help you create more readable and maintainable code in your next project. To help communicate the many facets of this approach, Prefactoring follows the development of a software system for a fictitious client, named Sam, from vision through implementation.
The TDD Companion by Scott L Bain is a lightweight companion for the TDD practitioner based on years of teaching and using TDD. Each page offers a short and useful insight into effectively executing the process of Test-Driven Development. The TDD Companion is loosely organized so that you can pick it up, open it anywhere, and encounter a helpful thought, concept, practice, principle, or caveat to ponder in your own work.
The practice of Test-Driven Development (TDD) has helped thousands of software developers improve quality, agility, productivity, and speed. In Test-Driven Database Development: Unlocking Agility, Max Guernsey III shows how to adapt TDD to achieve the same powerful benefits in database design and development.
Max Guernsey first explains why TDD offers so much potential to database practitioners, and how to overcome obstacles such as the lack of conventional “testable classes.” You’ll learn how to use “classes of databases” to manage change more effectively; how to define testable database behaviors; how to maximize long-term maintainability by limiting a database’s current scope; and how to use “emergent design” to simplify future expansion.
Building on this foundation, he guides you through implementing modern TDD processes and database refactoring. He presents practical techniques for improving legacy databases; for deviating from strict TDD when necessary; and for adapting TDD to applications that persist data in file systems, XML, or serialized objects.
Lean-Agile Development: From Team to Stream represents the next generation of Agile methods that started with Scrum and Kanban. Lean-Agile provides a complete roadmap for achieving Agility at either a team, group of teams, or a large organization. It drives from the principles of Lean (systems-thinking, just-in-time, optimize the whole, eliminate waste, …) while showing how teams apply Agile methods within that context. It is not an integration of Scrum and Kanban but rather a creation of a new approach based on the principles from which both Scrum and Kanban sprung.