Every developer has an opinion, but the software you build shouldn’t look that way. Every software team should agree on a preferred way to build software and stick to it. The ultimate goal is to have a software system that is so consistent, it looks like it was built by a single developer.
It’s a great way to:
- Enforce architectural decisions
- Ensure security and audit tracking
- Increase development efficiency
- Improve maintainability
- Reduce mistakes
How?
Have a well-defined technology stack
The technologies your team uses to build software should be well understood and easy to use. The base technologies should be easy to extend when necessary.Follow well-known patterns: published patterns are well understood making it quick and easy for developers to grasp the idea and use them. Don’t make it a contest for how many patterns you can use, but certainly use them when it makes sense.
Eliminate boiler-plate code whenever possible
Boiler-plate is repetitive code that gets copied throughout the codebase increasing complexity. Create utilities or a framework that handles the common behavior.
Automate cross-cutting behaviors
These are the repetitive behaviors like security, performance timing, auditing, trace logging, etc, that always apply. Some basic level of these behaviors should be handled automatically without the need for a developer to explicitly code anything.
Clearly define responsibilities
Have a clearly defined architecture and project structure. Developers should understand where things like models, repositories, controllers, configuration files, etc belong. Leaving this up to each individual guarantees a mess.
Make it easy to write tests and enforce test coverage
If you want tests written, it better be easy to write them. Most developers don’t enjoy writing tests and will come up with any excuse not to. Enforce test coverage with tools to make sure developers don’t slip up.
Analyze the code for best practices
This is done through static analysis tools that check things like code structure and conventions. This should be automatically performed during a build to ensure it happens.
So remember…
Every developer has an opinion, but your software system should look like they all agree.
If your team needs help building better software, contact us. We can help.