In recent weeks I have been busy on a number of projects with very tight, almost impossible schedules.
When schedules are tight, there is simply not enough time to implement all the steps of a formal development procedure. But I have found that some good practices shine through as time savers every time. Not only do they save time, but they also help produce exensible, maintainable code – which also saves time in the long run.
So here are my top tips for Rapid Application Development.
- Document the requirements succintly. Avoid using document templates that you can’t fill.
- Define and assign responsibilities, develop by contract and work in parallel.
- Keep interfaces simple. Use patterns commonly found in the framework you are using.
- Beware of generalizing unnecessarily.
- Provide prototypes frequently.
- Use functionality provided by the framework (e.g. Base Class Library in .Net, STL in C++)
- Unit test rigorously. You should have at least as much testing code as production code.
- Provide succint, useful inline documentation.
- Refactor constantly. Review, simplify, reorganize, rewrite, throw away.
- Document the features, bug fixes and known bugs of each version you provide and provide adequate installation utilities.
- Encourage tester feedback and provide quick, reliable responses to each report.
It is important to note that these tips only work well for proficient programmers, for whom the development environment is a tool and not a challenge. You need to know the environment well for points 3 and 6 and, if rewrites take too long, point 9 will not just not be practical.
The good news is that Visual Studio 2008 and the .Net framework provide inherent support for RAD.
You can learn so much about the environment from intellisense without even leaving your project. You can use snippets and autocompletions to boost your typing speed 10x and you can use Visual Studio’s refactoring tools to relieve you of the more tedious tasks associated with rewrites.
These tools are easily accessible and extremely reliable.
Good luck on your rapid application development!