For those considering Extreme Programming, this book provides no-nonsense advice on agile planning, development, delivery, and management taken from the authors' many years of experience. While plenty of books address the what and why of agile development, very few offer the information users can apply directly.
Agile has become today’s dominant software development paradigm, but agile methods remain difficult to measure and improve. Essential Skills for the Agile Developer fills this gap from the bottom up, teaching proven techniques for assessing and optimizing both individual and team agile practices. Written by four principals of Net Objectives—one of the world’s leading agile training and consulting firms—this book reflects their unsurpassed experience helping organizations transition to agile. It focuses on the specific actions and insights that can deliver the greatest design and programming improvements with economical investment. The authors reveal key factors associated with successful agile projects and offer practical ways to measure them. Through actual examples, they address principles, attitudes, habits, technical practices, and design considerations—and above all, show how to bring all these together to deliver higher-value software. Using the authors’ techniques, managers and teams can optimize the whole organization and the whole product across its entire lifecycle. Essential Skills for the Agile Developer shows how to Perform programming by intention Separate use from construction Consider testability before writing code Avoid over- and under-design Succeed with Acceptance Test Driven Development (ATDD) Minimize complexity and rework Use encapsulation more effectively and systematically Know when and how to use inheritance Prepare for change more successfully Perform continuous integration more successfully Master powerful best practices for design and refactoring
Master the Crucial Non -Technical Skills Every Software Architect Needs! Thousands of software professionals have the necessary technical qualifications to become architects, but far fewer have the crucial non-technical skills needed to get hired and succeed in this role. In today's agile environments, these "soft" skills have grown even more crucial to success as an architect. For many developers, however, these skills don't come naturally-and they're rarely addressed in formal training. Now, long-time software architect Dave Hendricksen helps you fill this gap, supercharge your organisational impact, and quickly move to the next level in your career. In 12 Essential Skills for Software Architects, Hendricksen begins by pinpointing the specific relationship, personal, and business skills that successful architects rely upon. Next, he presents proven methods for systematically developing and sharpening every one of these skills, from negotiation and leadership to pragmatism and vision. From start to finish, this book's practical insights can help you get the architect position you want-and thrive once you have it! The soft skills you need... ...and a coherent framework and practical methodology for mastering them! Relationship skills Leadership, politics, gracious behavior, communication, negotiation Personal skills Context switching, transparency, passion Business skills Pragmatism, vision, business knowledge, innovation
This is a comprehensive guide to Scrum for all (team members, managers, and executives). If you want to use Scrum to develop innovative products and services that delight your customers, this is the complete, single-source reference you've been searching for. This book provides a common understanding of Scrum, a shared vocabulary that can be used in applying it, and practical knowledge for deriving maximum value from it.
We're losing tens of billions of dollars a year on broken software, and great new ideas such as agile development and Scrum don't always pay off. But there's hope. The nine software development practices in Beyond Legacy Code are designed to solve the problems facing our industry. Discover why these practices work, not just how they work, and dramatically increase the quality and maintainability of any software project. These nine practices could save the software industry. Beyond Legacy Code is filled with practical, hands-on advice and a common-sense exploration of why technical practices such as refactoring and test-first development are critical to building maintainable software. Discover how to avoid the pitfalls teams encounter when adopting these practices, and how to dramatically reduce the risk associated with building software--realizing significant savings in both the short and long term. With a deeper understanding of the principles behind the practices, you'll build software that's easier and less costly to maintain and extend. By adopting these nine key technical practices, you'll learn to say what, why, and for whom before how; build in small batches; integrate continuously; collaborate; create CLEAN code; write the test first; specify behaviors with tests; implement the design last; and refactor legacy code. Software developers will find hands-on, pragmatic advice for writing higher quality, more maintainable, and bug-free code. Managers, customers, and product owners will gain deeper insight into vital processes. By moving beyond the old-fashioned procedural thinking of the Industrial Revolution, and working together to embrace standards and practices that will advance software development, we can turn the legacy code crisis into a true Information Revolution.
Flex your project management muscle Agile project management is a fast and flexible approach to managing all projects, not just software development. By learning the principles and techniques in this book, you'll be able to create a product roadmap, schedule projects, and prepare for product launches with the ease of Agile software developers. You'll discover how to manage scope, time, and cost, as well as team dynamics, quality, and risk of every project. As mobile and web technologies continue to evolve rapidly, there is added pressure to develop and implement software projects in weeks instead of months—and Agile Project Management For Dummies can help you do just that. Providing a simple, step-by-step guide to Agile project management approaches, tools, and techniques, it shows product and project managers how to complete and implement projects more quickly than ever. Complete projects in weeks instead of months Reduce risk and leverage core benefits for projects Turn Agile theory into practice for all industries Effectively create an Agile environment Get ready to grasp and apply Agile principles for faster, more accurate development.
Agile techniques have demonstrated immense potential for developing more effective, higher-quality software. However,scaling these techniques to the enterprise presents many challenges. The solution is to integrate the principles and practices of Lean Software Development with Agile’s ideology and methods. By doing so, software organizations leverage Lean’s powerful capabilities for “optimizing the whole” and managing complex enterprise projects. A combined “Lean-Agile” approach can dramatically improve both developer productivity and the software’s business value.In this book, three expert Lean software consultants draw from their unparalleled experience to gather all the insights, knowledge, and new skills you need to succeed with Lean-Agile development. Lean-Agile Software Development shows how to extend Scrum processes with an Enterprise view based on Lean principles. The authors present crucial technical insight into emergent design, and demonstrate how to apply it to make iterative development more effective. They also identify several common development “anti-patterns” that can work against your goals, and they offer actionable, proven alternatives. Lean-Agile Software Development shows how to Transition to Lean Software Development quickly and successfully Manage the initiation of product enhancements Help project managers work together to manage product portfolios more effectively Manage dependencies across the software development organization and with its partners and colleagues Integrate development and QA roles to improve quality and eliminate waste Determine best practices for different software development teams The book’s companion Web site, www.netobjectives.com/lasd, provides updates, links to related materials, and support for discussions of the book’s content.
Introduces a realistic approach to leading, managing, and growing your Agile team or organization. Written for current managers and developers moving into management, Appelo shares insights that are grounded in modern complex systems theory, reflecting the intense complexity of modern software development. Recognizes that today's organizations are living, networked systems; that you can't simply let them run themselves; and that management is primarily about people and relationships. Deepens your understanding of how organizations and Agile teams work, and gives you tools to solve your own problems. Identifies the most valuable elements of Agile management, and helps you improve each of them.
This indispensable new handbook focuses on 12 specific skills every software architect needs to succeed: skills involved in becoming a superior technologist and an outstanding technical champion in your organization. Focuses on three sets of skills that will have the greatest impact on your ability to succeed and ascend: Product Development Skills: Partnership, Discovery, Modeling, Leverage, and Estimating Oversight Skills: Platform/Project Oversight, Capital Planning, and Risk Management Visionary Skills: Road Mapping, Researching, Trend Awareness, and Branding Unlike most software architecture guides, Hendricken's books place real-world practice in the context of the development organization and the business, and help you blend the optimal mix of both hard and soft skills. Both valuable initial instruction and a lasting reference, this guide will can help you earn and succeed in your next software architecture role -- in any organization, at any level.
Agile Development, in particular, eXtreme Programming (XP), has been gaining a lot of momentum because it can effectively address the problems plaguing software development. In 2002, we, the Macau Productivity and Technology Center (CPTTM), started to hold courses on XP and OO design to teach the skills in agile development. At the beginning, we hired a well known software training and consulting company to teach. While the instructor was very professional and instructive and the feedbacks from the students were very good, the students didn't acquire the skills taught. We knew that it was because the concepts involved were abstract and it needed far more exercises for the students to practice in order to acquire the skills. Therefore, we decided to develop our enhanced training materials. In particular, we selected only 20% of the skills in agile development that deliver 80% of the value, while ignoring those useful but non-essential skills. Then we explained these skills in terms of examples and added a lot of real world examples as exercises. After adopting this set of materials, the new students really acquired the skills taught. Now we have organized the training materials into a book: Essential Skills for Agile Development. This book covers the essential skills in: OO design, Test Driven Development (TDD), team development, planning, communication and pair programming.