It is summer time, so today I am going to write about one of my favorite countries in the world – Iceland. Counter intuitively it is not all covered by ice, but very green on the coast, hot from volcanoes and thermal springs, stinky from sulfur and all … covered with waterfalls. The waterfalls are everywhere, they are countless and of different types: high, wide, crystal clear or milk-tea-colored with glacier’s water, with single, double and triple rainbows. They’re beautiful.
This is where waterfalls belong. In the Icelandic nature … don’t bring them to the software world then! (Unless you really have to)
I am always surprised that, although an iterative and incremental approach to software development dates back to the 80’s, many people still have their heads in the waterfall world. They split their projects into distinct phases of requirements: design, implementation and verification, and assume that everything can be predicted. Well, it cannot. It may be that requirements change, or that people change their mind, or simply because they don’t understand each other.
So how is an iterative approach different? The project is split into short iterations or milestones. When iterations end, customers can validate the current output of the project, provide their feedback and then collaboratively define what they would like to do next.
An iterative, incremental approach to implementing manufacturing execution systems or other software, supported by prototyping, can significantly facilitate faster delivery of projects. It is hard to believe how happy and involved a customer will get when they can touch and see the solution from the very beginning of the implementation. They can “feel” the system, which gives them profound understanding of how it will be when they start using it every day. Their feedback can be incorporated immediately. Ideas can be validated using prototypes, so that time is not wasted on changes. Trust is built in the team. And most of all – by elimination of the tunnel effect – the end results are actually very well aligned with what our customers expected!
If you want to use an iterative, prototype based software implementation, your software needs to support the following features, which I collectively refer to as “Blueprinting,” that includes an ability to:
- Quickly prototype a functionality
- Attach the write-up an end-user needs to the specific screens, so that they can be changed quickly as needed
- Annotate the screens of your prototyped solution in runtime by the customer; this way the end user can provide their contextual feedback
- Have an easy, painless way to deliver frequent updates to your customer, so that he / she can immediately see and validate them
Blueprinting enables clients to achieve greater success with their manufacturing software implementations. And, when they are successful, I can take time off … for example in the Blue Lagoon, a famous, solidified lava surrounded hot springs water pool in Iceland.