How Unique is Software Development?

In a recent short discussion on “3 common mistakes a project manager makes’ over at Linkedin, I mentioned that the three most common mistakes a manager makes are:

1. Rely on his or her instinct and not measurable parameters
2. Manage people and not activities/ deliverables
3. Not set expectations with all stakeholders

The set of what one perceives to be the most common mistakes is likely to vary from person to person. Nevertheless, the second point came in for a sharp response at the forum:

I have a contention on point # 2 in your response. In any people centric organization, managing people is an integral part of Project Management. I am not sure why you consider it as a mistake. Can you explain?

This is not the first time that I have encountered this criticism- that software is “people centric” and hence the focus should be on managing people and not the deliverable. The root cause of this observation goes much deeper- that somehow, software development is something very unique, that it is not similar to other engineering disciplines, that it should not emulate manufacturing.

I aver that while, like any other discipline, software has its unique aspects, it is still part of the long tradition in engineering. Indeed, over the years, consistent attempts have been made to align it with engineering- establishment of standards, the ISO and CMM models all intend to achieve the same objective.

By stating that software is somehow “people centric”, the real point is lost- where software differs fundamentally from manufacturing is that its work products are intangible- they do not have a tangible physical inventory of items that can be measured discreetly, in that software is closer to process engineering where the basic ingredient undergoes a number of changes throughout its lifecycle. In the absence of such tangible artifacts, it seems that somehow it is people centric because that is the nearest tangible association one can make.

Over the years, there has been an increasing recognition of the engineering or manufacturing aspect within  the software industry- where there is the increasing preponderance of “components” (like from Microsoft), frameworks, standards, metrics and processes.

I am sure the the debate will, nevertheless continue, and provide better insights into this still- young discipline.

This entry was posted in Software Engineering. Bookmark the permalink.

4 Responses to How Unique is Software Development?

  1. Udayan Banerjee says:

    Software in an engineering discipline AND it has nothing to do with manufacturing.

    In fact most engineering and design activities today have a software component in it. If you are designing an aircraft or a car or a TV – large amount of software will go into it. I am sure that any engineering activity which is part of creating a new product has lot in common with software engineering.

    But once the engineering is complete and the artifacts required for manufacturing is ready, the commonality ends.

    So, let us learn from engineering and not manufacturing.

    • pmnotes says:

      While a lot of what we know of an engineering today undoubtedly predates manufacturing, it comes into its own only with the onset of manufacturing. It is, therefore, difficult to segregate the two. Even in the course of last one decade or so, the swerve towards making software a commodity is in evidence with objects, re-usability and “assembly” becoming increasingly common. I respectfully, therefore, differ that software has to learn from only engineering and not manufacturing.

  2. Satya says:

    Hi Bhupinder,

    Thanks for taking time to write the blog. Its indeed a very interesting topic & to learn from experiences of globe trodders like you is knowledge & opportunity for youngsters like us.

    Tying back to the main question on the 3 common mistakes a manager makes, I am still not convinced that managing people is a mistake, more so in a software industry where the resources are primarily ‘people’. I agree that over the years (since the birth of software development) the ‘people dependency’ factor has ‘reduced’ (please note: the dependency factor despite still exists), but that does not indicate that we can setup processes & claim to be people independent. We can probably claim to say that with fair level of confidence in a production support kind of environment (where the scope of work is limited & defined). I am sure you will agree that in Software development & maintenance kind of work the same cannot be said. The primary reasons are ‘Skills’, ‘experience’ etc. There is bound to be an impact on the project when a skilled resource moves out half way through a development project or a major enhancement. No process can help such a situation, unless we compromise by having a backup resouce or peer level programming (which has cost associated).

    In conclusion, if people management is a mistake, we are contradicting ourselves by having half yearly & annual appraisals. We could very well appraise on the activities/deliverables instead. The people factor is unique & can never be easily replaced, unless the scope is limited & clearly defined.

    • pmnotes says:

      I said, managing people instead of the deliverable is a common mistake- this is not to say that people management is not required. A common mistake I have seen, particularly by new managers is to allocate tasks to people, for example, in the following manner:

      Resource Task Target Completion Date
      Person A : Create Design Document 1/1/10
      Person B : Module X Development 2/1/10

      Using a project management tool like MS Project or Open project, imposes the right discipline by placing the task first and the resource later. The correct order, therefore, is:
      Task Target Completion Date Resource
      Create Design Document 1/1/10 Person A
      Module X Development 2/1/10 Person B

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 )

Google+ photo

You are commenting using your Google+ 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 )


Connecting to %s