The Joel Test. In this blog I am going to summarize the 12 points by Joel Spolsky, which are famously known as The Joel Test. If you follow them then you can form a disciplined team that constantly delivers best practices.
- Use a source control
Source control is important to enable programmers to work together, know about the changes others make in their code, and revert back to a previous version in case of a mistake.
- Make a build in one step
Simplify your release process by writing a single script that does everything for you, i.e. from a full checkout from scratch to making the installation package.
- Do you make daily builds?
If you use source control, sometimes a developer adds a new source file or work on an existing source file and checks in the code that is not completely developed, which can cause in issues while making a build.
- Maintain a bug database
Keep track of your bugs by maintaining a database. This helps you stay organized, maintain a history of issues and saves you from shipping low quality code. Your bug database should include complete steps to reproduce the bug, observed (buggy) behavior, etc.
- Fix bugs before writing new code
Don’t hurry in writing new code when you have open bugs. To correct the problem, Microsoft universally adopted something called a “zero defects methodology,” which means that the elimination of bugs before writing a new code is the first priority. Here is why: The longer you wait before fixing a bug, the higher will be the cost (in time and money). Because the code written recently will be fresh in your mind and you can fix the issues within no time. But after a few months it will become harder to fix and take more time.
- Keep an up-to-date schedule?
Marketing and business development teams need to make a number of planning decisions in advance of shipping the code. Having a schedule helps solves issues, and make sure to keep it up to date.
- Develop documentation?
Enforce a rule of “no code without specs.” You must write the specifications of your solution that should cover important topics, like its design, business rules, functionality, and process. Having specifications will save you the struggle and cost in training new hires or when looking back at the code after a gap.
- Provide programmers quiet working conditions
Knowledge workers work best as being “in the zone,” this is when they are fully tuned out of their environment and fully concentrated on their work. Interrupting a programmer for a minute means taking away 15 minutes of productivity. Find the best option to how you can keep your teams away from distractions.
- Use the best tools money can buy
Invest in hardware and software to keep your teams up to the pace. Don’t let your programmer suffer due to a slow computer that lets them wait when compiling code. The more time they have to wait, the more their focus will shift towards other stuff that is unproductive.
- Hire testers
Do not depend on your programmers for testing. Hire dedicated testers to ensure the quality of your deliverables. You should have at least one tester for every two or three programmers.
- Have new candidates write code during their interview
Do not rely on the resume or a candidate’s knowledge alone to determine their capability. Often candidates have very good concepts, but they are sometimes not good at producing code. The best way to judge a candidate’s ability to produce code is to have them write code.
- Do Usability Testing
A hallway usability testis when you request someone else to review your code. Programmers often rely on their instincts and assumptions. They need to realize that a common computer user is not an expert, as they can find it difficult to understand the program. The best way to understand the problems that users may encounter is to test the usability of your UI. Force yourself to do hallway usability tests, which cost nothing.
Visit the AAJ Technologies website