We Need Standards
Have you ever read a project codebase where you could find different ways of implementing the same thing? Different ways of implementing controllers, of writing tests.
Recently I’ve worked in a codebase that has evolved through time having different kinds of implementation for most of its basic components: different templates, different tests, different controllers, mainly because each developer had their better way.
The result is that every time you open a specific file, you are not sure what to expect.
When looking back in the way we developed it, I kept thinking in how it would be much better if our team could develop code as one person would, having the same way of constructing the same things, having standards.
But standards? How about innovation? We’ll just keep doing the same things for years this way.
There is where we can also learn from Toyota. They have standards, but they can change at any time, and I believe this could be easily applied to software projects. Just because all the team decides how to build something, it doesn’t mean that they have to do it during all the project. Agile should be evolutionary, so the current standards should be always challenged. We only have to make sure that at any given moment, everybody should know the ways we write code.
And if I’ve found some case where it doesn’t work, I can change it, and make sure that everybody knows what I’m doing. And to do this I might need just one simple tool: communication.