Every business is different. It’s what separates them from their competitors and why customers prefer one organization over another. As a result, applications that run business need to flex according to individual styles. Simply selecting a one fits all “out-of-the-box” solution will not meet demands of business, so how do we solve this enigma?
The answer is Client Driven Development™. This is my approach to ensuring applications we build flow with business practices. Eight key features make up our customer centric approach.
Learning the given business scenario from soup to nuts enables us to deliver the best solution possible. This requires study, gathering of facts, and listening to key staff members. Now we know the business and the items that need attention.
Analysis of data gathered during the learning stage will answer the why and lead to the how resolution. Dissection of this data reveals technology requirements, user interface strategies, and begins the formation of the all-important data model.
Planning is key to every successful venture no matter the genera. It sets expectations and puts everyone on the same page. We must know where to begin and what the end will look like or success will be fleeting. Agile doesn’t mean “go-for-it” and figure it out as we progress. If you know the goal then you’ll also know what you what first, second, third, and so on. Development will progress systematically and as planned.
Organization of staff, technologies, equipment, design, and architecture will all happen naturally as we know about the business, understand the data, and have a clear definition of what is required for success. This phase is about forming the puzzle pieces and positioning them for quick concise execution. Documentation will be your friend and sign off will create understanding.
Development now becomes clear to the programming staff. All phases of the development process know what is required. They can move with confidence that what they are creating is exactly what was requested. Do not mistake this for waterfall development where the business cannot change their mind. Course corrections happen. Imploring agile processes will allow you to move and grow with the business.
Implementation is the forgotten art. Who pulls the trigger? How is the changeover being managed? Has disaster recovery been explored? What about data storage backups? You’ve already made the decision about cloud or in-house. The application is now stood up and ready, but should you ‘go live’? Is employee training complete? These questions must be answered before implementation is complete.
Change Management starts with affected employees, the application users. These people must be made champions of the software from the go or else they will become your worst nightmare. They will resist at every mention of change, but give them a piece of the pie and they will work to improve. However, some may not make it. Be prepared.
Support should be nominal. If the above steps where followed then production support and bug fixes can be handled by minimal in-house staff. Staff which was trained during development to continue and sustain the life cycle of the application. However, if some steps were skipped for whatever reason then support you will need as cutting corners has its price. Pay me now or later.
Follow these steps and you will have a successful software development endeavor. To those who say “screw this, let’s code!” I bid you farewell and sever the ties. Hopefully your customer will understand…