I don’t think there’s a singular term for it outside of scope creep, but I don’t think I experience it like other developers for a reason I’ve only realized after spending a decade programming and disagreeing with my manager because book club. 😆 My manager can in no way be blamed. On reflection I believe they are correct if you’re using the correct or nominal set of definitions for your words. We disagreed about my characterization of scope creep in “The Pragmatic Programmer” as too exclusive of constraints raised by existing abstractions, business logic, etc. Here’s the thing though: in an instinctual way I don’t feel that my definitions of scope or requirements gathering counts as “engineering”. As far as engineering is the creation of novel machinery to solve a problem, we don’t call students of proper engineering engineers until they pass licensure exams. In that time between enrolling and passing a test, you’re gathering requirements in the form of the entire universe, learning the entropy you’re fighting when you put solutions into the world. In the same way that engineering student has to learn, programmers that aren’t building on their own codebase from scratch, that is either if you work with a team from scratch or alone from someone else’s code, you’re rediscovering the world until the day you’ve memorized all the code. That memorization difficult if you aren’t blessed with eidetic memory, impossible if your team is sizable. The reason as a programmer you’re always discovering the world is different in software than it is for gamers: the world is arbitrary. That is to say, software is mathematics. Typically, it’s a type of applied boolean algebra. This means any time you solve a new problem, you have the opportunity to write code that compiles at the machine level and controls everything or you could put any number of abstractions (os, hypervisors) in between you and that hardware, and typically we do. Subsequently, we all have Windows, MacOS, or Linux flavors of universe that we exist inside of. Fortunately people have worked hard to break down the barriers this creates. It’s not the most rewarding work. The applications we operate on top of these systems are generally written by troops or battalions or entire armies of programmers, each one with varying levels of restraint in their deviation from whatever could be considered “best practice” or most maintainable, or whatever you should be aiming for if you really want to mount a fight against entropy. This is where I work, in one of these troops, and in my opinion they have the very best structured codebase and testing and deployments pipeline I’ve seen. I still resent my own inability to estimate how much any given piece of work will take unless it’s a refinement to previous work or well encompassed by a piece of the repo I originally authored. Even then in the couple years I’ve been here at least one of a dozen or so original pieces is mostly unrecognizable to me now. you: GET TO THE POINT! Sorry, yes, the point. I have a barrier against this problem, until the problem of scope creep crosses a boundary, my cranium, it’s not even scope creep, it’s subject of conceptualization or discernment against all other thoughts like any other. I don’t even have a word for what I would call it except “procrastinating” because I wish it didn’t take so long for some things to “dawn on me” whatever mechanism underlies the process. This internal set of rules and structures that informs my idea of what’s possible, reasonable, and not is not something I have necessarily earned and when something is solvable for me I consider whatever my insights to be my responsibility to give to others freely with hopes they’ll do the same. Why does this cause me misunderstanding and wariness? I’m counting misses and ignoring hits. When I start approaching some new part of the codebase I find it difficult to tell that I’m making progress and I don’t always reach out for help as I should, sometimes I go down a rabbit hole and waste an hour. When the scope becomes external to me and the codebase, when considerations in business logic or preemptive client communication enters the picture, I only partially write off the time lost as not my fault. After all I was tasked with something and I want to make it happen. you: So What? I mean, nothing really. I just have this problem and a realization about it and on the very small chance that someone else with this blight on their understanding of the software development can be healed. Our previous understanding constantly grows while we can stay in place, and enough experience does lead to real value when it comes to gathering requirements, scoping and prototyping a feature even if you have to interface with far away parts of the business through a proxy and wait. You can always ping your product manager or similar if you’re on a team and in-between tasks and struggling against it, or at least mine is incredibly considerate and empowering. I think everyone deserves a good product manager like them. Thanks for reading!