I believe that one of the most challenging parts of being an application software developer is that of learning a new business. I further believe that it is essential at every level for members of the project team to have at least a minimal knowledge of the “big picture” of a project, as I’ve seen too many examples of applications failing to meet the user needs because of a lack of understanding. In the small business environment in which I generally work I have found that the more I learn of a customers business the better I can provide what they really need (…and want that they don’t even know how to express!). I’m going through just such a learning experience now.
The project has reached the stage where data is beginning to get populated into the various master files needed for the daily operations functionality still being developed. In keeping with the spirit of the “Agile” principle of “Business People and Developers…working together daily throughout the project”, we met mid week not only with the owners, but with a couple of their key people. Wow! The ideas flew!
Long story short, I left that meeting with a greater appreciation of their business, as well as a better understanding of the frustrations and inefficiencies under which they are operating as a result of inability to get at information they need in a timely and efficient fashion. Their use of unwieldy spreadsheets to track what rightfully belongs in a database makes for exceptionally inefficient operation — and multiple “versions” of the information in them are uncontrolled. Their need for “real-time” information has reached critical mass — their decision to “build” based upon lack of availabity of generic software to “fit” their needs, as well as employee resistance to change.