Manufacturing can be done in 2 ways. Push manufacturing where production is done without consideration of demand. Pull or lean manufacturing where manufacturing is done as per market demand. Lean manufacturing again can be categorized into 2 ways. Kanban manufacturing where attention is paid on manufacturing one piece of part at a time and completely avoiding inventory in the manufacturing process. The other way of doing manufacturing is when we do manufacturing based on a production plan. This production plan is made based on manufacturing capacity against the orders which have been received.
In this article we will extend this concept for software projects.
Suppose a large software services provider gets software projects in large numbers to the tune of hundreds of projects at any given time. He has a large pool of talented people as well as all the infrastructure required to execute these projects. This is the capacity of the service provider and the orders he gets for projects can be considered same as manufacturing orders that a manufacturer receives.
Each software project can be broken down into project phases such as requirement development phase, software design development phase, software construction phase, system testing phase, deployment phase etc. For any project, these are the work in process parts. These work in process parts can have start date, end date, resource required information. Thus each project can be considered as an order consisting of these work in process parts.
In this backdrop, suppose the service provider receives 100 projects for a month. Using production planning techniques, it is possible to plan for making project parts.
This plan can be termed as project production planning. This way, it is possible to serve software services at a mass scale. The considerations for these project production planning will be to reduce idle time, deliver on time, increase ROI on capital investment etc. These goals in turn will make sure that cost of operations will get reduced and productivity of resources will get increased.
The most difficult issue with this kind of working is difficulty in estimating effort and cost for project tasks. Unlike machines or robots, it is difficult to get people doing repetitive work efficiently and within calculable amount of time. But if we have good road maps available for most of the projects, then time estimates for all project work can be done with some accuracy.
One more interesting factor to be considered here is the application of lean manufacturing. Lean manufacturing states that, each work in process part should have visibility as to for which finished product it is being processed. The other aspect is the visibility from the top as to what is the status of an order. In production planning both these aspects are taken care of. Each work in process part is pegged with the orders against which it is being made. The production plans also have visibility as to what could be the status of an order at any given point of time.