|Software development is full of best practices. Indeed entire books have been written on the subject of best practices covering every aspect of software development, from design to coding to methodology to name a few.
I thought I'd throw my own weight into the arena and list a few. These are in no particular order.
I could list many more, and may do just that in a future post. But I think those make a good start.
- Agile methodologies are huge these days. There is an entire industry now dedicated to helping companies adopt agile practices.
- Automated testing is something almost universally agreed upon as a laudable goal.
- Test driven development may fall more on the controversial side, but there is no shortage of developers out there that think of this as a best practice (certainly when used strategically rather than in a purist manner).
- Continuous integration, as opposed to developing in silo branches and then having extensive merging efforts, is also largely viewed as a benefit.
- There was the original, so-called, Gang of Four list of object oriented design patterns, but the list of patterns has grown beyond the ones suggested by this group of authors to include many more. All taken together, using these patterns strategically is considered to be a best practice.
- Code reviews are widely considered to be indispensable ways of promoting code quality.
- Pair programming takes code reviews to the next level and has development performed in a constant state of review.
- One click, automated builds are considered an important goal for most organizations, in stark contrast to the practice of having someone labor for half a day to get the software into a deployable state.
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C.A.R. Hoare