I recently had the opportunity to kick off two development projects and onboard two new developers to the EK team. As I introduced the two developers to their projects, I quickly earned myself a new nickname, the Code Police, and at first I wasn’t sure how to interpret that. My goal was to put standards in place from the start so that the projects would be successful, and I did not want to give the team headaches by requiring extra work for little benefit. Around the same time, I joined a development project at EK and needed to onboard myself to new codebases, technologies, and processes similar to the experience of the two new developers. Throughout these opportunities, I gained more knowledge of which development standards were important and the benefits they brought to the team.
In this blog series, I’m going to discuss the benefits that development standards bring to an organization as well as describe best practices an organization should consider for code quality, processes, and code reviews. This blog will cover the benefits of development standards for the organization, for projects, and for individual team members.
Life Without Development Standards
The world we live in focuses on costs and delivery. We want to keep costs down and deliver projects on time and on budget. This often leads to task reprioritization and limiting timelines where we need our teams to adapt and work efficiently without a loss in quality. Teams may not follow development standards if:
- the organization is technically young and has no defined standards,
- the team is newly formed and does not know about or agree with the defined standards, or
- the team is stretched across multiple projects and there is no role dedicated to enforcing standards.
Without development standards, a team may still deliver projects on time, but the quality of the work will take a hit. Tightened schedules and context switching due to task reprioritization increases project risk. In today’s world, organizations need to implement development standards in order to mitigate that risk and ensure they are still delivering quality work.
Organizational and Project Benefits
Development standards lower project complexity, leading to improvements across an organization as well as in individual projects. The three points below walk through some of those organizational benefits.
1. Standards Increase Code Quality
This statement is widely used, but what does it mean? High code quality supports the maintainability of code by improving readability and intuitiveness of navigating the codebase. Similar to how there are grade-level reading lists for school, we want to lower the reading level of code to make it more approachable to new developers. Our goal is to ensure the code follows a predetermined schema. This reduces unneeded complexity by removing all of the college level reading words and making the logical path through the code much easier to follow. Tortuous and obscure logic is great fun when you are reading an Agatha Christie mystery novel, but not so much when maintaining a codebase. This makes it easier to fix bugs and add more functionality in the future.
2. Standards Decrease Project Risk
Increased code quality lowers a project’s complexity and overall risk. Lower project complexity reduces the number of errors that will arise during development and makes it easier to tackle the errors that do occur. Additionally, coding standards enable developers to think through future features and integrations, effectively planning for project scope increase and optimizing the codebase. Project risk is mitigated by providing your team the frameworks and tools that they need to produce high quality work with minimal overhead.
3. Standards Lower Costs
As a result of improved code quality and reduced project complexity, the project team will spend less time locating bugs as navigating and understanding the codebase is easier. They will spend less time identifying where to add and implement new features as the codebase is optimized for enhancements. Also, as explained above, reduced project risk lowers the number of errors that occur in the first place, which results in less time dedicated to resolving issues. Putting the effort and time in place to produce, follow, and iterate on development standards at your organization early will save you project time as quality increases and risk decreases.
The development world is constantly changing and, every day, I feel like I learn a new piece of technology, coding framework, or way of writing a function. In an ideal, code-maintaining-focused world, perhaps all developers would code the same way and implement functionality using the same tools. However, we all know that’s not the case. There are a number of frameworks and tools available that all do the same thing, yet throw their own twist on it. This is great for the development world as tools are always competing with each other to be the best they can be and, thus, are always improving. Development standards in your organization help combat this problem of seemingly unlimited options by providing benefits directly to each team member.
1. Standards Decrease Developer Onboarding Time
When developers join a new project, they are often faced with new technologies, new libraries, and new problems to solve. Before they can start tackling the real problems, they need to pull down the code, get it working, and gain an understanding of how the code is structured. By using standard processes, styles, and project structures, we can lower the “time to action” of new team members. This also lowers the amount of pressure put on developers to quickly on-board themselves and learn new technologies.
2. Standards Increase Process Efficiency
As a developer, I often have “Wait…I know I’ve done this before” moments that enable me to avoid recreating the wheel and leverage the knowledge that I previously gained to complete a new task. That’s sometimes harder to do in the developer space given how many languages and tools exist. If all of your projects that need to be containerized use Docker, then it’s guaranteed (granted not for new employees) that your team members come to the project with prior experience. When your team needs to deploy a project to the cloud, they may need to spend time weighing the pros and cons of AWS CloudFormation versus Terraform and then teach themselves how to use it. By enabling developers to reuse the same code, frameworks, and processes, we decrease the amount of time that developers need to spend figuring out what to do or use, and we let them spend more time on how to implement it.
3. Standards Improve Mental Health
By utilizing organizational standard frameworks and tools, development teams can add skill redundancy and produce easy-to-follow code and documentation so that more than one person can solve problems in the event of an issue. Dan Radigan, senior contributor to Atlassian’s guide to agile, The Agile Coach, argued that code reviews enable team members to take time off, secure in the knowledge that other team members can handle things in their absence. That argument can be extended to most development standards. Additionally, performing code reviews enables more than one person to be familiar with each section of the codebase. It is important to note that reduced project complexity and risk leads to a decrease in errors and a reduced probability of project-based stress. While there are clearly many other causes of stress, the ability to more equitably share the project workload is a great benefit to your team. Improved mental health often leads to increased individual output — and greater employee satisfaction.
There are a number of benefits to investing in development standards for your organization’s projects. These benefits can be overlooked as they are harder to accurately measure. Make sure to check out the rest of the blogs in this series to find out more about specific development standards and how your organization can leverage them.
- Part 2: Code Quality
- Part 3: Processes
- Part 4: Code Review Benefits
- Part 5: Code Review Best Practices
If you have any questions or want to discuss how your organization can implement development standards into your projects, reach out to us!