April 2, 2012
Last week, Brian Anderson, our Application Development practice principal was featured on the Technology section of Corp magazine. Here he gives 5 helpful tips on how to maintain successful business practices when developing software applications.
Software applications are powerful business drivers of productivity. It always amazes me how far companies that get this insight can automate, optimize and fine tune their businesses. It is fun to observe and be a part of. I have been a software development consultant for 15 years and would like to share with you five keys that great companies and software development firms do to increase their odds of success.
1. Don’t get hung up on billable rates. Focus on the people who are going to work on your project. Vet their experiences and references.
We all like a great value and no one likes to pay more for something than they have to. In the world of software development services there are a wide range of capabilities and experiences. If you find someone with the right set of skills, experiences, and references, that person can be at least three times more productive than a junior level that is just getting started. People like this know how to lay the framework for everyone else to be successful. When hiring a firm make sure to ask who are the senior people on their team that will be working on your project and vet those people. It is OK to have juniors who cost less but don’t assume that they will be as productive or capable of doing the work without some senior leadership.
2. Demand that the budget burned on a weekly basis is visible throughout the project.
There are many ways that the budget of a project can be overrun: scope creep, underestimation of complex features, integration of features or other systems dependent on outside influences or stabilization of the system takes longer than expected, just to name a few. I have witnessed and been responsible for all of them in my career and have come to the conclusion that all of these and more should be expected. A fixed-bid or not-to-exceed approach isn’t necessarily the silver bullet either. In fact, this can lead to one side always losing and a poor relationship that ends in a breakup. The best way, in my experience, is to bring visibility to the budget being burned on a weekly basis which leads to hard decisions being made early. It also maps directly to the next few keys points.
3. Track features and defects in a work item tracking system, not e-mail.
I suspect you are like my clients. You are busy and get well over 50 e-mails every day. Email is a fantastic way to communicate, but not when it comes to software features or bugs. It is too easy for these details to get lost or forgotten. In software, the details matter and need to be tracked, discussed and flushed out. When you engage with a partner make sure that they have a work item tracking system to track features and defects. Make sure that you and your team have access to this system, that you can all review details whenever you want, and that you can add to the discussion around any of the features or defects. Best practices would indicate utilizing a system that will send notification emails when things change and in turn provide an avenue to go back into the system to follow up on details. In short, a process that provides an open and collaborative dialogue.
4. Make sure that you see a demo weekly or do a walkthrough yourself whenever you want.
I can’t stress enough how important demos are even at the earliest stages of the project in order to understand how the system is being built and at what pace it is coming together. They also allow for calculating the validation of the budget-burned-to-value ratio quickly. In addition, a demo allows everyone to see the progress of features that were just discussed and provide the ability to make changes in real time. As the project matures, the system should become usable while a good firm will make it frictionless to access an automated build of the system. They will even encourage you to interact with it and log bugs or feature requests to the work item tracking system.
5. As the client, stay involved in the details throughout the entire project.
This is hard for many clients. You are pulled in so many directions and many times working with a team to develop an application is almost like a second job. However, it is absolutely critical that the client stay involved and assign themselves or others on the team to the project. Assign people who are detail oriented and can make decisions. Software development is one of the most collaborative and detail oriented exercises many people will ever be a part of. It takes business and development oriented minds working together and staying in sync to produce a great outcome.
Follow these keys and your odds of doing a successful application development project will increase significantly.