Bob GalenRobert 'Bob' Galen is the President and Principal Consultant of RGCG, L.L.C. Bob has held director, manager and contributor level positions in both software development and quality assurance organizations. He has over 25 years of experience working across a wide variety of software technology and product domains. Bob can be reached at bob@rgalen.com.
AddThis Social Bookmark Button

Agile's "People over Process"... What's the Point?

There are several bloggers on BA Times who have written about agile methods. They've compared them against more traditional methodologies and missed many of the central themes and mindsets within the methods. In particular, one of the often missed points relates to documentation...imagine that! Let me provide some additional context here.

From my perspective, traditional methodologies (Waterfall, Ad-hoc, RUP, etc.) try to capture the essence of a project in the documentation for the project. The thinking goes:

  • We'll gather our best people together
  • We'll put them in a room and they'll think deeply
  • They'll architect and develop models
  • They'll analyze and write requirements
  • They'll design the system
  • They'll pull together a detailed, end-to-end plan
  • They'll plan for quality and risk and process
  • They'll hand it off to someone else to execute...

All of the intellectual property - the experience, the skill, the decision-making, the nuance, virtually all of the creativity has been stuffed into the documents. Usually there's a view that now that all the hard work is done, all we have to do is find a team to simply execute the details. In fact, almost any team could deliver this "well crafted" project...couldn't they?

Then Voila! Our Work Here is Done!

The agile methods come at this situation from a different direction. Why? Because the above approach usually doesn't work. I contend it's why we're still failing in nearly 60% of our software projects to meet stakeholder expectations across one or more dimensions of our projects. (Chaos report data) We've forgotten an important point in the above strategy. It's not that the documentation is bad. In fact, we often need much of that work done. No, the thing we've missed is the people, the knowledge worker, the team. In other words us!

We've forgotten that plans don't execute projects - people do. Architectural models don't guarantee a sound architecture that scales well under adverse, real-world conditions - people do. We've forgotten that exhaustive requirements don't guarantee that we delight our customers and exceed their expectations - people do. We've forgotten that quality doesn't get tested in. Instead it gets built in - by the people. Let me characterize it in another way; here is the agile people mantra:

  1. It's ALL about the People collaborating around real working code!
  2. It's about writing some more code to verify our presumptions in writing about the code...
  3. It's ALL about the People collaborating around the new, real working code!

You see you can't solve problems by trying to predict the future solely within documentation. Here's an agile-esque and potentially different/better approach to attacking a project:

  • You find a wonderful, highly skilled team.
  • They do "just enough" documentation to get started
  • They include the customer in all decision-making; in fact, they're part of the team
  • They start building pieces of the systems, gaining feedback
  • They're transparent to the customer, management, and stakeholders about their discoveries along the way
  • They make informed adjustments as a team and with the business where necessary
  • They triangulate the project through all of the uncertainty and deliver the most meaningful set of features to the client when they need it

In agile, it's not about the pre-work or the documents. It's about the people. Included with the people is the customer. They work together, are inspired and motivated together and they deliver together. It's about self-direction and honest teamwork. It's about discussions and openness regarding project state, progress, and trade-offs.

I would characterize any project that elevates and engages their teams in a holistic manner as being agile. Likewise, any project that allows their teams to think and respond with common sense to each project's unique requirements and challenges as being agile. In the same way, projects that allow them to decide what needs to be documented and, heaven forbid, what doesn't...because it adds no value, as being agile. In other words, any project that truly trusts and engages its people, can be defined as being agile!

If this describes your project environment, then independent of your software development methodology...you are, gulp, Agile!

Don't forget to leave your comments below


Robert 'Bob' Galen is the President and Principal Consultant of RGCG, L.L.C. Bob has held director, manager and contributor level positions in both software development and quality assurance organizations. He has over 25 years of experience working across a wide variety of software technology and product domains. Bob can be reached at bob@rgalen.com

Comments (8)Add Comment
...
written by parth, January 13, 2010
Agile is all about people!!
...
written by Simphiwe, January 13, 2010
And of -course you would consider the future maintainability of the product. The next generation of developers mustbe able to maintain the code when it becomes legacy years to come - documentation should be in the code.
...
written by Robert Galen, January 14, 2010
Well not all documentation can be in the code, but you bring up an important avenue for it. Most agile teams emphasize "the code" as the first viable place to put documentation. The reasoning goes - that it will have the best chance at being up-to-date and maintained there. I sort of buy that. The next place that you didn't mention - is in the "tests". From my perspective, this is a rich opportunity for business level documentation. Particularly if you're using some of the FitNesse oriented Acceptance Test Driven tooling. And of course, there *is* traditional documentation.
...
written by Tabudi, January 14, 2010
If you are saying "They do "just enough" documentation to get started", don't you think this can easily lead to scope creep?
...
written by Robert Galen, January 15, 2010
Sure, it could. But I don't necessarily view scope creep as as being "bad". Sometimes requirements need to shift because of new business goals, changing customer needs, or technical discovery. I guess the point is that teams should be allowed and trusted to triangulate their requirements towards a successful result. Make these shifts partnering with the business stakeholders and make the costs transparent to all. As long as you're increasing your requirement coverage over time and narrowing change and the team feels that it's appropriate, then I'd argue that it's the right thing to do.
...
written by Peter C. Ruth, January 17, 2010
"Scope Creep" is built into the process. In agile methods, additional requirements may be added at any time, prioritized in terms of business value, and added to the backlog. At the start of each new iteration, the team decides what items in the backlog go into the new iteration. Typically, throughout the process, those things having the highest business value are delivered earliest, so that at any point, the maximum business value has been delivered. Also, not much time is spent in design up front; instead, the best design will "emerge" during the process. (It's not as scary as it sounds). Remember, what caused waterfall to fail was changing requirements mid-stream, and BDUF (Big Design Up Front". Excluding the requirements, then, when is the best time to document the system? Of course, it's at the end of the project, when everything about the system is known. By then, a lot of the user documentation will be incorporated into the system.
...
written by Roland Hesz, January 18, 2010
As far as I have seen every process is about people, not only agile. Given the difficulties even more so.

Also, you have left out an important item from your list:
* Find an agile customer

That in itself is pretty difficult in my experience.

Also: "But I don't necessarily view scope creep as as being "bad"."

Scope creep is not neccessarily bad. However as most of the projects are fix priced, they can lead to huge arguments - "we thought that it is evident that this function is part of the solution".
In an ideal world scope creep is not a problem. In the real world it can break a project pretty quickly.

Again, you need an agile customer to successfully run an agile project.

That's my 2c :)
...
written by Robert Galen, January 18, 2010
So to Petebear and Despil:

Yes, every process or methodology is "about people" at its core. However, the agile methods are the only ones (at least in my experience) that truly aspire and behave with that point in mind. All of the others have/can become grist mills where the people are simply ground up ;-)

What's interesting about the agile methods from a scope creep perspective is that they *embrace* it. Many folks misunderstand this point. They think that the teams blindly take on scope shifts without trade-offs. Nothing could be further from the truth.

Every agile backlog changes has inherent trade-offs and costs associated with it. Agile does two novel things with these though. First, it makes them absolutely transparent through the team and the organization. Second, it engages the team in determining the cost of the trade-off. Everyone goes in "eyes wide open" on each change...including the "customer"!!!

This approach, while more difficult and subtle to manage, can also be leveraged in fixed-price engagements.

Finally, to Despil's point:
An "agile customer" is one who understand the fundamentals of agile methods and engages in the trade-offs associated with them. For example, I can change my mind very late in the game, but there may be a cost in overall features delivered and in rework. But there won't be a trade-off in quality.

Write comment
We love to see comments! However, please do not market or sell any products. Your comment will be removed immediately!
smaller | bigger

busy