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 

Tuesday, September 10, 2013

The Battle Between Sales and Production



The battle lines between sales and production have been drawn since the unfortunate relationship began long ago.  Ultimately, production is responsible for the product or service that sales promised to a client.  Seems simple enough, however the struggle that has ensued starts when sales makes a promise to do something that is not within the control of production. 

Consider a project that requires a large amount of task completion to be done by the client.  When considering the triple constraint that all projects are bound by (time, scope, resources) , the fact that the client controls 2 of these components in this scenario renders production helpless in achieving a timeline promised by sales if the client isn’t given specific parameters to adhere too. 
In this scenario, in order to bolster the success of the production teams, the sales process would include the following:

·         Project proposed timeline:

When working through a possible completion time of a project for a client, if considering a model that requires a large amount of work to be completed by the client, how would you develop or sell this component?  In order to manage the client’s expectations, the process should follow several unique steps that are no different than building a project timeline through the proper process: (do know that the following example is built through the assumption that the project is a repeatable project that has specific nuances that need to be catered to for each client)

            1.  Develop a WBS that is inclusive of all major project tasks
2.  Sequence and estimate task durations
3.  Assign resources
4.  Develop timeline considering scheduling and resource constraints

By working through this process with the client, you are able to accomplish several things, 1) you help the client become intimately familiar with the project itself.  By working through the details of the work to be done, it provides the opportunity to present the needs of the client to ensure success.  2) What the staffing requirements will be for these tasks, and 3) an approximation of when, during the project timeline, these resources will be needed.  This ultimately sets very specific expectations in the client’s mind of what to expect and what will be needed of them to achieve the results they desire.

In any sales to production process, sales should tell the production team not only the scope of work that was sold, but also what the project timeline will be and how it will be staffed to accomplish this intent.  It should not be an effort by production to figure out how to achieve a desired outcome when the triple constraint is not effectively under the control of production.  Development of how something will be built or produced should not be a post-sale consideration, yet it should be a process of identifying the “what”, the “how”, the how long”, and the “how much” which will ensure you are not over promising and under-delivering on your client’s expectations.

 If a business is able to set expectations during the sales process as opposed to the project planning process post-sale, your perceived customer satisfaction levels will increase.  This will also enhance your ability to deliver on what was sold, the job satisfaction your employees enjoy will increase, and hopefully, at least indirectly (though I suppose you could argue directly), your referral rates will increase.