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.

Friday, January 1, 2010

2010: New and Improved (OneMonthProject)

Last month I wrote an article for the Whitehorses website. A Whitebook about a successful project (only in Dutch: Een succesvol project in de praktijk). The idea is that we approach projects in a new and improved way.

New about it is that we start building software after a very limited starting up phase. When we reach the moment that the customer wants to hire us and we can start, we form a mixed team and spend in total just a few days to get an understanding of what kind of system and what specific behaviour and requirements are expected.

Then we try to define the result we expect to reach and go live with after 1 calendar month. Then we start to reach the finish of the first month result as good and as fast as we can! It's sometimes hard to imagine that you can actually deliver working software after a few days or weeks, but we (we as the pro's in the IT industry) really can!

Ok. Then what's the improved part? The improved part is that we only want to fullfil the needs our customers needs. We focus on the functionality that helps out customers to do their jobs/services better and make money with it. Here is where we improve the way we work with the customer: we team up with the customer. Yes, the customer pays us. But we have to do the excellent job together!

That means, we are more intense involved with each other. Communication about what is wanted, what the priorities are, what makes money, what insights changed, etc will help to gain a better basis to reach the successful end results. Of course there is the risk of scope creep but we will also communicate about that of course. Here comes in the trust we require at both sides. The customer should be aware that moving and changing the target "while flying" costs time and money. We, the "result engineers", should help to keep the number of changes low by asking the right questions and make sure that we have the same target vision (results and business value). Together we do all this!

Some uncertainties in software development are still there. We approach the way we deliver software in a new and improved way but we can't eliminate all risks. The fact that we apply Continuous Integration, Automated Testing and a Testing Environment makes the time between running into and solving eventual risks short and thus a lot easier to mitigate. This applies on both the technical as the business issues.

After the first month we may be done or may just have delivered a piece of a bigger system. This type of months keep on repeating until we are not able to add enough value or the end result has been reached. Changing requirements in the future will normally be a set of various changes, approached by us in about the same way we did the project.

"One Month Project" is how we named this approach and will be offered to our clients from now (2010). Stock and capacity are limited but we plan to expand if we can or should.

There are lots of opportunities for customers to be done in about 1 month. We can help a customer to:
  • build new business
  • make efficiency steps;
  • raise service levels;
  • fix a problem;
  • gain competitive advantage by making small (monthly) steps;
  • make IT helpful (instead of blocking);
  • innovate and excel;
  • etc.
Lots of possibilities! And we really love to reach results. Our customer's business and success is our business.

I'll write more about this OneMonthProject appoach here, so if you like it: stay tuned.


Some info about the toolbox we use: agile, scrum, ruby on rails, java, jruby, linux, ruby, oracle, mysql, etc.

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.

Later!

<

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.

<

Friday, August 14, 2009

Microsoft Tag, that's what it is.

In my previous post I posted an image. That image is a tag. Tags are used worldwide for tagging, identifying and pricing articles and products. Now Microsoft created a new web oriented tag which in my opinion may become a huge success.

Read about it on the site of MS: http://www.microsoft.com/tag/

<

Friday, August 7, 2009

Find out what this is...


This picture can be machine read (even a mobile phone). But what is it?

Friday, July 24, 2009

About IT and business value

The crisis is a pain. In our business of IT-expertise consultancy weird things happen... The hourly rates are very much under pressure in a lot of cases. Even below cost price is seen...!? Is that because the business value of IT solutions is dropping (and the returns are lower than expected) or is it purely the crisis circumstance that costs are cut.

Both are probably true. But how would we solve that?

(We or) I focus on real business value delivered as soon as possible. Not waiting until the full solution is done, tested and approved. No, what can be delivered and result in actual business value, that must be delivered and used for business ASAP. And then we proceed with adding functionality that will even add more business value. And so on, until the added value will become lower than the costs. This mechanism gives ROI from an early moment and brings business and IT closer together. Narrowing or closing that gap between business and IT

Should IT be seen as costs? In a lot of organisations, IT is one of the bigger elements of the "general costs". But is that smart? In many situations IT is a requirements for the business and even the enabler or even the reason of competitive advantage. Is something that important a "cost"? Is it wise to cut that kind of costs?

Is IT not a main ingredient of normal modern business? Is it wise to increase that ingredient OR to lower it. I'm not talking about the costs but about the power of IT. IT can be applied very effective if you want, then it enables your business instead of being a high cost.

It's a matter of vision and the way we organize our business and it's value.

Become lean and agile and focus on value!

<

Monday, June 1, 2009

Getting to use GIT?

Git is a relative new player on the version control playground. A few years ago Git saw the light and was brought by one of the smart guys on this globe. Linus Torvalds; he needed a distributed version control tool to maintain the Linux kernel and seemed not to be too happy with the tool they used before Git. The exact story can be found somewhere else... (some links here)

I didn't use ALL of the possible version control systems but I guess I've seen about 6 or 7 different systems and all of them had pro's and cons, and from free+working to very expensive+not working. The latest I used was SVN and I thought it was OK. But now we start more to use some Ruby/Rails related tools and as a side-effect Git came by. The CI tool Integrity is the one we want to use and it seems to support Git out of the box but not SVN... Now what's wise to do?

I had a quick and global look at Git and created some repositories on Github and have to say it's easy to use... Of course things may change when I start to use the more advanced features but the basic use seems to be OK. So I'm able to make the step to Git!

And.. before I forget...
If you have some SVN repository and would like to try Git with your own stuff, Github provides a way to import your SVN repository. I also tried that and was glad to try some things out with some code I already knew...

BTW: a nice starter may be: http://www.pragprog.com/screencasts/v-scgithub/insider-guide-to-github