AI diagram
/ 3 min read
I have the feeling many people think because writing code is sort of over, human work is done. We’ll have robots and spaceships and peace on earth. Something like that.
I don’t think so. Basically the writing / editing (execution) of code got reduced significantly to a big set of problems. And the less common the code, the most likely it needs to be written by hand.
Diagram
In the diagram above I’ve shown 3 development flows. Each line/arrow is time passing.
- Execution: Time needed to write/update code
- Useless learning: Time wasted learning things like an API you’ll use once and never again.
- Useful learning: Time used to learn the codebase, technologies, business logic, etc. The good stuff!
- The rest: This depends on the software but can be: all types of tests, code review, marketing, communication, validation, etc.
Useless vs Useful learning
The learning usefulness can be very dependent on the developer. An inexperienced developer can learn doing almost anything, while an experienced one is the opposite.
Typical development
With no AI:
- (+) We learn while writing the code
- (-) Writing code is slow
- (-) We also need to learn useless knowledge to make the code work
- (-) Prototypes are limited because they take too long
- (-) And pivoting is more painful because of the execution time and sunken costs
With AI:
- (+) Writing code is fast
- (+) Prototyping is fast
- (+) Pivoting is easier because there’s less wait on execution and tests might help (especially at the beginning)
- (+) We can avoid the majority of useless knowledge
- (-) We learn much less
- (-) Some management thinks developers can be replaced with prompts and senior devs are going to dry up
The target metaphor
Boris Cherny mentioned something which I think fits with my arrows analogy (aka bullets):
I think back in the old way of building, the cost of building was high. And so you had to actually spend a lot of effort to aim very carefully before you take your shot. Because after you take your shot, it’s very hard to course correct. You can only take so few shots. But now it’s changed. The cost of building is very low, but also we don’t know where we’re aiming. So we just have to like, we have to try and we have to see what feels good.
Conclusion
I’m still fighting to define a mental model for all of this, but basically: We don’t waste time learning useless stuff, and focus on the rest. But we need to compensate the lack of learning. And less technical management might think the “the rest” arrows are shorter too.