This may seem like a rather strange topic and I guess a large portion of “Information Technology (IT) guru’s” will think they can skip this post since it is beneath their intellect. WRONG!

It amazes me how management, in IT companies, is still unclear how software development and delivery works.

I think the agile theme of late is confusing the uncertain even more.

The sad news is that management is the victim here and consequently the delivery and ultimately revenue.

The first question that raises out of this dilemma is; “Can a person from a different field, say HR or Finance, effectively manage software delivery?”

By definition a manager is; a person who manages or controls a process (at least my definition). So by simple reductive analysis one can derive that an “IT manager” must understand and know the Software Development Life Cycle (SDLC) process and IT project management methodologies to be able to manage effectively. (Please argue or debate with me if you disagree.) The ISO/IEC 12207:2008 standard for SDLC is here.

Below is a sample SDLC for Business Intelligence I did.

It is based on the Kimball methodology demonstrating which roles are accountable for certain steps in the process. The diagram is a high level illustration of what tasks follow in sequence. This has nothing to do with what project management methodology you follow be it Waterfall, Agile etc. The SDLC cannot change, irrespective of methodology. You can apply any methodology to the SDLC. Water remains water, no matter what you do with it. You can heat it up or cool it down but it remains water. Such is the SDLC.

Note: The SDLC is nota project management methodology.

To successfully deliver any software development project you have to follow the path of the SDLC. The logic is quite simple really, how do expect me to build a house if you haven’t explained to me what you want? Similarly how can I develop a system for you if you haven’t explained to me what you want the system to accomplish? Hence one needs to perform some business analysis before you can design and develop a system. It is the business analysis that informs the technical team what is required. The design informs the (builders) developers how to build the system based on the requirements provided. Then, as with any manufacturing, you need to test your product for conformance to requirements and design. Firstly, did the builders adhere to the design and secondly is the product aligned to the requirements specified.