- Choose the best language for the particular job, whether or not it is the one you prefer. Decision factors include:
- What languages are currently being used in the customer environment? They'll have to maintain this over the long run so best to use a language they already know.
- Is there any language particularly suited for the task? I.E. don't use Java to do parsing since that is what Perl was designed for.
- In choosing between two languages that both would serve, it's best to choose the one that you know better.
- Designing a program is a process of negotiation. There is no point in building a better mousetrap if your users are trying to catch a wolf. The main steps are:
- Get user requirements (or feedback if the idea is yours).
- Discuss requirements/idea with programmers to see what is possible.
- Review any modifications with your user group to make sure modifications do not negate the original purpose.
- Code a prototype...or beta version depending on the size of the project.
- Review prototype/beta with user group to make sure original purpose has not been negated.
- Run final version by the user group before release.
- Document your code! You won't be able to remember the details 5 years later when someone reports a bug or requests a modification. Also, if you don't document, you will be responsible for supporting that code forever and you won't be able to move on to other projects.
- Create use cases! Yes, they take time, but if you truly understand what your code should do in various circumstances, it will be easier to code. Also, use cases and system diagrams allow you to pinpoint potential failure points before coding and/or implementation.
- Add reporting to your program. At a minimum, you should have error reporting. If anything is being processed, the ability to track processes can be critical to identifying the source of data loss or inaccuracy. Reporting is often left as the last piece and may not be added at all in many development environments. This leads to programs that are harder to support and makes it difficult for users to quantify the value of the program.
|