InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Reading List: Agility and Discipline Made Easy

Posted by Alexandru Popescu on Dec 07, 2006

Sections
Process & Practices
Topics
Agile ,
Agile Techniques
Tags
Book ,
Best Practices ,
RUP ,
Open UP
It's always interesting to check out what's at the top of your colleagues' reading pile... This week, we check out the recent reading of InfoQ's architect and co-founder, Alexander Popescu.  Alex thought enough of this book to let his fellow readers know about it. -- Deborah.


Agility and Discipline Made Easy: Practices from OpenUP and RUP
The Addison-Wesley Object Technology Series
by Per Kroll and Bruce MacIsaac (May 2006)


Agility and Discipline Made Easy is mainly a book about OpenUP/Basic (and RUP).  OpenUP/Basic, a subset of OpenUP, is an agile and iterative process focusing on the needs of small collocated teams. OpenUP is supported and delivered by the open source Eclipse Process Framework (EPF). 

The book is influenced by many of the well known agile methodologies like XP, Scrum, Agile Modeling, Crystal, etc., which doesn't differentiate it much from other books in the methodology field.  However, and I would like to make you aware from the beginning, there are a couple of things that make this book one of the most impressive agile development process books I have ever read. Now, that I have your attention, let's go a bit into detail.

The book introduces 20 practices from the OpenRUP/RUP methodology meant to improve the way software development is done by your team or in your company. These are grouped in 6 main sections, according to the software development driving principles:
  • Adapt the process
  • Balance stakeholder priorities
  • Collaborate across team
  • Demostrate value iteratively
  • Elevate the level of abstraction
  • Focus continuously on quality.
According to the authors:
These six principles characterize the software development industry's best practices in the creation, deployment, and evolution of software-intensive systems.
The first thing that caught my attention was the format in which the practices are introduced. Each chapter has the following sections:
  • Problem: the problem the practice tries to solve
  • Background: background information about the problem
  • Application: the how to
  • Comparison with other practices: how the same problem is addressed by other agile development processes
  • Adoption: how to adopt the practice
  • Related best practices: additional supporting practices.
I found this approach very effective and it also reminded me of the way the Gang Of Four formulated the well known book Design Patterns. Each of the presented practices can be used independently from the others and, even better, there is not an imposed way to adopt and use it. In each chapter's Adoption section, the authors present three different levels: basic, intermediate and advanced. By looking at the following diagram, provided in the book, you can decide where your development process should be in terms of low/high ceremony process and waterfall/iterative approach, and so you can decide what adoption level you are interested in.
Process Map
Another very appealing argument for reading Agility and Discipline Made Easy is that for each role in your IT shop there is a different reading path. Each person involved in the software development, being it a project manager, architect, analyst, developer or tester, will be able to find useful and effective information.

I will end by presenting the titles of the 20 practices covered in this book by Per Kroll and Bruce MacIsaac:
  1. Manage Risk
  2. Execute Your Project in Iterations
  3. Embrance and Manage Change
  4. Measure Progress Objectively
  5. Test Your Own Code
  6. Leverage Test Automation Appropriatevely
  7. Everyone Owns the Product!
  8. Understand the Domain
  9. Describe Requirements from the User Perspective
  10. Prioritize Requirements for Implementation
  11. Leverage Legacy Systems
  12. Build High-Performance Teams
  13. Organize Around the Architecture
  14. Manage Versions
  15. Leverage Patterns
  16. Architect with Components and Services
  17. Actively Promote Reuse
  18. Model Key Perspective
  19. Rightsize Your Process
  20. Continuously Reevaluate What You Do
I strongly recommending that everyone read this, it's a must-have book.

No comments

Watch Thread Reply

Educational Content

Jesper Boeg on Priming Kanban

In this interview, Jesper Boeg, author of the new InfoQ book – Priming Kanban, discusses the keys to using Kanban effectively, and how to get started if you are currently using other approaches.

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.