Obviously, if you are a developer or work with them, you'll know I'm just posting bait to start a conversation. Still, in 2022, some people don't understand the responsibilities of this position. They think we're still in the 1970s, following the belief that if you were paid for 8 hours, you'd better be working for 8 hours.
If you disagree with what I just said, let's try another example. Let's say you want to build a house for your family. Would you ask a carpenter to get straight to it and work non-stop until it's built? Of course not! What about the permits, the architect's drawings, the plumbing, the electrical â€“ and so on? This work requires planning, thinking, and, most importantly, making sure no big surprises can damage your work in the future.
Coding an application isn't much different. When not part of a complete team, a developer has to take on many responsibilities to limit potential problems. When you explain your project to the developer, their brain is already working overtime to identify future issues. They'll ask some clarifying questions, and more problems will arise. After a long period of problem-solving, they may start coding the application.
However, a couple of weeks later, you come up with a fantastic idea (according to you)! You want it on the first iteration of the application. For the developer, this situation is similar to if a homeowner requested significant changes after the foundation of a house has already been poured. They'll need to stop, break part of it (if it's even possible to do), and start some or all of it from scratch. This process delays everything by a week at least.
Developers are being put in positions to have to overthink everything. This is not possible because, on the first problem, it's their fault and their fault only. Give them the ability to work in an environment that encourages them to think and work with great colleagues. Then, more often than not, they'll do an outstanding job.