I have grown weary of hearing excuses (for 20 years) from application development professionals about why they are challenged when it comes to developing and delivering applications that meet the expectations of the business. Excuses such as:
- The business doesn't know what it wants.
- The requirements keep changing.
Application development professionals are not served by these lame excuses because no one gets what they want or need. The business is left lacking and application development professionals deserve their reputation. If you have no excuses, then I salute you. If you want to stop the excuses, here's how:
Solution 1: Get Over It
Stop denying reality. The business either doesn't know or can't always articulate what application features they need to make their business more productive, more responsive to customers, and more flexible to market changes. And, they often change their minds because they are just thinking this through themselves and that often results in new needs or missed requirements. This is the nature of the beast. Accept it and stopping beating your head against the wall. It's not good for you.
Solution 2: Understand The Business And Your Users
What's a poor app dev gonna do? You must learn the workings of the business, understand what customers want, what competitors are doing, and what it will take to create a great user experience for users. This will give you a much better context when you speak with the business and you can work together in the requirements, offer new ideas, and head-off many of the gothcha's that come up later. This is your job and you have to start doing it to the nth degree. Keep being strictly a tech-head if you want, but stop the excuses, please. Learn the business.
Solution 3: Build For Change
Things change constantly. You need to choose technologies, architectures, and processes that enable you to respond to change. This requires getting creative and being open to new combinations. For example, maybe an event processing architecture is a more natural way to respond to what is happening in the business than a service oriented architecture. Or, maybe you can build a more better user experience by using Adobe Flex rather than JSF. Building for change is a lot easier when you know the business because it helps you to anticipate future requirements.
Solution 4: Get Passionate About Your Craft!
The industrialization of software development has been an epic fail. Developing software is not like building a car on an assembly line or bottling beer like Laverne and Shirley at the Shotz brewery. Software development is a creative craft more akin to making a movie where talent, creativity, discipline, and passion result in great creations. For years, app dev pros have been told to keep their heads down - that all you need to do is follow the project plan and write your code. Wrong. Lift your head up, find your passion, understand the business and then use your technical creativity to make beautiful applications that users find useful, usable, and desirable.
What's your excuse?
Mike Gualtieri, Senior Analyst, Forrester Research
Follow me on Twitter.