Java Developer: “I’ve confirmed with the UI developers and they have said that these keys in JSON are being used.”
Me: “Have you checked those values on UI?”
Java Developer: “No.”
Me: “Will you go and see the UI yourself and confirm which keys are mapped to which field?”
Java Developer: “Ok.”
Was I being distrustful towards UI developers? No. I just wanted my Java Developer to follow Genchi Genbutsu and the result was - he identified many unused keys in JSON which could be eliminated.
Genchi Genbutsu is a Japanese word and it means go and see the actual situation yourself for understanding it. It is one of the principles followed by Toyota – the car manufacturing giant. I’m thankful to one of our client for introducing The Toyota Way to me.
As Developers, we are often asked to resolve a technical issue. To understand a technical problem in an application, we go through the generated log files, see the exception stack trace if any, check the code, try to reproduce the problem and thus identify the gaps in technology or the code which is implemented. We follow genchi genbutsu but along with that the expertise of the programmer working on problem resolution - which includes proficiency in the implemented technology, coding skills, understanding of the implemented design patterns, problem identification skills – also play an important role in resolving it.
As Architects, we work on designing solutions for business or technology problems. Here, most of the times the problem analysis is done by Business Analysts (BA) particularly in case of business problems. Whether a BA is able to identify the real problem depends on his analysis skills and how deeply he’s looking into the problem. Many times the problem appears different at the superficial level but it is different when you look deeper. For in-depth understanding of a business problem, understanding of the business domain related to the problem is also crucial for the BA role. Now-a-days most of the projects are being developed offshore. In this case, it is always beneficial to have the BA travel to the actual place where the business problem occurs. Only when he does genchi genbutsu, there would be very little scope of missing the actual requirement.
Many projects are also developed to resolve technology problems. In this case, an application implemented using an old technology already exists. Either there are gaps in the implemented technology which does not allow a certain solution to be implemented or these gaps could lead to new problems or the technology becomes obsolete. We have executed such a technology migration project in e-Zest where we had replaced the application which was built using Lotus Notes on IBM Domino server with the one implemented in Spring and Hibernate. For such projects, which are meant to resolve a technology problem, the Architect should do genchi genbutsu.
Toyota encourages all its executives to follow genchi genbutsu. There are famous stories about the Ohno circle and how Yuji Yokoya drove 53,000 miles across 50 states and 13 provinces and territories in Canada and all parts of Mexico to design the new Sienna. I believe that this practice should be followed by every individual who is a decision making authority. People tend to make opinions without looking at the real picture. A person should not only look at the real picture but also try to gain a deeper understanding of it. It’s a skill which can be developed with practice….On the concluding note I would say that you should also encourage your peers to follow genchi genbutsu :).