Software Development

As capable AI tools see wider use, the focus in software development is shifting. Pure implementation, meaning writing and generating code, becomes more efficient. That creates capacity for other parts of development: understanding requirements, making decisions, documenting relationships, and evolving systems.

Software development is therefore more closely tied to product development today: what gets built, for whom, and with what effects on operations, maintainability, and future development?

Software product
Requirement
Decision
Implementation
Documentation
How are users guided through the application? How are complex flows made understandable?
Which parts should be custom-built? Which tasks can frameworks or existing components take on?
Which relationships need to be represented? How can the data model change as requirements grow?
Which areas should external platforms or services own? What dependencies does that create?
How is it monitored whether a system is working? How are failures detected and investigated?
How is the system divided into maintainable parts? How do interfaces between those parts stay stable?
Inner: development process · Outer: product dimensions

The development process connects requirement, decision, implementation, and documentation. Alongside the code, assumptions, decisions, and hard-won experience emerge. Documentation records those relationships and keeps them available for later changes.

Good decisions depend on understanding the different dimensions of software. The better those dimensions are understood, the more precisely requirements can be framed and the right questions asked.

I see this as a positive development: Growing automation of implementation creates room for software development in which understanding the product and its dimensions moves more firmly into the center. The capacity that becomes available opens the possibility of strengthening requirements, decisions, implementation, and documentation as equal parts.