By Marco Heerebout. I use this blog with a focus on my profession and related subjects and opinions. I'm active in the field of system development and software engineering, applying and mentoring Agile principles and Scrum, most of the times in a leading role or as Scrum master.

Thursday, October 22, 2009

Performance and expectations

Although this post is rather short, I do write it.

At this very moment I'm waiting for a file-copy. I have an image of a virtual machine on an external USB drive (WB Passport Elite 250 GB, good drive!) and want to copy it to my fixed harddisk on my slow laptop (why are these things so slow within a year?). While waiting for it I'm able to write this. The expected time to finish was 16 minutes. So that is the time my laptop takes for copying a 16.081.982 kilobyte (about 15.4 GB?) file from an external disk to my internal laptop disk. Amazingly slow... it is about 1 GB/min = 16.5 MB/sec.

In the meantime it finished and it took 19 minutes and 12 seconds! Wow, that's a lot of time copying bits (so rougly 13.8 MB/sec. that's SSSSLLLOOOOWWW). And this is nearly an optimal situation because the file is one huge file. If it were a few thousand files it would probably have taken a something like 2 hours.

Why I started writing this? We all expect more than we easily get from technology. The new waves of technology are highly appreciated all the time until it has become a few months old or a commodity. But replacing things all the time can't be afforded by anyone, so we have to extend the use and lifetimes and make sure the investments are returned in the ratio we like it.

The link with what I do for a living is here! I want to start a few blogs related to projects, performance and expectations. I'm currently actively building up a "project offer" which helps in delivering projects very fast (max few months), providing good performance (in terms of speed of development and availability but also ROI) and fulfill and manage the too much underestimated expectations.



Sunday, October 4, 2009

The Principle of ‘Results Beat All’

"The top strategy is ‘getting the stakeholder results’. Meeting requirements is more fundamental than any other process or principle."

The above text and principle comes from the writing of Tom Gilb. From his Competitive Engineering (CE) book. I'm kind of a fan of Tom Gilb. Since I got into touch with EVO, a "methodology" which could be seen as an early Agile approach of software engineering.

I just read the text because a tweet of him brought me to 100 CE principles, which are very valuable to "us". It triggered me because last week I had a tough dicussion with some people about the current status of a project.

In that discussion I was searching for the reasons of why the project still wasn't finished. The roughly expected date of delivery was about 3 months ago, but the end of the project is very hard to see and predict. I understand all excuses and reasons for not delivering yet but really can't understand that there is almost no understanding about having a HUGE problem.

I explained the team that we are not able to see any results now and that we expected to really SEE progress every sprint. The reaction was that a lot of progress has been made and that there is a lot of software that is of high quality, very flexible, future proof and now only the front-end has to be finished. And if I had taken the effort to look at the code and other non-functional artifacts, I could have SEEN progress (so it was "my own fault that I didn't see progress", WT*???). And of course, the expected date to deliver the system was unknown. No wonder we still have projects that never end or are way too late/expensive.

How can we become happy and build up trust if we don't meet the requirements? (the requested ones, with real value!). Having top-notch software without having delivered any requirements is worth nothing and therefor not really valued by the stakeholders. The top-notch quality software is normally implicitly expected.
The answers is of course to deliver the requested results by meeting the requirements. It is very simple but still not easy to get it done. And besides that, the progress transparency is adding trust. Show the progress made, the efforts it took and how long is still needed for delivering the remaining requirements agreed upon. Estimating may be hard initially, but try and improve...

The summary of this is that it's very wise to follow the basic rules and principles of proven approaches. I apply Scrum and will improve+adapt it where needed. But the basic goal doesn't change, deliver results ASAP!
The top strategy is ‘getting the stakeholder results’. Meeting requirements is more fundamental than any other process or principle.

Currently I'm working on a project approach to show and emphasize the focus on results. We expect to help customers with some short term need in one month!
When we start a project we need the global requirements and the required result. Together we create the product backlog and focus on the stories that make a system valuable and usable after ONE month! Of course not every project is completely done after one month but we are fully focussed on getting the stakeholder results available ASAP. Finishing, beautifying, fully integrating and extending the system afterwards is perfect common sense. But the value and results are there and our customer starts gaining from the added business value NEXT* month!

* if we are able to start NOW, we deliver NEXT month.