People view of software development

Opinion / Program and Project Management

People view of software development
Prabhakar Karve , Management Consultant, India

People aspect is either neglected or given exclusive importance in software development. We need a more balanced and holistic view.

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

React  |  More on the Author  |  More on this Interest Area   |  More on this View

Other Views by this Author: What software practitioners need from academicians and methodologists? | Initiating Change: Whose call is it? | Remember you are a class not an object

About 12manage | Advertising | Link to us | Privacy | Terms of Service
Copyright 2016 12manage - The Executive Fast Track. V14.1 - Last updated: 28-10-2016. All names tm by their owners.