resources

Q: I’ve been tasked with turning around a team that has been extremely slow to make changes, and tends to overengineer everything. Most of the team is amenable to a new point of view on how to move faster, but one individual on the team resisting.

A: Something that has worked for me in the past is to explicitly have Non-Goals on projects (or tickets).
In addition to a list of goals, a section which lists items you acknowledge may be concerns or ideas but we just aren’t going to consider them. Java JEPs do this really well, for example. I’ve found this shortcuts a lot of conversations and opens the door for doing more later (ex: “Caching these objects may improve performance and may be contemplated in a future project”).

We use “Out Of Scope”. It’s a section in the template for every story, and if I saw that somebody on the team was overengineering I would start to put things like “performance is not a concern at this time” or “extensibility is not a concern at this time” or “custom error handling is not needed at this time”. Whatever it is that is wasting the most time.
I even put stuff there for myself because I know I can get lost in details, or I know something is going to be a non-trivial amount of work and I want to make sure management knows that it’s not included in this ticket.