Saturday, 27 October 2012

Quality of the software quality standard!

Just for completeness below are the current set of 'metrics' recommended from the software quality standard.

You can try and demonstrate 'progress' using these and some smoke and mirrors (sorry - project review document) but most folk would start to glaze over.

 ISO 9126-3:2003 (factors/criteria) properties/sub properties referenced from
You are probably thinking I haven't put any of these into place for my coding - join the club - we have probably been distracted by actually trying to solve the problem ;)

End of software progress rant.....

Friday, 19 October 2012

One year on.

Can't believe it but have been doing this for a year!

What I thought would be a pretty old school re-introduction to Fortran computing has turned into a fantastic kaleidoscope of programming, networking and cloud computing activities. Its not exactly been the structured journey originally planned but rather a meander around various avenues as and when I came across them.

One frightening realisation was that it didn't take long to get back into a Fortran 'flow' - very enjoyable - mathematical routines the lot. Which was a great re-starter! However, the most exciting part of the past year has been the introduction to new media for sharing and networking of 'knowledge'. The brilliant thing is that this part of the revival has cost absolutely nothing in terms of application costs. The biggest cost was in the time invested in development of the content and network. This however, is part of the attraction of course!

Quick summary of online things, including an estimate of the 'value' of each;

  1. LinkedIn - essential, nuff said, 10/10
  2. Storify - excellent repository and for thread building - 7/10
  3. - very easy for collation of things - 7/10
  4. Google+ - I like this as it connects me to all other G-things - 9/10
  5. Google Sites - brilliant free web-site builder - free to anyone - 10/10
  6. Google Reader - great collator of news feeds - 6/10
  7. Google analytics - great for monitoring web-site activity - 6/10
  8. Twitter - original thought that this would be rubbish but turned out to be fantastic for current news - 10/10
  9. Tweetdeck - what a dashboard - 9/10
  10. Trello - came out of the blue - project/activity manageent tool - now essential 9/10
  11. Corkboard - the one that fell by the wayside - remined post it note site - 4/10
  12. Blogger - withut which you wouldn't be reading this years worth of diary - 10/10
  13. GitHub - code repository - essentail  - one with great potential for the future 8/10
  14. Dropbox - absolutely brilliant - 10/10
  15. Photobucket - saved me hours copying photo's between machines - 6/10

Wow - that a pretty exhaustive list but still only scratching the surface - you definitely need a 'strategy' for managing all this - otherwise burnout will ensue. In my view the trick is to have an 'approach' for each of these and on how they fit together - more of that in future posts.

With thanks to all - named in past posts - for pointing me in the direction of these new worlds!!

Saturday, 13 October 2012

A million dollar idea!

Cont' ..... from last blog post.

Having mulled the problem of measuring software development over for a week and having performed extensive literature searches (that's Google and Wikipedia) I think I've got one - a million dollar idea that is!

Maybe I shouldn't tell .... hey ho - won't be the first time.

So the best the extensive research could come up with was essentially you need to define some 'Metrics' that you then monitor, for example;

  1. metric - number of lines of code written - issue, doesn't this just measure the efficiency of the coding team?
  2. metric - number of bug's corrected - issue, same as 1 above?
  3. metric - structured processes in place - issue, is anyone following them?
  4. metric - verification and validation testing - issue, not bad but does it measure progress?
  5. metric - timelines project planning - issue, will you (or maybe you will) plateaux at 90% complete?
  6. metric [for 'agile' development processes such as RAD, DSDM, and other HP (Hackers Paradise;) processes] - small programme elements, and the novel concept of speaking the projects team! - issue - again not bad but am I going to tell you I have a stuck bolt and its going to take me at least a week to  fix it?
  7. etc.
Note to self: must remember the 'agile' terminology for future reference and use on Spreadsheet development projects!

All this is still pretty intangible for the 'manager' who just wants to know if its going OK and will things be finished on time. Not an unreasonable question. So - there must be something better and more user friendly that all this metric stuff (which is useful/essential don't get me wrong). Being software geeks surely there is some software available that does this for you? I've not come across anything more than app's that mechanise the above 'metrics' which is not the right answer in my view.

So I started thinking about how a civil engineering project goes about doing this - not that I am a civil engineer - but that's the point! Say the project was construction of a house, even I could walk along to the site and have a look. Is it still a hole in the ground, have the foundations been put in place is the roof on? These are all tangible milestones that can be viewed by anyone. You could look at the project plan and progress charts, measure time on the job, ensure the contractor has processes in place for delivery - all metrics like the software ones. However, there is no substitute for going and having a look at the site! So what is the software equivalent of 'viewing the site' then?

Taking the civil engineering analogy a step further, and probably stretching it a bit. Could we not present things a little differently, say;

  • hole in the ground - SW equivalent,  project plan and development team in place,
  • foundations in place - SW equivalent, detailed design completed,
  • topping out - party time - SW equivalent, major functional components completed and VnV'd,
  • final fitout - all input output routines completed.
  • etc

what would then be needed is a slick piece of software that puts this into some 'house build' type view of the project. The metrics will then be linked to something more tangible, something that anyone can understand. If you don't have the roof on, for example, then you could have major delays if the main functional requirements have not been coded. There is no point in fiddling about with the fitout if the roof still needs completing (critical path analogy).

Et voila - you have a visualisation that anyone can view and understand.

Well something like that anyway. Now, where do I collect my money .....

Sunday, 7 October 2012

Invisibility cloak.

I have been hit with a couple of software development questions this week. Given what has happened with the West Coast Main Line franchise rebid I am even more concerned about the level of development and checking processes within software related projects. Is software quality being compromised due to the current climate of quick turnaround on jobs and the need to keep costs to a bare minimum?

The West Coast issue seems to be related to spreadsheet use - of which past posts give my view on that so I won't bang on about those any more here. However, this week, a couple of other queries have also raised alarm bells, and these are related to main stream software projects on critical infrastructures!

Both questions were effectively related to how can clients assure themselves that the right level of progress is being made with complex software development. One issue was around ensuring the right level of reliability of a particular code and the other was around assurances to meet delivery timescales.

How do you measure software development 'progress' in a consistent manner? Particularly with the variety of development methods that can be called up, for example, a list taken from Wikipedia states;

"..., the software development methodology is an approach used by organizations and project teams to apply the software development methodology framework (noun). Specific software development methodologies (verb) include:
Or some homemade variant thereof!"

So - just how do you visualise progress on a software development activity? Using verification and validation monitoring, ensuring timelined activities, timesheets of developers or a variety of other metrics? So many processes with so many variations of 'progress'.

to be continued.....