My best boss

I have been a self employed software developer specialising in Excel and VBA since 1996. Before that I did manage to hold down the odd proper job or two.

My best (and last) permanent job was for a Leeds based brewery. As a Yorkshire lad, Tetleys would have been ideal, unfortunately I ended up at Bass (You would have to be a Yorkshireman to understand!). But it was not all bad news, for a start I had a superb boss, and also Bass introduced Hooch, Starapramen and Carling Premier- all great ways to get drunk on expenses (officially called ‘sampling’ – damn hard, working so late on Friday and Saturday nights!). Overall it worked out brilliantly.

Anyway, back to the point, my great boss, and what made him so great.

He educated me in the art of checking my work.

Every time I brought him a new report, or a new version of a report,

“have you checked the numbers?” he would ask,

“Yes” I eventually learnt to say,

“what to?” he would ask, and I would explain where and how I checked it. I don’t remember him ever checking my work himself, although I’m sure he did. (trust, but check!)

His approach was, you’re a professional, its your work, here’s the consequences if its wrong, you take responsibility for it. Of course the odd blunder still slipped through, but I don’t think I have worked many places since with such a good quality record. Our customers had a high level of confidence in the information we gave them to manage their business.

Now I’m not a massive fan of testing, or at least not a fan of having a late testing phase, or a ‘this will get sorted in testing’ type of attitude. But one secondary effect of knowing I was going to have to test my work, was to make sure my work was easy to test.  Now, work that is easy to test I am a huge fan of, I hate complex, I hate ‘clever’, I love clear and simple, step by step.

I still think certain types of testing are a bit like locking the stable door after the horse has long gone. In mainstream software those companies that follow a waterfall methodology (there still are some, someone even thought this was real: http://www.waterfall2006.com/), leave themselves wide open to quality issues that do not surface until very late in the project. What if you turn up on test Monday 3 weeks before delivery, only to find that what has been developed is almost untestable?

More modern approaches to software development favour early regular unit tests, and in fact this is how I tend to work. I don’t go the full test driven development, but I do decide the test, perform the operation then build and run the test.

In my experience spreadsheets that do not have quality and testability built in are very difficult and very expensive to check for reasonableness, never mind to test thoroughly.

I believe the target should be in-built quality.  The vehicle to get us there may be testing or inspection, and I think testability is possibly the same as quality, its certainly a part of what I see as quality.

I used to think developer skill was critical, now I’m beginning to think as long as they have the ability to build simple, testable models, and confidence in line with their abilities then that’s enough. There are other benefits to using highly skilled developers but I’ll carry that forward to another post.

One recent client implemented peer reviews on all important spreadsheets. That is an excellent idea. I don’t think the test is the key part, I think building a model knowing someone else will test it is the critical factor here. Anything spotted during the review I would see as a bonus.

Do you agree?

What do you think are the key factors in reducing the risk of spreadsheet errors during development? (lets cover the rest of the lifecycle later).

cheers

Simon

Advertisements

6 Responses to “My best boss”

  1. Marcus Says:

    >”I hate ‘clever’, I love clear and simple, step by step.”

  2. Ross Says:

    I broadly agree, although if I’m honest I don’t actually do a)enough testing period, b) enough unit testing, c) enough early testing – and I have come unstuck a few time because of this – I should pull my socks up really!

    >>”I hate ‘clever’, I love clear and simple, step by step.”
    I don’t have clever, I do like simple, and I do like step by step, I don’t think they are mutually exclusive!

    >”now I’m beginning to think as long as they have the ability to build simple, testable models, and confidence in line with their abilities then that’s enough”

    The last part rings true for me. Where I work my boss thinks he is a SS guru, yesterday I watched him wrestle with a very simple VBA problem for about 5 hours after which he delivered a very poor final product which just about done what the user asked for, if they knew how to use the SS in the right way! Also this guys SS are so complex it’s make it impossible for any one else to understand them (test/validate that!) apart maybe form me and a few other guys, users or manager have no chance. But a complex nested formula shows how smart I am right!

    >>”There are other benefits to using highly skilled developers but I’ll carry that forward to another post.”

    Sure is and downside too. When I leave my current job there will be no one where to develop/Maintain what I have put in place. No one has the skill to adapt and update the models I have created, so the company will either have to live with the model, drop the model, or contract/employ someone who can.

    this is a indispensable resource!
    http://mindprod.com/jgloss/unmain.html

  3. Simon Murphy Says:

    Ross
    >> no one to maintain.
    Yep big problem, thats why Codematic (me) will agree long term maintenance contracts to maintain other devs work.

    I’d like to get a group of devs involved so we can assure clients and guarantee on-going maintenance and support. Once I’ve worked out a way I’ll post a proposal about it.
    cheers
    simon

  4. Jim Johnson Says:

    I like the experience you recount:- you learned that quality was important by the way you were managed and you did something about it. I guess the environment is a significant factor in how people approach their work – and some places care about quality whilst others only say they do.

    I think that good design of spreadsheets can do alot to help reduce the likelihood of errors and make remaining errors easier to spot (I learnt some good simple practices from my first boss, back in the days of Lotus 123!). Unfortunately, I think most people are never taught how to structure a spreadsheet – training courses seem only to cover Excel functions and features, not how to put them together well.

    Have you come across the concept of ‘design patterns’ in programming. I would think it possible to put together some sort of ‘design pattern reference’ for Excel spreadsheets – that would be interesting, and possibly valuable…

    On the VBA side, I’ve used VB Lite Unit from http://vb-lite-unit.sourceforge.net/ for some unit testing of Excel VBA code, and found it very good.

    Regards.

  5. Simon Murphy Says:

    Hi Jim
    Dermot Balson has some pattern stuff here
    http://www.westnet.net.au/balson/ModellingExcel/DesignPatterns.shtml
    Sabine Hipfl presented at Eusprig a few years ago about patterns.
    I agree there is real potential here
    I think you are right on the structure too (both the importance and the lack of knowledge/training)
    I downloaded VB lite ages ago but never got chance to use it – must try harder!
    The trouble with training is (an example from skiing)
    95% do structured beginner training
    5% do intermediate
    1-2% do advanced
    Spreadsheet training is probably similar
    cheers
    Simon

  6. Always something new to learn at Accounting Mechanics Says:

    […] had occured to me that design patterns for using Excel effectively would be very useful. Simon Murphy last week pointed out to me that I’m far from the first person to think of this and gave me a […]

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: