I use this blog as a soap box to preach (ahem... to talk :-) about subjects that interest me.

Friday, September 17, 2010

SW processes

At the end of 1998 I became Software Engineering Process Group Leader of the Swiss branch of a large multinational group.  It was my responsibility to ensure that software was developed in accordance with the corporate standard processes.  Some of the developers had very little knowledge of Software Process Improvement (SPI).  To “break them in”, I developed “ab initio” presentations with some basic SPI concepts explained in very simple terms.  I just discovered some of the slides in an almost forgotten folder and, given the fact that:
1.    My presentations were never officially registered in the corporate archives;
2.    the business division I was attached to no longer exists;
3.    more than ten years have passed;
I believe I can share them with you without infringing any copyright.

The title of the first slide I want to show you was: [[Software] Process] Improvement.  I used the squared brackets to emphasise that the slides didn’t only apply to SPI.

In the presentation, I started with the pale-blue oval and made the steps from 0 to 3 appear in sequence, followed by the sentence in the bottom right corner  Pretty straightforward, really, but it is amazing how many people found it “enlightening”...

The second slide is just a block of text explaining what Risk Management is:

A risk is the possibility of suffering loss.

Risk Management is a defined set of roles, processes, and tools to identify risks and minimise our exposure to them, compatibly with the resources available.

In practice, Risk Management is: look for possible problems, assess their likelihood and effects, concentrate on those most likely to cause the worst impact, plan actions to deal with them, monitor how things progress, and keep adapting to changing situations and new risks.

The biggest risk is not to have any Risk Management at all!

When I was active in the software development and communications sector (although I doubt that many things have changed) I noticed that risk management was either ignored or over-engineered.

The next slide was designed as a wake-up call for those who considered risk management unnecessary:

To explain how ten moderate risks could lead to an almost certain problem, I showed them the following calculation:
    Probability of each occurring:  Pyes = 0.33
    Probability of each not occurring:  Pno = 1 - Pyes = 1.0 - 0.33 = 0.67
    Probability of none occurring:  Pnone = Pno10 = 0.6710 = ~0.017
    Probability of at least one occurring:  P = 1 - Pnone > 98%

And here is a slide designed to show how it is possible to prioritise risks in a simple way.  The “secret” (so to speak!) is to choose two levels for the probability of each risk occurring and three levels of impact if each risk is to occur.

If you assign impact and probability to each one of your risks, the little table in the middle let’s you prioritise your risks.  You can improve on this technique by defining three levels of probability: below 33%, above 67%, and in between.  The crucial thing is not to anguish too much or have long arguments about the levels, because it would defeat the purpose.  If you sit around a table with half a dozen experts, let them estimate on impact and probability, and take the average, you are likely to get a reasonable result.  You don’t need a secret ballot but, to avoid undue influences, it is important that you make people write their estimates on cards without knowing what the others are voting.

The last two slides I would like to share with you are about time management and divergent thinking.

Here is the one on time management:

I accompanied the picture with the classical six principles of time management (I don’t even remember who wrote them):
1.    List goals and set priorities.
2.    Create a daily “do” list and set priorities.
3.    Do the A’s first.
4.    Handle each piece of paper only once
5.    Do it now!
6.    What is the best use of my time right now?

And now, as my last slide, a simple set of rules to follow in a brainstorming session:

1.    Say or list everything that comes to mind, relevant or irrelevant.
2.    Do not neglect the obvious.
3.    Record key words only.
4.    Repetition is ok.
5.    Do not editorialise or justify.
6.    Do not judge ideas.  Don’t fall in love with or criticise ideas, yours or others’.
7.    Build on others’ suggestions; cross-fertilise; piggyback.
8.    Accept and enjoy moments of silence.  They may produce even more ideas.
9.    Be crazy.  See how many crazy ideas you can come up with.

No comments:

Post a Comment