|
|
Find Out What Customers Need |
|
|
You can save a lot of time by identifying the needs of your customers before you start writing
software. Sometimes what they want is different from what they need. Brainstorm ideas
and concepts to find out how their business works and build a common vocabulary.
|
|
|
Define the Product Behavior |
|
|
Use interaction design to define what product you should build and how it should work.
Develop use cases and scenarios for using the product. Model the concepts. Mock up
a user interface.
|
|
|
Choose the Right Architecture |
|
|
If you select the right software architecture for your product you won't have to rewrite
everything just to add new features for each product release.
Typical architectures include MVC (model-view-controller), messaging, network, peer-to-peer,
pipeline, data- or event-driven. Don't ignore security, performance, or fault tolerance
because these are architecture-busters.
|
|
|
Obey Coding Standards |
|
|
You can review and repair code more efficiently if you agree beforehand
on a common coding standard. Don't delay exception handling or internationalization.
It takes a lot more work to add these aspects later and it can destabilize
the product. Comment your code as you go; you won't have the luxury of doing
it afterwards, even if you could remember what you did.
|
|
|
Test Continuously |
|
|
Good software is implemented in layers. Each layer builds on the functionality of the
layer below. If you test each layer thoroughly, you can depend on it as you add the
next level of functionality. Build regression tests that you can run over and over again
during the development cycle to make sure you haven't introduced a bug when you
change the code. By the time development is complete, you should have tested
the product thoroughly; don't expect your customers to do the job for you!
|