Sunday, March 19, 2006
When Genchi Gembutsu goes Wrong in Software Design
When Genchi Gembutsu goes Wrong in Software Design: "It isn't widely known that I went "to the scene" (Genchi Gembutsu) style and sat and watched bankers working and asked them questions about their work environment and what they were doing. I built several studies from which we derived requirements for the system and the user interface.
However, it wasn't a total success. The anthropological study revealed several aspects of how the bankers worked that hadn't been captured by the business analysts that wrote the original requirements. This on the surface looked like a flaw in the requirements and initially I was heralded as the guy who had uncovered the truth. However, it turned out that many of these were in fact aspects of a badly broken paper based system and had they been implemented as I'd recorded them, then they would have led to increased complexity in the system and would have digitally institutionalized inefficiency. The analysts had understood the depth of the banking system and had designed out these inefficiencies when they'd written the requirements. As the new guy on the scene doing surface deep user interface observations, I had merely sought to recreate their environment. We had to go back, rework the analysis, and devise a domain model that was optimal and a UI that would be intuitive and optimal. To do that we had to use our imagination. Going to the scene wasn't enough. It produced a local optimization because my visibility was local to individual users and not system wide. It took me several months to fully understand the wider banking system.
"
However, it wasn't a total success. The anthropological study revealed several aspects of how the bankers worked that hadn't been captured by the business analysts that wrote the original requirements. This on the surface looked like a flaw in the requirements and initially I was heralded as the guy who had uncovered the truth. However, it turned out that many of these were in fact aspects of a badly broken paper based system and had they been implemented as I'd recorded them, then they would have led to increased complexity in the system and would have digitally institutionalized inefficiency. The analysts had understood the depth of the banking system and had designed out these inefficiencies when they'd written the requirements. As the new guy on the scene doing surface deep user interface observations, I had merely sought to recreate their environment. We had to go back, rework the analysis, and devise a domain model that was optimal and a UI that would be intuitive and optimal. To do that we had to use our imagination. Going to the scene wasn't enough. It produced a local optimization because my visibility was local to individual users and not system wide. It took me several months to fully understand the wider banking system.
"