Just a couple of days ago I went to the IKEA to get some cabinets for my son’s room. Why IKEA you might ask, but they have a good price v.s. quality. The cabinets I bought set me back about € 500,- instead of a €2000,- when build by a carpenter.
While putting them together with my 6 year old son I thought of this title. Only thing missing was the content of the post. What has the IKEA to do with software development. Apparently you would say nothing. That was my first thought as well. But I think developers can learn a lot from IKEA. Why you might think, well….
- Its (fairly) cheap.
- Good quality (for the price)
- Fits in any reasonably priced car.
- Even my son can put it together.
- The construction manual is dead simple.
- Hardly any tools required.
The amount of tools required, they even include them in the package you get. Ok, some basic tools are still required such as a hammer and a screw driver but that is it. If you plan to buy something from the IKEA you are bound to have those laying in the house. In relation to software development you need simple tools as well. Not a rudimentary a screwdriver and a hammer but still. An overly complex tool will not help you.
The manual, have you seen them lately? very simplistic drawing that explain in detail what needs to be done to construct the cabinet. Key here is the simplicity. Regularly I see websites that are not that easy to use. All kinds of extensions are available that do not help you in any sense but distract you from what you want from the application. Continuing on that as said my son can put the cabinet together, therefore something as “complex” as a cabinet is build-able by a 6 year old. (I wish that all the software projects I encountered are that easy to build. Do you remember those hideous projects that require you to follow a 20 page manual just to get an initial build?)
The size of the packages, I am always amazed how much they can get into a small flat box. Cool part is once you open it you can pick up all the pieces easily out of it. Somewhere in the IKEA company they must have some smart packaging engineers to get it all in there. No spaces at all.
Last but not least is the price quality comparison. No matter how you put it, its OK.
Relating all this to software development
How can we relate all of the above to a software developer? Well to be honest any software package should be as simple as a IKEA cabinet or any other DIY package from them. First of all developers should strive for a cheap and good end product. The fitting in the car sounds strange in a software development context nut nothing more true than that one. You should compare the reasonably priced car with the hardware that is required to run you application. What good is an application that was cheap to develop but required expensive hardware to run on? Its one of the reasons why NOSQL is popular, it requires less hardware to perform queries that would otherwise require special hardware or long processing time on a conventional RDBMS. Anybody that has any knowledge of the language used to write the application must understand what it states. See KISS principle.
users that use the application do not need a book as a manual or a 2-week course to operate it. When the application opens it should be obvious what is required from him or her. Tools a computer and a browser should suffice in most cases. Portable devices sure why not. But don not expect a user to have the same 56 Inch flat screen with ultra high resolution which u used to develop the application.