Almost all developers are familiar with design patterns, however many are unaware some of their less formal brethren known as ‘design heuristics’. Design heuristics are ‘rules of thumb’ that are used when implementing and designing software and can serve as a natural complement to patterns. Design heuristics often take into account fuzzy factors such as maintainability which is often underplayed or outright ignored by the patterns camp.



Articles


One of the most important determinants of a project’s success is how maintainable the software is. Maintainability in turn, is often driven by soft factors – factors that can’t be quantified or easily measured. This is one reason why so many projects churn out software of poor quality and consistently miss deadlines. A company can have great engineers, the latest tools and technologies, and enforce strict software processes but still create unmaintainable software. Instead of solely relying on things that can be written in a list and checkmarked, one must work on developing a culture of simplicity. Once such a culture exists, the creation of quality, maintainable software will be the natural outcome.
Hiring good people can be one of the most if not the most important thing you can do to ensure a quality technical solution is produced that will solve a business need. I generally look for traits that fall in a few broad categories: technical competence, how well the individual fits into the team and the ability to prioritize tasks with respect to business/project needs.
According to