The 1st Law of Software Development


There are at least three reasons why people are the most important part of any software project. And this leads to (what I would like to propose as) the 1st Law of Software Development

Three Reasons for You to Feel Important
In an earlier blog post I have argued that software development is primarily a creative activity, and people are the most (if not the only) creative participants in any software project. (In my experience, they can also be the most destructive participants, but that's another story.) It appears that software development, as a creative endeavor, is all about people.

In another post I have argued that "people over process" is a universal principle. That's because only people have the level of complexity that is required to manage complex systems. Processes and practices can never be as complex as people. And from the Law of Requisite Variety it follows that processes on their own lack the power to manage software projects. People don't really need processes to be effective. It's the processes that need the people to work properly.

Third, software projects are complex systems. In complexity theory the interactive elements of any complex system are called agents. The agents in a complex system interact with each other by exchanging signals and messages. It is clear that, in any software project, people are the only real agents. They receive each other's input, they process it, and they transform it into the output of their choice. (It may not always be the output you had hoped for, but output it is…)

Having listed three major reasons why people are the center of any software development project, I think I can safely make the following claim:

The 1st Law of Software Development = Motivate People

I prefer to compare unmotivated people in a software project with dead people. Dead people are not very creative. (They may have died in a very creative way, but their creativity will have passed away with their last breath.) Likewise, dead people are usually quite bad at managing complex systems. And they certainly don't exchange any useful input and output messages. And besides, they also have that bland look on their face…

Living people require regular attention, or their involvement in software projects might as well be considered dead. In order to fully support your people's capabilities for creativity, management and message-processing, you always need to keep your people motivated

The Declaration of Interdependence (written by fifteen of the world's leading software development experts) says this about motivating people:

We unleash creativity and innovation by recognizing that individuals are the ultimate source of value, and creating an environment where they can make a difference.

In The One-Minute Manager, one of the best selling management books of the 20th century, Kenneth H. Blanchard told us this:

People who feel good about themselves, produce good results.

In First, Break All the Rules, a famous book based on the most extensive management research ever performed, Marcus Buckingham and Curt Coffman wrote this:

Select a person, set expectations, motivate the person, and develop the person: these are the four core activities of the "catalyst" role. If a company's [or a project's] managers are unable to play this role well, then no matter how sophisticated its systems or how inspirational its leaders, the company [or project] will slowly start to disintegrate.

Last June, Forrester released a report that concluded that IT projects are people projects. Elizabeth Harrin blogged about it:

People management skills are essential for the successful design and implementation of the project. […] We all expect this to be true, so in that respect the Forrester study doesn’t add a lot to the world of project management knowledge. But what is interesting is the way that Forrester backed up their conclusions: knowing something is true because that’s the way it works in your office, and being able to evidence it are two different things, so it’s good to have some (more) research to support the thinking that people are the most important things in projects.

Joel Spolsky, possibly the world's most famous software development blogger, described it like this:

The Identity Method is a way to create intrinsic motivation. […] To be an Identity Method manager, you have to summon all the social skills you have to make your employees identify with the goals of the organization, so that they are highly motivated, then you need to give them the information they need to steer in the right direction.

Finally, in my recent interview with Mary Poppendieck, I asked her the question "What activity should be on every manager's daily list?" This is what she answered:

Every day a manager needs to think about what motivates the individuals for whom she or he is responsible, and figure out how to constantly provide those motivators so as to bring out the best in everyone.

And I could go on and on and on and on… listing quotes and references about people management and motivation. Is any of this new? No, not really. We already knew all of it, didn't we? Then why is it that, in many organizations and in many methods and process descriptions, continuous motivation of people is often overlooked as the First Law of Software Development? For example, there are no people management activities described in the Rational Unified Process. Neither does Prince2 list any. And every week I hear job candidates complain about people management being at the very bottom of the list of their previous employers.

To be fair, although the CMMI for Development does not have any process areas for people management, the Software Engineering Institute did address the need for it by releasing a separate People Capability Maturity Model, which might help organizations to successfully address their critical people management issues. And the Software Engineering Body of Knowledge lists Software Engineering Management, which includes people management, as one of its ten knowledge areas.

And what about the agile methods, like Scrum and XP? Do they properly address people management and motivation? I believe the answer to be both yes and no. And I will argue about it in some future posts. Stay tuned…

Subscribe to this blog with a reader or by email!

Latest, greatest and favoritest posts:
The Definitive List of Software Development Methodologies
10 Principles of Agile Project Time Management
How to Select a Fine Technical Manager

  • How Not to Manage Your Country (or Project)
  • Top 100 Blogs for Development Managers (Q3 2008)
Related Posts
free book
GET MY FREE BOOK!
“How to Change the World”