“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