| ▲ | cagz 4 hours ago | |
I understand the concern fully. I believe this is mainly because software development is currently in transition. There was a time when all tables were made by hand. Carpentry was often seen as an art form. Every table was unique and carried something special from its creator. Then the industrialisation came; factories started making tables. The first ones had issues, but over time, they started producing high-quality tables at high volume. Today, "hand-made " still has a special place in our hearts, but it is usually seen as a niche/luxury product. When a company wants to buy tables or desks for an office, they rarely go to a carpenter to get them made. I am sure master carpenters found (and still find) factory-made tables inferior, and perhaps they are, if we are looking for a special human touch. Unfortunately, the free economy demands cheaper, factory-made tables, so they are very popular. Software development is just in the middle of this transition, and it is painful. It will get better soon, but the bitter taste will linger. There will definitely be niche development tasks where we ask master developers to get the job done manually. Software for flight control systems comes to mind, where every low-level instruction matters. What do we do now? Given that the trend and demand are obvious, we can focus our efforts on making the factories better. If I may reference a couple of points from the post: AI makes shallow tests: The opportunity here is improving test-writing skills (AI skills) to ensure tests written have enough depth. AI writes overly complex code I found that TDD helps greatly here. Write failing tests first, then write the minimum amount of code to make them pass. For me, these are how we can make the factory better. I don't think the two organisations mentioned that expect code to be developed 80 or 100%, respectively, would mind developers spending some of their time improving the team's shared skills library. Perhaps it helps to see this not as "stopping writing code", but as "going one more level up in the abstraction hierarchy". It's similar to going from assembly to higher-level languages, although I appreciate it is not a perfect analogy. | ||
| ▲ | cesarb 3 hours ago | parent [-] | |
> There was a time when all tables were made by hand. [...] Then the industrialisation came; factories started making tables. [...] Software development is just in the middle of this transition, [...] Sorry, but that transition already happened. A long time ago. It was when compilers replaced hand-written assembly. What we're talking about would be more like the design phase, where someone prepares the molds and tooling which will be used by the factories to make the tables. Even that has already been partially automated, with CAD/CAM on physical manufacturing, and IDEs in software development. The current usage of LLMs for software development, has AFAIK no analogue on the physical manufacturing side, so we can't reason by analogy there. | ||