Unmesh Joshi talking about how software engineers discover design during implementation. In my opinion, this is the primary reason using AI in software development is not as straight forward as makers of coding assistants project it to be.
In most mature engineering disciplines, the process is clear: a few experts design the system, and less specialized workers execute the plan. This separation between design and implementation depends on stable, predictable laws of physics and repeatable patterns of construction. Software doesn’t work like that. There are repetitive parts that can be automated, yes, but the very assumption that design can be completed before implementation doesn’t work. In software, design emerges through implementation. We often need to write code before we can even understand the right design. The feedback from code is our primary guide. Much of this cannot be done in isolation. Software creation involves constant interaction—between developers, product owners, users, and other stakeholders—each bringing their own insights. Our processes must reflect this dynamic. The people writing code aren’t just ‘implementers’; they are central to discovering the right design.