A one-semester college course in software engineering focusing on cloud computing, software as a service (SaaS), and Agile development using Extreme Programming (XP). This book is neither a step-by-step tutorial nor a reference book. Instead, our goal is to bring a diverse set of software engineering topics together into a single narrative, help readers understand the most important ideas through concrete examples and a learn-by-doing approach, and teach readers enough about each topic to get them started in the field. Courseware for doing the work in the book is available as a virtual machine image that can be downloaded or deployed in the cloud. A free MOOC (massively open online course) at saas-class.org follows the book's content and adds programming assignments and quizzes. See saasbook.info for details.
Author(s): Armando Fox, David Patterson
Proven, 100% Practical Guidance for Making Scrum and Agile Work in Any Organization
This is the definitive, realistic, actionable guide to starting fast with Scrum and agile–and then succeeding over the long haul. Leading agile consultant and practitioner Mike Cohn presents detailed recommendations, powerful tips, and real-world case studies drawn from his unparalleled experience helping hundreds of software organizations make Scrum and agile work.
Succeeding with Agile is for pragmatic software professionals who want real answers to the most difficult challenges they face in implementing Scrum. Cohn covers every facet of the transition: getting started, helping individuals transition to new roles, structuring teams, scaling up, working with a distributed team, and finally, implementing effective metrics and continuous improvement.
Throughout, Cohn presents “Things to Try Now” sections based on his most successful advice. Complementary “Objection” sections reproduce typical conversations with those resisting change and offer practical guidance for addressing their concerns. Coverage includes
- Practical ways to get started immediately–and “get good” fast
- Overcoming individual resistance to the changes Scrum requires
- Staffing Scrum projects and building effective teams
- Establishing “improvement communities” of people who are passionate about driving change
- Choosing which agile technical practices to use or experiment with
- Leading self-organizing teams
- Making the most of Scrum sprints, planning, and quality techniques
- Scaling Scrum to distributed, multiteam projects
- Using Scrum on projects with complex sequential processes or challenging compliance and governance requirements
- Understanding Scrum’s impact on HR, facilities, and project management
Whether you've completed a few sprints or multiple agile projects and whatever your role–manager, developer, coach, ScrumMaster, product owner, analyst, team lead, or project lead–this book will help you succeed with your very next project. Then, it will help you go much further: It will help you transform your entire development organization.
Author(s): Mike Cohn
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.
Author(s): Mark C. Layton, Steven J. Ostermiller
Lean Software Development: An Agile Toolkit
- Adapting agile practices to your development organization
- Uncovering and eradicating waste throughout the software development lifecycle
- Practical techniques for every development manager, project manager, and technical leader
Lean software development: applying agile principles to your organization
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.
Author(s): Mary Poppendieck, Tom Poppendieck
Printed in full color.
Faced with a software project of epic proportions? Tired of over-committing and under-delivering? Enter the dojo of the agile samurai, where agile expert Jonathan Rasmusson shows you how to kick-start, execute, and deliver your agile projects. Combining cutting-edge tools with classic agile practices, The Agile Samurai gives you everything you need to deliver something of value every week and make rolling your software into production a non-event.
Get ready to kick some software project butt. By learning the ways of the agile samurai you will discover:
- how to create plans and schedules your customer and your team can believe in
- what characteristics make a good agile team and how to form your own
- how to gather requirements in a fraction of the time using agile user stories
- what to do when you discover your schedule is wrong, and how to look like a pro correcting it
- how to execute fiercely by leveraging the power of agile software engineering practices
By the end of this book you will know everything you need to set up, execute, and successfully deliver agile projects, and have fun along the way. If you’re a project lead, this book gives you the tools to set up and lead your agile project from start to finish. If you are an analyst, programmer, tester, usability designer, or project manager, this book gives you the insight and foundation necessary to become a valuable agile team member.
The Agile Samurai slices away the fluff and theory that make other books less-than-agile. It’s packed with best practices, war stories, plenty of humor and hands-on tutorial exercises that will get you doing the right things, the right way.
This book will make a difference.
Author(s): Jonathan Rasmusson
With Kanban, every minute you spend on a software project can add value for customers. One book can help you achieve this goal: Agile Project Management with Kanban.
Author Eric Brechner pioneered Kanban within the Xbox engineering team at Microsoft. Now he shows you exactly how to make it work for your team.
Think of this book as “Kanban in a box”: open it, read the quickstart guide, and you’re up and running fast. As you gain experience, Brechner reveals powerful techniques for right-sizing teams, estimating, meeting deadlines, deploying components and services, adapting or evolving from Scrum or traditional Waterfall, and more.
For every step of your journey, you’ll find pragmatic advice, useful checklists, and actionable lessons. This truly is “Kanban in a box”: all you need to deliver breakthrough value and quality.
Use Kanban techniques to:
- Start delivering continuous value with your current team and project
- Master five quick steps for completing work backlogs
- Plan and staff new projects more effectively
- Minimize work in progress and quickly adjust to change
- Eliminate artificial meetings and prolonged stabilization
- Improve and enhance customer engagement
- Visualize workflow and fix revealed bottlenecks
- Drive quality upstream
- Integrate Kanban into large projects
- Optimize sustained engineering (contributed by James Waletzky)
- Expand Kanban beyond software development
Author(s): Eric Brechner
Thoroughly reviewed and eagerly anticipated by the agile community, User Stories Applied offers a requirements process that saves time, eliminates rework, and leads directly to better software.
The best way to build software that meets users' needs is to begin with “user stories”: simple, clear, brief descriptions of functionality that will be valuable to real users. In User Stories Applied, Mike Cohn provides you with a front-to-back blueprint for writing these user stories and weaving them into your development lifecycle.
You'll learn what makes a great user story, and what makes a bad one. You'll discover practical ways to gather user stories, even when you can't speak with your users. Then, once you've compiled your user stories, Cohn shows how to organize them, prioritize them, and use them for planning, management, and testing.
- User role modeling: understanding what users have in common, and where they differ
- Gathering stories: user interviewing, questionnaires, observation, and workshops
- Working with managers, trainers, salespeople and other “proxies”
- Writing user stories for acceptance testing
- Using stories to prioritize, set schedules, and estimate release costs
- Includes end-of-chapter practice questions and exercises
User Stories Applied will be invaluable to every software developer, tester, analyst, and manager working with any agile method: XP, Scrum… or even your own home-grown approach.
Author(s): Mike Cohn
Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship . Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer—but only if you work at it.
What kind of work will you be doing? You’ll be reading code—lots of code. And you will be challenged to think about what’s right about that code, and what’s wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft.
Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code—of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.
Readers will come away from this book understanding
- How to tell the difference between good and bad code
- How to write good code and how to transform bad code into good code
- How to create good names, good functions, good objects, and good classes
- How to format code for maximum readability
- How to implement complete error handling without obscuring code logic
- How to unit test and practice test-driven development
This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.
Author(s): Robert C. Martin
eXtreme Programming is an ideal many software shops would love to reach, but with the constant pressures to produce software quickly, they cannot actually implement it. The Agile software process allows a company to implement eXtreme Programming quickly and immediately-and to begin producing software incrementally in as little as 30 days! Implementing eXtreme Programming is easier said than done. The process can be time consuming and actually slow down current software projects that are in process. This book shows readers how to use SCRUM, an Agile software development process, to quickly and seamlessly implement XP in their shop-while still producing actual software. Using SCRUM and the Agile process can virtually eliminate all downtime during an XP implementation.
Author(s): Ken Schwaber, Mike Beedle
The Go-To Resource for Large-Scale Organizations to Be Agile
Rather than asking, “How can we do agile at scale in our big complex organization?” a different and deeper question is, “How can we have the same simple structure that Scrum offers for the organization, and be agile at scale rather than do agile?” This profound insight is at the heart of LeSS (Large-Scale Scrum).
In Large-Scale Scrum: More with LeSS, Craig Larman and Bas Vodde have distilled over a decade of experience in large-scale LeSS adoptions towards a simpler organization that delivers more flexibility with less complexity, more value with less waste, and more purpose with less prescription.
Targeted to anyone involved in large-scale development, Large-Scale Scrum: More with LeSS, offers straight-to-the-point guides for how to be agile at scale, with LeSS. It will clearly guide you to
- Adopt LeSS
- Structure a large development organization for customer value
- Clarify the role of management and Scrum Master
- Define what your product is, and why
- Be a great Product Owner
- Work with multiple whole-product focused feature teams in one Sprint that produces a shippable product
- Coordinate and integrate between teams
- Work with multi-site teams
Author(s): Craig Larman, Bas Vodde
11. More Agile Testing: Learning Journeys for the Whole Team (Addison-Wesley Signature Series (Cohn)) (2014)
Janet Gregory and Lisa Crispin pioneered the agile testing discipline with their previous work, Agile Testing. Now, in More Agile Testing, they reflect on all they’ve learned since. They address crucial emerging issues, share evolved agile practices, and cover key issues agile testers have asked to learn more about.
Packed with new examples from real teams, this insightful guide offers detailed information about adapting agile testing for your environment; learning from experience and continually improving your test processes; scaling agile testing across teams; and overcoming the pitfalls of automated testing. You’ll find brand-new coverage of agile testing for the enterprise, distributed teams, mobile/embedded systems, regulated environments, data warehouse/BI systems, and DevOps practices.
You’ll come away understanding
• How to clarify testing activities within the team
• Ways to collaborate with business experts to identify valuable features and deliver the right capabilities
• How to design automated tests for superior reliability and easier maintenance
• How agile team members can improve and expand their testing skills
• How to plan “just enough,” balancing small increments with larger feature sets and the entire system
• How to use testing to identify and mitigate risks associated with your current agile processes and to prevent defects
• How to address challenges within your product or organizational context
• How to perform exploratory testing using “personas” and “tours”
• Exploratory testing approaches that engage the whole team, using test charters with session- and thread-based techniques
• How to bring new agile testers up to speed quickly–without overwhelming them
The eBook edition of More Agile Testing also is available as part of a two-eBook collection, The Agile Testing Collection (9780134190624).
Author(s): Janet Gregory, Lisa Crispin
The Art of Agile Development contains practical guidance for anyone considering or applying agile development for building valuable software. Plenty of books describe what agile development is or why it helps software projects succeed, but very few combine information for developers, managers, testers, and customers into a single package that they can apply directly.
This book provides no-nonsense advice on agile planning, development, delivery, and management taken from the authors’ many years of experience with Extreme Programming (XP). You get a gestalt view of the agile development process, including comprehensive guidance for non-technical readers and hands-on technical practices for developers and testers.
The Art of Agile Development gives you clear answers to questions such as:
- How can we adopt agile development?
- Do we really need to pair program?
- What metrics should we report?
- What if I can’t get my customer to participate?
- How much documentation should we write?
- When do we design and architect?
- As a non-developer, how should I work with my agile team?
- Where is my product roadmap?
- How does QA fit in?
The book teaches you how to adopt XP practices, describes each practice in detail, then discusses principles that will allow you to modify XP and create your own agile method. In particular, this book tackles the difficult aspects of agile development: the need for cooperation and trust among team members.
Whether you’re currently part of an agile team, working with an agile team, or interested in agile development, this book provides the practical tips you need to start practicing agile development. As your experience grows, the book will grow with you, providing exercises and information that will teach you first to understand the rules of agile development, break them, and ultimately abandon rules altogether as you master the art of agile development.
“Jim Shore and Shane Warden expertly explain the practices and benefits of Extreme Programming. They offer advice from their real-world experiences in leading teams. They answer questions about the practices and show contraindications – ways that a practice may be mis-applied. They offer alternatives you can try if there are impediments to applying a practice, such as the lack of an on-site customer.
–Ken Pugh, Author of Jolt Award Winner, Prefactoring
“I will leave a copy of this book with every team I visit.”
–Brian Marick, Exampler Consulting
Author(s): James Shore, Shane Warden