Today I wrote this. I’m quite pleased with it, 😁. You see, we have a new codebase and if I let happen to it what has happened to the current codebase I wouldn’t be doing my job.
The homepage exists now, it is not complete, it is not released, but it already has tech debt. Not much, but it is there, and we have to get into the habit of sorting issues as they arise. Standards, patterns, and best practice are being defined as we build, that means some earlier things we did need to be brought up to date with these new ideas.
While we are building, the code we depend on, Next, React, Redux, TypeScript, is also being updated. We have chosen these packages because we deem them trustworthy, but they’re developed by external teams that we have little influence over, we have to move in the direction they choose.
We could have more influence on our dependencies but we don’t have time to contribute despite being completely happy to consume it for our own benefit. And even if we had the permission there would be little time given the demands placed on the team(s).
I may be straying a little off topic here, but the fundamental point is, the codebase is the interface between the customers and all the games, promotions, and experience we want to present to them. The quality of the code affects how quickly we can deliver all these ideas, it affects the user experience, it affects the developer experience, and it needs to be maintained regularly.
I often joke that the unofficial motto here is, “just get it done”. Through that we’ve ended up with a codebase that is laughable. To prevent that from happening to the brand new codebase it has to be maintained. Product has always had the upper hand at the detriment of everything that any engineer holds dear. That has to change. 😘