We all have deadlines to meet, whether its a product launch, a sprint task or whatever, we all have a fixed point in time when things have to be finished.
But do deadlines ever affect the quality of the code we write and would it stand-up to the test of it being maintainable, performant and efficient?
Well it depends on how you measure those things. Code can only ever be maintainable if, in my opinion, its easy to read and reason-about. There are decisions and assumptions made during the development. Its maintainable when someone else can pick it up, understand and carry on working with it.
Code can only be performant if you had a baseline to work from or you had set a specific performant goal, like page loads, perceived performance etc. Keeping the logic and flow simple tends to help these things. Measurable and quantifiable data from analytics and testing web services really helps here. Google Analytics and Web page test are to name a few.
Code can be efficient but sometimes this can affect maintainability and performance. It could be efficient to write a piece of code on one line with single character arguments but is that readable? Efficiency can only be achieved in my opinion when the code has been scrutinised and reviewed by others but again this is one of things which is debatable as all things are.
Saying that, sometimes you’re just forced with the time you have and just write your code to make it work. May not be great or ideal but the reality is that that is often the case.
Lots of thoughts here but ideally if things have been thought through then you should have time to incorporate all the things mentioned. It’s also hard to convince managers and other stakeholders for enough time to doing it right unless you present a real business reasons for doing such things. Ultimately its about knowledge sharing and educating each other.
Rushing things tends to introduce mistakes, unresolved scenarios and mostly go against maintainability and performant code.