Friday, September 20, 2013

When will Software Companies Jump On Board?


“Roman engineering was mainly civil engineering: the building of roads, bridges, public buildings, and other permanent structures. A consul, senator, or other magistrate commanded the whole of such a governmental enterprise. Under him the architectus or engineer, in his turn, bossed a crew of minor technicians: agrimensores or surveyors, libratores or levellers, and others. In addition, private builders without special technical training practiced, for private landowners, the craft in which they had been reared.” (Sprague De Camp, 1970)
Over 3,500 years ago, the Romans accomplished construction feats that rival the most complex projects of today, and used project management methods that our most developed processes of today are solely based on.  PMI has built the PMBOK around these processes.  The structure of the workforce also is one that is mimicked to this day.  Commercial construction project management has very hardened, tested, and stringent processes, so why is the software development industry still trying to do things the hard way? 

                  “A recent Standish Group survey of 8,000 software projects found that the average project exceeded its planned budget by 90 percent and its schedule by 120 percent. According to several industry studies, fewer than half of software projects finish within their planned schedules and budgets. Research has shown that the majority of causes of schedule slips and cost overruns are related to either project planning or monitoring.”
The simplified process of project management for most commercial construction projects follows a simple process (a 50,000 ft. view):  A business entity or individual approaches a general contractor to construct a building that has already been designed by an architecture firm.  Before the process of design started, a business case was developed by the Owner that is the basis for the project charter and the overall effort to consider construction. 

This business case states the need of the business, the desired outcome, and projections of impact once the building is complete.  Next, the Owner works directly with an architecture firm to design the end result, and ultimately provide a budget that the project could be completed for with a certain degree of variability.  The Owner then has the chore of deciding if the cost meets the business case projections, and ultimately if it warrants completion based upon the projections. 

If it is determined to be the case, the Owner will typically elect to retain the architecture firm to work with the General Contractor to complete the structure.  The architecture firm will generally act as the Owner’s representative or SME to help manage the GC.  The Owner will solicit price proposals from several GC’s to complete the work.  What’s important about this step is to note that in order for this to happen, the project has to be broken down in such detail, that each component of the building can be accurately estimated for cost, resources, and time.  This further means that the requirements have been gathered to allow this detail, and if at any point during estimation process there is more information needed, an RFI is produced for clarification.

In order for the GC’s to provide the Owner with a price and timeline for construction, they send out each scope of work to bid to subcontractors.  Once they receive back the estimates which provide cost and timeline, they are able to aggregate these and provide the Owner with an overall cost estimate and time to completion.  All of this is done, typically, before the project begins. 

Construction companies, architecture firms, and sub-contractors expend a large amount of resources to estimate the work they will do, prior to beginning.  Many of these estimates do not foster work, yet only a fractional percentage ever go to contract.  Yet, this industry is the backbone of the World economy, follows the project management methodology used during the building of Roman architecture and has been perfected over thousands of years, and is the model for which PMI basis it’s project management methodologies that are to be the standard for all industries.  So why are software companies having such a hard time falling in line with these principles?

PMI built the project management principles, and has published several versions of the PMBOK which house the standards of project management, developed by industry leaders from many sectors to include software development.  Software companies have spent recent years trying to come up with ways that produce a quality product, on time, and at or below budget but keep faltering.  Only a very small amount of software companies have developed successful methods to build software.

I have spent time within the IT industry just long enough to know that it is a field in its infancy.  Consider that software, as it exists today, has only been around for 30 years or so, with much of its current technology built since the 90’s.  The industry has been around for 1/5 the time it took to build 1 pyramid, yet it continues to falter in its ability to adopt proven methods for construction (either tangible or not).  Did I catch anyone’s attention?  I just related software development directly to commercial construction.  This typically evokes a response within the tech industry proclaiming that the two fields couldn’t be further from each other.

In order for a software project to be started, and ultimately completed, the following must take place:

  •        Owner discovers a need that produces a business case for presentation to its governance board and/ or financiers.
  •        High level estimate completed based upon extremely high level requirements
  •        Software company selected  based upon replies to RFP
  •        Further requirements gathering
  •        More time, scope, resources are ultimately assigned to the project
  •       Which might or might not be paid for depending on the type of contract you entered into with the Owner
  •        Continually run into problems
  •        Miss schedule
  •        Miss budget
  •        Finally finish project
So where was the breakdown?  The first step or two followed directly the process that have been followed for thousands of years, yet the process then deviated.  I have been told:

Software development can’t be estimated because you are not building a building.  That’s something that has been done before, but software development is creating something that has never been created before.” 
Really?  If I am not mistaken software development utilizes the same process, computer languages, and efforts that have been around for years.  It is also the same information taught to computer software engineers in college.  What varies is the logic and interconnection to the level of code below where the development will tie in, infrastructure organization, and data storage philosophies.   

Essentially the architecture for each piece of software is slightly different based upon the individual specifications the Owner requires.  If you strip away the desire to separate one’s self from the stigma that comes from being a construction worker in our society, and look at software development for what it really is, you find it is no different than construction. 

You are using known computer languages, known development techniques, and current technology methods for infrastructure and software development, to produce an end result that is built around the customers’ needs.  This process is for a one-off custom project.  This is an extremely rare process in software development.  Typically you utilize existing software, and manipulate a few details to fit the customer’s needs.  That sounds an awful lot like building a strip mall in “Anywhere, America”. 

If a software company would recognize that they can reduce the amount of write-off work, missed completion dates, budget overruns, and overall unhappiness by simply following the processes that have been fine-tuned over the past 3,500 years, they would be pioneers and quickly outpace their peers.  Instead of signing a contract prior to a complete set of requirements being gathered and estimated, complete this work, then provide a scope, budget, and timeline to the customer to then begin work from and lose the mindset that you are creating something that has never been done before.  Lose the mindset that mirroring construction somehow carries a stigma. 

I encourage you to spend time truly looking at the pieces of architecture that line your city’s skyline and ask yourself if they are cookie cutter efforts.  Instead, you will probably notice that the only thing in common is the fact that they used known standards, specifications, and processes to complete each component from the steel work, to electrical, to the flooring to produce a unique effort.


Chris Thompson, PMP 

No comments:

Post a Comment