For business users of Microsoft Excel.
For business users of Microsoft Excel.

 

Home   >  Business Tools

Agile Spreadsheet Development


Many programmers use Agile Software Development, a collection
of techniques that reduce errors and speed software development.
Here's how Excel users can use similar techniques to gain similar
benefits.


by Patrick R. O'Beirne
November, 2004

Spreadsheets are too easy to use...at least from the perspective of information risk.

Easy spreadsheet development permits an unplanned approach that often results in unstructured models with non-validated data. Easy development encourages too many errors.

The European Spreadsheet Risk Interest Group [1] has held five annual conferences about this subject. As the concern about business exposure from end-user development has grown, each conference has been bigger and seen better-researched papers than before.

The danger is real. Because spreadsheets are easy to change, they lack version and audit controls. (AllFirst fraud [2].) And poorly documented spreadsheets permit easy operator error. (Transalta $24M loss [3].)

This article suggests how certain methods, many of which are attracting more attention by programmers, can help Excel users improve the Excel-development process, save time by making fewer mistakes, and endure less of the cost and pain of bad spreadsheet practice.

Two Heads Are Better Than One

Having two people working together at the keyboard has the effect of continuous peer review.

Ray Panko, in his study of spreadsheet error rates [4] finds that “[pairs] reduced errors by about a third”. XP advocates [5] say “It is counter-intuitive, but two people working at a single computer will add as much functionality as two working separately except that it will be much higher in quality.”

A good practice is to deploy spreadsheet champions or “gurus” whose experience can be passed on to others in a master-journeyman-apprentice manner.

Experienced spreadsheet builders know that time spent planning the spreadsheet up front saves time re-working a bad structure. They save their work often and keep backup copies so they can revert to previous known working positions quickly.

Master modelers have rules of thumb such as: Put constants in their own cells. Create a structure that is easily auditable. Create formulas with relative and absolute addresses to make block copying easier and safer. They know how to use Excel's built-in functions so they can avoid re-inventing the wheel or producing wobbly wheels.

A “moving pairs” team structure helps such techniques get passed around quickly, spreads knowledge across teams, keeps thinking fresh, and avoids bottlenecks. When new people join a task, the questions they ask to get up to speed show what needs to be clarified or simplified in the task, which ultimately makes the system easier to maintain.

Some financial industry environments have performance bonuses or competitive pressures. There, working as pairs may be unacceptable to the Excel jockeys, even though there are risky conditions and intense time pressures -- in merger and acquisition analysis, for example.

In these conditions, the managers need to decide the extent to which the spreadsheets are personal scratchpad tools that always disappear after a project, or corporate assets that are re-used. Bear in mind that many "one-off" creations are handed on and become embedded in the decision making process, precisely because they proved so useful. In such cases, they should really be treated with the same care as other Information System assets.

Test Early And Often

Naïve spreadsheet creators often lack a concept of testing, except to ask, "Does it look right?" However, the mere appearance of correctness may deceive in a couple of ways.

An answer that is expected, unfortunately, may be accepted as verification of their intuition – even though both the model and their intuition may be wrong and a nasty surprise lies in wait for a business decision based on such an output.

An answer that is obviously different from expectations might either give some business insight (which is often the purpose of a projection from present knowledge) or the spreadsheet author might decide that their pre-judged answer has to be right and will bend the model to fit. That might be regarded as mere political show to obtain apparent "objective" support, and risks being found out in the most embarrassing possible manner.

When you do not know what the expected answer is – that is why you are building the spreadsheet – then there still is a need to perform some parallel calculation to provide some kind of independent check.

Good practice, then, is to build in tests from an early stage. The simplest and most common test used in accounting models is to check that totals across and down agree. More sophisticated tests use IF functions to display a message beside an output cell when a result is not as expected.

Input cell validation can be specified in Excel to check for typed-in values being whole numbers or within a given range. But it is easily defeated by copy-and-paste operations, so it cannot be relied upon.

VBA can be used to automate test suites that perform basic batch tests such as clearing all input cells, and setting them all to known values, and checking a final result cell.

Debugging and Maintenance

Tools are available to audit spreadsheets for unusual patterns, such as numbers or inconsistent formulas appearing in the middle of blocks of formulas. They can be used to compare workbooks and report changes other than simple expected data changes.

Excel has built-in auditing tools which now include a multi-level formula evaluator that permits tracing the precedents of a cell to see where the data comes from; and the dependents to see where a given cell is used.

Simplify Continually

As spreadsheets grow, people become afraid to touch certain parts of them. You can tell that this is happening when you see notes added to say things like, “If you change this, be sure to change that other cell as well.” Such sprawling monsters are growing out of control, so good practice here is to simplify the model continually.

There is a natural reluctance to spend time on clean-up because there is no immediate reward - the model simply (or perhaps I should say ‘at best’) works as before. Take a longer-term view to understand the future benefits. How often have you found supposedly ‘once-off’ models that are actually too useful to throw away?

A spreadsheet often is used to incrementally explore tough technical or design problems to reduce risk or get a better estimate of how much work is going to be needed. We normally hate to throw away such work. But it is often cheaper in the long run to treat the prototype as a "mock-up" and build a more robust and scaleable solution in a structured modeling language or around a database.

Spreadsheets usually “just grow” by incremental development. They start off as simple tables used to summarize data for reporting, and are extended as the knowledge of the business develops.

A large system developed or evolved from multiple spreadsheets is much more like a conventional systems development project, so there is a need for IT to offer support with their experience of integration testing. This article is addressed to those who develop spreadsheets for their own use. Those who develop for others are really getting into professional services and need to adopt a much more disciplined approach to producing robust and secure products. This means requirements analysis, design before development, testing, and reviews. Professionals also apply specific techniques such as password worksheet protection and menu reduction to reduce errors from accidental changes in data or structure.

Cleanup

Here are some good ways to clean up worksheets.

  • Extract constants into their own cells.
  • Add cell comments.
  • Document worksheets.
  • Add worksheet protection with a password, while making sure that some other responsible person has a written copy of the password.
  • Add range names to make formulas self-documenting and readable.
  • Set up styles for color mapping and for currency and quantity formatting
  • Establish other standards to aid comprehension and alert data entry users to the meaning and usage of cells and areas.
  • Break long and complex formulas into separate cells.
  • Apply naming conventions and modular structures in VBA code.
  • Restructure calculations into a logical flow that reads top-left to bottom-right, and the front spreadsheet to the back one.
  • Provide batch testing macros.
  • Save commonly used models as templates to help good structures persist.

Avoid Gold-Plating

Agile developers avoid the “I’ll just do this too as I’m at it” syndrome, adding functionality before it is scheduled. They believe that these guesses at what might be needed in the future are not justified, so they should just add what is needed for today.

If you are developing for yourself, you are probably better placed to judge what you will need in future, but the advice of starting with a simple, sound structure is still good. The aim is always to have a working model, even if it is initially at a low level of resolution. That way, if the schedule is suddenly curtailed (surprise!) you at least have a usable snack rather than a half-baked heap of spaghetti.

This drive towards simplicity starts with the imperative “Do the simplest thing that could possibly work”. It's always faster and cheaper to replace complex logic now, before a lot of time is wasted on it.

Simplify Communications

Much of the delay in conventional project delivery comes from a lack of coordination among the developers. Where there is not constant interaction to set and reset: expectations, acceptance criteria, scope, priorities, and schedules, then customers and developers can turn a simple project into a complex one.

In agile methods, this interaction is brought to weekly or even daily interaction. In end-user development, there is no delay but also, there often is little reflection and pause to think how things might be done better.

Conclusion

It is possible to escape the end-user development nightmare by adopting good advice and making use of training and experience to assist people to do their work with fewer delays and problems.

Copyright © 2004 Patrick O’Beirne, Systems Modelling Ltd., Ireland.
http://www.sysmod.com/spreads.htm


References:


[1] http://www.eusprig.org European Spreadsheet Risks Interest Group fourth annual conference, 2003.

[2] http://www.gre.ac.uk/~cd02/eusprig/2001/AIB_Spreadsheets.htm “The role of spreadsheets in the AIB/Allfirst currency trading fraud” Ray Butler.

[3] http://www.theregister.co.uk/content/67/31298.html TransAlta’s $24-million spreadsheet "clerical error" article in The Register (UK)

[4] http://panko.cba.hawaii.edu/ssr/Mypapers/whatknow.htm “What We Know About Spreadsheet Errors” Raymond R. Panko University of Hawai’i

[5] http://www.extremeprogramming.org/rules/pair.html “What is Extreme Programming?”

 Home              
 Site Map              
 Contact              
 Excel for Business
 Excel Dashboards   
 Excel Solutions   
 Exploring Excel   
 BI for Excel    
  Business Tools
 Excel Catalog   
 Affiliate Program   
 Excel Help Portal  
 
   
     
   
     
 


ExcelUser, Inc.
http://www.ExcelUser.com

Copyright © 2004 - 2008 by Charles W. Kyd, all rights reserved. Content, graphics, and HTML code are protected by US and International Copyright Laws, and may not be copied, reprinted, published, translated, hosted, or otherwise distributed by any means without explicit permission. Terms of Use | Privacy Policy | Earnings Policy.

 

  In ExcelUser...


Excel for Business
newsletter, FREE


• Dashboard reporting
with Excel