Software development best practices FAQ: Can you share some "software development best practices" you learned as the owner of a computer programming consulting firm?
Sorry, I don't have a lot of time for discussion today, but here's a brief list of the most important "software development best practices" I know, both for a software development organization, and your personal programming career:
Software development best practices
- Do use some form of repeatable agile process for building software applications. Almost any repeatable process is better than none at all. (If you need one I recommend Scrum.)
- Do use a source code control system (svn, cvs, or commercial products).
- Do use a formal bug-tracking system.
- Do have some form of source code peer review.
- Do have coding standards, preferably a consistent set of standards across all applications.
- Do have a repeatable, automated build system for your applications.
- Do have an automated testing system (regression tests) for your applications.
- Do have some mix of experienced developers (who are good and experts in these practices) and relatively new developers.
- Always keep your applications in a running, demonstrable state.
If I came in to review an organization's software development capability, and they didn't have at least these best practices going, I wouldn't talk to them about anything else; my comments would be "Let's get these things going first, you really need to learn to walk before you can run." As mentioned, I think these are programming best practices for your personal career, and I think they're necessary for an organization to have a great software development process.
More on software development best practices
I'll try to add more detail about each of these software development/engineering best practices over time, but Step 1 is just getting these listed here.
In the meantime, if you have any software development best practices you'd like to recommend, or any comments on the best practices listed above, feel free to add them in the comments section below.