4.2. Developing Software is Learning

If we look at the software development process, there are at least four key learning activities:

  • We learn new technology.

  • We learn the application domain.

  • We problem solve by applying our technology knowledge to the application domain.

  • Users learn to use our application and learn about their own problem – which changes the application domain.

Each one of these points reinforces the others: in our efforts to solve a problem we need to learn more about the problem; our solution may use a technology that is new to us. When the users see the end product, their mental model of the problem will change too. They too will learn, through the software, and acquire new insights into the task that may lead to changes to the software.

Learning is thus inherent at every stage of software development. We can either choose to ignore it and muddle through somehow, or to accept it and help improve the learning process.

Get Changing Software Development: Learning to Become Agile now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.