Software Engineering

Keys to Project Success - Part 9

Mismatched plug and receptacle.

The Devil is in the Details

Years ago we had to implement some business functionality into a large trading and settlement system that was for tax reporting and withholding.  I met with the leader of the release team and his head designer for this new feature to review the design, as I knew if it wasn't done correctly, we’d be facing fines and a regulatory mess.  So, to decrease the likelihood of failure, I wanted to make sure we were on the right track.

Keys to Project Success - Part 8

Changes Ahead

Manage Project Change

What is ‘project change’?  It’s anything that deviates from the plan.  We often consider change to be only a change in requirements, and indeed that is a change.  But there are far more sources of change than that.  For example, one of your team members is suddenly taken ill for what appears will be an extended period of time.  Your plan was to have them working throughout the project.  So that’s a change.  There are subtler forms of change too, such as tasks taking longer than anticipated.  We often don’t consider “being late” on a project as a change, but it

Keys to Project Success - Part 7

People in field with umbrellas approaching a storm

Manage Risk

Years ago I got a call from our CIO about a project to automate budgeting for our U.S. division.  The company made consumer packaged goods, and so the budget was built up from below the SKU level, as different packaging, ingredients, and many other variables had to be taken into account to arrive at costs.  The U.S. finance folks, like in so many other organisations, used spreadsheets to do the number crunching.

Keys to Project Success - Part 6

Build in Quality from the Start

“The problem with quick and dirty, as some people have said, is that dirty remains long after quick has been forgotten.”[1]  Many times in my career I’ve inherited systems where this quote is so applicable.  There are always various reasons: “They needed a solution really fast so we just banged it out,” or, “It was only supposed to be a temporary solution,” and so on.  The thing is, once the solution is in place, it tends to stay in place, and if it isn’t done with quality in mind, then the future cost of

Software Quality Metrics — What to Measure When for Competitive Advantage | Part 4

Improving Defect Detection

No software engineering shop is perfect, as human beings are by nature prone to error.  So, not only do we want to determine what we can do to avoid defects altogether, but failing that, what can we do better to “nip them in the bud”, before they explode in terms of cost and organisational reputation damage.  In the formulas that follow, the subscripted capital letter “I” denotes “Introduction”, and the subscripted capital letter “D” denotes “Detection”.

Software Quality Metrics — What to Measure When for Competitive Advantage | Part 3

Reducing Defect Introduction and Repair Costs and Consequences

In order to know what engineering processes to target and how, in order to not introduce defects in the first place and completely avoid the costs of poor software quality, we need to understand where defects come from, how costly they are to repair, and why they are introduced.  In the formulas that follow, the subscripted capital letter “I” denotes “Introduction”.

Software Quality Metrics — What to Measure When for Competitive Advantage | Part 2

What to Measure

Number-of-defects is a poor measure of (lack of) software quality.  ‘Size’ of the defect (what it takes to repair it) and severity of the defect (what damage it caused) are better indicators.  When severity can be quantified in terms of cost, the sum of cost-to-fix and cost-of-severity gives cost-of-poor-quality.

Software Quality Metrics — What to Measure When for Competitive Advantage | Part 1

Background

A number of years ago, on my first day of my new job as vice president of the software development team of a leading financial institution, as I was being introduced to my peers in the operations area, one of the supervisors in the customer relations call centre came hustling down the isle towards my new boss and I, a look of frustration on his face, exclaiming, “The whole system is down!  We can’t answer any calls!” 

Subscribe to RSS - Software Engineering