Tag Archives: IT

To estimate or not to estimate? Not the right question…

Over the past few years I’ve seen an increase in articles and posts about whether or not to do estimation (of cost, schedule and effort) for software development projects. This is especially true when agile/iterative methods are used to develop software for which requirements are not readily known in advance.  There are actual “movements” set up to prove that estimating in and of itself is bad for software development.  At the same time, I’ve worked done more and more work for clients related to software benchmarking (to find best-in-class methods, tools, and combinations to develop software) and estimation (including price-to-win estimating.)  I’m now convinced that “To estimate or not to estimate?” is simply the wrong question – or at least a premature question for many companies.

Estimation is often viewed as fundamental to software development (and any other development projects or programs) as are ingredients to cooking or oxygen to life.  While we might wish to discard or discredit the practice of estimation as an inconvenience and even the reason for software “failures” –(Sidenote:  The Standish group’s annual CHAOS reports cite lack of “on-time” and “on-budget” software delivery as rationale for declaring project failure; both of which would disappear as factors if estimating was eliminated) – the truth is that C-level executives need a level of confidence (based on estimates) to bound their investment in new initiatives, no matter how much faith or confidence the executives have in the development teams’ ability to deliver.  In my humble opinion, project managers MUST  develop skills to do solid, reliable project estimates if they are to survive (and thrive.)  But this is where things often fall apart – estimation is not seen as a discipline based on solid data (in part, because some organizations do estimating haphazardly based on bad data, poor models, flawed assumptions, premature input values taken as fact, among other factors.)

This does not include those organizations where the mere notion of projects (being a temporary endeavor intended to deliver an identified product, outcome, or service such as a piece of software) is like a foreign language.  When I teach courses according to the Project Management Institute’s Project Management Body of Knowledge (PMBOK(R)), it’s not uncommon to find IT pros who profess that project management is not needed because their work is bounded solely by calendar months and the number of full-time-staffers.  The idea that work should be managed towards a specified outcome (with goals, objectives, timelines, milestones, deliverables and a formal end) just doesn’t fit into their paradigm, even for those involved in developing advanced technology solutions.  I’m excluding these companies because projects (and estimating cost and schedule) are actually beyond their comprehension, as is productivity, project comparisons or process improvement.

Given the premise that “to estimate or not to estimate” is the wrong (or at least a premature) question – then what are the right ones?  Here’s a short list:

  • If we do an estimate, do we know what are the correct input variables (and values) we should use?  (i.e., Some idea of scope, non-functional requirements, constraints, goals, project environment, etc.)  Garbage in equals garbage out.
  • When estimating, do we have access to correct and appropriate historical data on which to rely? (i.e., does the historical completed project information accurately depict what actually happened on the project? Often up to 40% of true project work effort is not recorded – or it is recorded inconsistently.)  Incomplete or incorrect historical data make for poor comparisons, and even worse estimates.
  • Are the estimating models we propose, appropriate for the industry and application?  (i.e., in construction, it would be folly to use a home building model for a hospital construction or bridge construction project, so too with software.)  Every model, no matter how advanced, needs to be calibrated for the organization using it.
  • Do we know enough about the object of estimation? (i.e., if it is simply an idea about an outcome without any idea of component programs or projects, a “guess”timate or rough-order-of-magnitude may be the only possibility until more data are known.)
  • Are the estimating exercise/practices paid “lip service” by management? (i.e., does management summarily cut every estimate in half, or dictate due dates that override those of professional estimators?)
  • Does the organization take (software) measurement seriously?  (i.e., how are project measures and metrics collected – if adhoc, inconsistent, without formal processes or procedures to validate the quality of project data, then estimating will likely be equally inconsistent)

These are just a few of the important questions that need to be addressed – before we attempt to estimate and rely on the results of the practice.   When estimating is done without proper planning, discipline and consistency, the results will be unreliable and even worse, downright wrong.

In IT as in life, if you’re going to invest in an endeavor (such as estimating), take the time to do it right the first time, or don’t bother doing it at all.  And that, really answers the question of  “to estimate or not to estimate.”

What other questions are critical to ask?  What do YOU think?


The Death of Brainstorming? Say it isn’t so…

I love the articles in the New Yorker, and the following one caught my eye because of the Brainstorming topic. In leadership courses, I’ve espoused the value of brainstorming when done right (without judgement and analysis) – and I’ve seen positive results.  Could it be that the creative process might actually work better when criticism is allowed to fly?

Say it isn’t so

When I teach brainstorming techniques, I always find it interesting that the creative (right brain dominant) thinkers in the group really love and contribute more during the “Brainstorming” free flow of ideas phase (before analysis sets in), while the linear, engineering style (left brain dominant) thinkers in the group can’t wait for the second phase where the ideas are analyzed and critiqued.  Divergent thinking followed by convergence of ideas.  Made perfect sense to me and the students demonstrated how safe each group felt – depending on which side of the brain dominated their idea flow.

So now, it appears that the “Steve Jobs” style of criticism before acceptance, domineering boss-like, judgment first ways of working have merit, or do they?  Read the article then read on and comment (please!)

Here’s the link to “Groupthink” if you cannot reach it above.

I’m conflicted…

about this latest “research” and given my international experiences in presenting in over 30 countries to technical audiences, I have to say that Information Technology and software development are as much about the people and psychology (trust and communication) as they are about technology and engineering problems.

I’ve seen success with collaborative approaches like Kanban, agile, Rational (Use Cases) – which I believe succeed because we bring disparate viewpoints of the customers and suppliers together and address various learning styles (visual, audio and kinesthetic) to gain the highest levels of understanding.  Brainstorming is one such technique whereby the most dominant (i.e., typically the most critical of all ideas except his/her own) no longer gets to direct the problem solving.

What’s BEEN your experience?

I look forward to your comments – do you agree with these findings? – and to further research… and to hopefully announcing that Brainstorming is NOT dead, in fact, it just needed a wake-up call to re-energize the benefits for a new iPad generation!

Trust and Verify are the (IT) Elephants in the room

As a party involved in some aspect of software development, why do you think projects are so hard?  Millions of dollars in research work to solve this question, with the result being new models, agile approaches and standards, all intended to streamline software development.

What do you think is the core reason for project success or failure?  Is it the people, process, requirements, budgets, schedule, personalities, the creative process or some combination?

Sure, IT (information technology) is a relatively new industry, plagued by technology advances at the speed of light, industries of customers and users who don’t know what they want, budgets are preset, schedules are imposed, scope is elusive, and, ultimately computer scientists and customers still speak their own language.  Some people argue that it boils down to communication (especially poor communication).  After all, isn’t communication the root cause of all wars, disputes, divorces, broken negotiations, and failed software projects?

I disagree.

I believe that TRUST and VERIFY are THE TWO most important factors in software development

These two elements are the IT elements in the room (so to speak!) I could be wrong, but it seems like the commonly cited factors (including communication) are simply symptoms of the elephants in the room – and no one is willing to talk about them.  Instead, we bring in new methodologies, new tools intended to bring customers and suppliers together, new approaches, and new standards – and all of these skirt the major issues: TRUST and VERIFY.

Why are these so critical?

Trust is the difference between negotiation and partnership – trust implies confidence,  a willingness to believe in (an)other, the assurance that your position and interests are protected, and the rationale that when life changes, the other party will understand and work with you. A partnership means that there is an agreement to trust in a second party and to give trust in return.  Trust is essential in software development.

BUT… many a contract and agreement have gone wrong with blind trust, and that is why VERIFY is as important as trust. Verify means to use due diligence to make sure that the trust is grounded in fact by using knowledge, history, and past performance as the basis.  Verify grounds trust, yet allows it to grow.

President Ronald Reagan coined the phrase “Trust, but Verify” – but I believe it is better stated as “Trust and Verify” because the two reinforce each other.  This also suggests the saying:  “Fool me Once, Shame on You… Fool me Twice, Shame on Me.”

Proof that Trust and Verify are the Elephants in the Room

Software development has a history of dysfunctional behavior built on ignoring that Trust and Verify are key issues. It is easier for both the business (customers) and the engineers (suppliers) to pretend that they trust each other than address the issues once and for all.  To admit to a lack of trust is tantamount to declaring war and accusing your “partners” of espionage.  It simply is not done in the polite company of corporate boardrooms.  And so we do the following:

  • Fixed price budgets are set before requirements are even known because the business wants to lower their risk (and mistrust);
  • Software development companies “pad” their estimates with generous margins to decrease their risk that the business doesn’t know what they want (classic mistrust);
  • Deadlines are imposed by the business based on gut-feel or contrived “drop dead” dates to keep the suppliers on track;
  • Project scope is mistakenly expressed in terms of dollars or effort (lagging metrics) instead of objective sizing (leading metrics);
  • Statements like “IT would be so much easier if we didn’t have to deal with users” are common;
  • Games like doubling the project estimate because the business will chop it in half become standard;
  • Unrealistic project budgets and schedules are agreed to to keep the business;
  • Neither side is happy about all the project meetings (lies, more promises, and disappointment).

Is IT doomed?

Trust is a critical component of any successful relationship involving humans (one might argue that it is also critical when pets are involved) – but so too is being confident in that trust (verify).  Several promising approaches address trust issues head on, and provide project metrics along the way to ensure that the trust remains.

One such approach is Kanban (the subject of this week’s Lean Software and Systems Development conference LSSC12 in Boston, MA).

Kanban for software and systems development was formalized by David Anderson and has been distilled into a collaborative set of practices that allow the business and software developers to be transparent about software development work – every step of the way.  Project work is prioritized and pulled in to be worked on only as the volume and pace (velocity) of the pipeline can accommodate.  Rather than having the business demand that more work be done faster, cheaper and better than is humanly possible (classic mistrust that the suppliers are not working efficiently), in Kanban, the business works collaboratively with the developers to manage (and gauge) what is possible to do and the pipeline delivers more than anticipated.  Trust and verify in action.

Another promising approach is Scope Management (supported by a body of knowledge and a European based certification) – a collaborative approach whereby software development effort is done based on “unit pricing”.  Rather than entertaining firm, fixed price, lose-lose (!!!) contracts where the business wants minimum price/maximum value and the supplier need to curtail changes to deliver within the fixed price (and not lose their shirts), unit pricing actually splits a project into known components can are priced similarly to how home construction can be priced by square foot and landscaping priced by the number of trees.

In Scope Management (see www.qualityplustech.com and www.fisma.fi for more details or send me an email and I’ll send you articles), the business retains the right to make changes and keep the reins on the budget and project progress and the supplier gets paid for the work that the business directs to be done.  Project metrics and progress metrics are a key component in the delivery process.  Again TRUST and VERIFY are key components to this approach.

What do you think? 

Please comment and share your opinion – are TRUST and VERIFY the IT elephants in the rooms at your company?

P.s., Don’t forget to sign up for the SPICE Users Group 2012 conference in 2 weeks in Palma de Mallorca, Spain. See www.spiceconference.com for details!  I’m doing a 1/2 day SCOPE MANAGEMENT tutorial on Tuesday May 29, 2012.

TLAs, Emoticons, and other Communicata…

textingTexting has gone viral and with it has come a veritable flood of TLAs and FLAs (three-letter acronyms and four letter acronyms), shortcuts, and emoticons.  When it comes to acronyms, it’s no big surprise to us in the IT (information technology) industry – we’ve been inundated with acronyms since IT was first coined.  (I remember smiling years ago when a “senior” consultant I worked with in Telecommunications asked why we’d capitalize ‘it’.)

Most niche industries use acronyms as a communication short-cut.  But acronyms also create confusion and communication obstruction when used outside of their knowledge circle, with few exceptions.  One exception I can think of is the universal acronym is “Rx” (short form for Radix, the derivative of Prescription) — seldom is this shortcut questioned or confused.

The same cannot be said for other acronyms. Take AMA for an example… this is used variously to mean the American Medical Association, the American Marketing Association, the American Music Awards, the American Management Association, the Alberta Motor Association, and others.  So when you see the acronym AMA – what does it stand for?

acronymsI got caught in an acronym fiasco yesterday – unwittingly!  I got a call and spent an hour on the phone with a prospective client who was looking for someone with exactly my “ISO” standards experience.  (I’ve been on the US delegation to ISO software engineering standards since 1994, both as a project editor writing international standards and as a national subject matter expert.)  The client told me that her firm had recently acquired a contract to provide insurance software to ISO and she knew that they would have to comply with all necessary ISO standards.

The hour-long discussion turned out to be for naught – the ISO she was looking for was the Insurance Services Organization, not the International Standards Organization (based in Geneva Switzerland) to which my experience pertained.  In retrospect, the conversation reminded me of a scene out of the old situation-comedy “Three’s Company” (which was a weekly satire filled with double entendres!)  Here I was talking about ISO standards as they might pertain to insurance (and knowing that insurance is both state regulated and nationally regulated… AND it did seem strange that an US-based insurance software company would be retained by such an international entity.  Nonetheless, I played along…) — and the firm was looking for someone in the Insurance Standards Organization based firmly in the US.

In software development, acronyms are commonly used to name software systems – and we even joke about having acronym naming meetings whereby a team creates a seemingly sensible system name to fit into a clever acronym like “ACES” (Access Claims Eligibility System).  Ultimately, the clever long form meaning is lost once the acronym is in place, and people then only remember the acronym.

Certainly, acronyms can shorten redundant and repetitive phraseology – but they do not make sense if they introduce communication barriers.  Texting shortcuts cause the same situation – if someone has to spend extra time figuring out what you are saying, you are NOT communicating.  LOL (laugh out loud), Gr8 (great), 2morro (tomorrow), L8R (later) and other shortcuts sometimes save only a couple of keystrokes so one wonders why they would be used.  In some cases, I’ve seen writings where scholars fear the dumbing down of America through texting.  They wonder if texters will lose their ability to spell (if they knew how to do so before they started texting…)

Emoticons serve to create more casual bonding between texters.  <>():- ; and other punctuation marks serve to create emotion signals and sometimes even show up in once formal written business correspondence and emails.  With emoticons there is not as much danger in being misunderstood – rather it is the introduction of “casual” language into traditionally formal settings.

If your industry needs to create an acronym dictionary to decode the meanings of the many shortcuts in use– then things may have gone too far.  Acronyms, abbreviations and other shortcuts should enable communication — not trip it up.

To your communication success!

TTFN (ta ta for now), TTYL (talk to you later), :-).