People view of software development

June 21, 2010 at 10:07 am | Posted in Scrum and agile, Software Engineering | Leave a comment

The agile manifesto starts with “We value Individuals and interactions over processes and tools”. Given the situation prevailing then in early 2001, it was natural to emphasize preference for certain new aspects over the existing ones to create enough differentiation from the well-entrenched ways. The intention of the signatories was obviously not to belittle existing focus and practices. Unfortunately by the time it reached the practitioners, there were substantial distortions and misconceptions. We come across many agile practitioners who believe processes and tools are not important.

Now in 2010, we need a more balanced view. Rather than preference, we need coexistence. We may rephrase the above statement to “We value Individuals and interactions as much as processes and tools”.  For quite some time before agile manifesto came into being, process preference kept building up.  Even after agile approaches came on the scene, it is still assumed quite often by many that “People” would fall in line once we have strong processes.  It led to the term “People management” similar to “Project management”. 

Actually, “People” have far greater and important role to play in software development than just “being managed”. It is people who architect and design the software systems, create them as well as use them. Even in cases, where one automated system uses another, it is the people who visualize and implement how it works. Thus people play a central role in software development. This does not mean that processes and tools are not important, they are very important because people need them as they are useful. People are good at certain things; processes and tools are good at other things. So it is a complementary role. People can work much more efficiently and effectively when they have the right processes and tools.

Let’s look at it from the systems perspective. Software system is a human system. Health of any living system including human systems depends on a fine balance between preservation (continuity) and evolution (change). Processes and tool help continuity and preservation. People are essential for change and evolution. Physical systems which can be considered non-living continue to operate as well as change in predictable ways. The “awareness” provided by living systems, and especially by people, is essential to change and evolve in new and innovative ways.

This interaction between people & processes leads us to the third component of a system. It is the “Structures”. For any human organization, there are visible structures like the hierarchy, the teams and working groups. There are also invisible structures both at the individual and system level. At the level of an individual, such invisible structures are manifested as assumptions, beliefs and values. At the system level they take the form of conventions and traditions.

These structures, though not as apparent as processes or people, have a strong influence on the working and health of the systems. They create strong addictions and aversions. They create the momentum as well as inertia. They favor certain paths and actions and creating road blocks for other paths and actions. These structures, once formed continue even after the existing people no longer are there or the processes have changed.

Software development is both a repetitive as well as a creative activity. The structures help repeatability and predictability. But creativity also needs freedom; not the unbridled freedom but “Structured freedom”. We need to create and sustain right structures so that there is a fine balance of repeatability and creativity. Then only we will get working software which not only meets time, cost & quality requirements but also leads to customer delight. This is possible only when we do not neglect the people view of software development.

Looking at the agile manifesto once again we may like to rephrase it as: We value
Individuals and interactions over processes and tools ->
     Individuals and interactions as much as processes and tools
Working software over comprehensive documentation ->
     Working software supported by reference documentation
Customer collaboration over contract negotiation ->
     Customer collaboration for deciding and meeting commitments
Responding to change over following a plan ->
     Just enough plan and quick response to change


Leave a Comment »

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at
Entries and comments feeds.

%d bloggers like this: