I created these slides when I first spoke at an IT forum some years back. Since then, with feedback from different audiences, and also through interaction with colleagues, these slides have evolved.
My audience has been mainly developers, teachers and students about to enter the profession. Usually I am asked to present on OOPs and related subjects. I always speak the first 40 minutes on the challenges. It sets the tone for the rest of the presentation.
There are challenges in creating all types of software. I chose to create the content around business software, because that is what the majority of us build [and what I know most about].
Some of us get to work directly with the customer and develop a sense of the value the finished software will bring to the customer's business. Many of us, lower in the hierarchy and who will work the most in building this software, will not have this opportunity. The first challenge then is: how do we collectively understand and appreciate the needs from the customer's perspective. Because, I believe, that this is the first important step in creating good, maybe great, software. It creates shared vision. And the first bond between members who will build and possibly enhance the software.
This is the first part of the entire presentation and attempts to address this challenge. It ends with a series of questions that I hope will get you to introspect on how you relate to the process of creating software. It is by no means complete. I would love to hear your views and have a dialog.