Software - the Oomph Factor

A year back I was visiting one of the “Cuttingprevious stage has turned into a plant which is visible
edge technologies” conferences. I was talking tofrom the top of the management pyramid). The top
a person in a stall which was displaying an audio-videomanagement starts asking “uncomfortable
movie clipping on ahighly constrained device which hadquestions” instead of getting the status
a bare minimum OS and having dual core processorscompletion of the project in terms of percentages.
and various peripheral to support it. The demo wasManager starts losing confidence in developers and
quite impressive and I was discussing about how theydevelopers, given all these constraints, start coding day
are taking it to the next level.and night to meet deadlines, and one can imagine the
Meanwhile, a person standing next to me was lookingquality of code which gets generated during these
at the movie and when it ended, he askedfancy late hours.
“What is the oomph factor in this?”One of my friends gave an exclusive definition of
Clearly, a representative of the large crowd, who wasdefect-free code which I think perfectly fits in
more interested in feature-set rather then thetoday’s scenario:
underlying technology. These are today’sA Defect-free code is one where the vendor charges
end-users.the client only for the code which is delivered, the
Almost everyday we see gizmos with newdefects in the code are provided free of cost.
technologies around us. Features are doubling andThe project which started as a small 3-month project
costs are halving every year. Over and above thisstarts looking like it would take another century to finish
there are factors like market- window and shelf-lifeit. The developers are perennially present in office and
which are making life tougher for a developer.whenever asked about the status, the explanation
Everybody is talking of how to make the userstarts “Tools are not working, 3rd party is not
experience better. But nobody has dared to look atdelivering, quality is causing too much of overhead. I
the backstage as to what it translates to, when a userhave been working 18 hours a day…Ask Anyone
says I would like it to be better.Here”
For most of the projects, before even theOnly UpperWallah (God) Can Help (OUCH)
requirements get decided, first thing which getsThis is when towards the end of the project when the
decided is the Release Date/Launch Date. Everybodycustomer deliveries are looming on the heads. The
in the management tree starts working backwardscomponents are put together in a way which would
with the date and by the time the dates reach to theeven bring a “hacker” to shame.
leaves of this whole management tree (developers),“Make it work somehow” and
half of the schedule is eaten up by the intermittent“How is it going?” are the only two
nodes.phrases which are uttered by the manager from time
On top of that, customers are asking for ato time.
zero-defect code, which I think one of the most validSomehow (with god’s grace) the components
demands. Even though software, by design, cannotare put together and the BOMB (Built Once with Many
always guarantee a 100% fool-proof execution, still allBugs) is ready and delivered to the customer. The
the testing/quality measures can reduce defects to ancustomer as soon as applies the MATCH (Minimum
almost negligible margin.Acceptance Testing Coverage Hub) to the BOMB all
This gives rise to what I callhell breaks loose.
“OOH-AAH-OUCH” theory ofAll the SLAs measurements starts, 1000 of matrices
Developers.come out and managers become busy with projecting
Developer’s OOH-AAH-OUCH Theoryquality data to divert customer attention from the
Over Our Head (OOH)actual issues
When the requirement and the schedule which isMeanwhile, developers are back to the table reading
generally driven top-down instead of bottom-up isrequirements and coding even much more than in
provided to the developer that is the time when all theearlier phases. The customer is provided with
“oohs” occur. The requirements are like“hot fixes” and quality, which is talked
the UFOs which start flying all over our heads. Theyhighly by the manager, is thrown out of the window for
are not even 10% clear at the start of the project. Asthe umpteenth time.
each requirement is dug deeper, either it bloats up inThe cycle goes on until each open bus is either closed
terms of effort or it goes into what I call is grey areaor listed as a “feature” which may not be
which later requires a lot of grey matter to resolve.used by the end-user.
This is the first ominous sign of all the sleepless nightsConclusion
which will happen in the near future. The developersThough, it may look from the above factors that all the
have a choice to work on this sign and reduce theissues are with the developers and solutions can be
damage, but either the “fear of asking sillyfound by easily replacing them. But then, if we actually
question” or “ego hurt by saying I do notdo the root cause analysis we would find that most of
know this” stops them.the time it is the whole software cycle which is at fault.
This is where the seed of the big problem tree isI think the basic differentiator of software from
sown and hardly anybody notices it.hardware “Software once made can be easily
At the end of the project when we do the “rootchanged whereas Hardware cannot” has
cause analysis” of this tree, most of the timesbecome the foremost problem.
we find this same seed as the problem.As the software can be changed at a later stage, the
Ask Anyone Here (AAH)detailing is not done in a stringent manner hence
This situation starts in the middle of the project wherecreating loopholes and room for potential defects.
the “blame game” starts. This is the placeWe can definitely lay policies and processes to make
where the fist realization happens at the top-level thatthings more effective, but the most important aspect
things are not going right and there might be a problemwe need to change is the mindset of people to
(In other words, the seed which was sown in the“do it right the first time”.