3.8. Conclusion

Software development is fundamentally a knowledge-based activity. We see tacit and explicit knowledge around both projects and technologies, we see knowledge creation and we see knowledge flow – and failure to flow – between people and organizations.

Knowledge itself is fundamentally different from information. Failure to appreciate the difference will prevent successful execution of knowledge-based activities such as software development. However, appreciation of this fact alone isn't enough to guarantee success.

While the implications covered here aren't exhaustive, they're enough to show that simply having knowledge alone isn't enough: we need the ability to use knowledge, manage knowledge and ensure that it flows within the organization, to give the company competitive advantage.

The challenge for managers is to ensure that knowledge is created, shared, flows where it should and doesn't flow where it shouldn't. This is difficult. However, if it were not difficult, then there would be no competitive advantage to be had. Because it is difficult, this is a very valuable skill.

Looking at software development as learning and knowledge creation highlights why it is difficult to communicate and codify what we want from a piece of software – the old 'do what I want, not what I say' syndrome.

While software is key to the knowledge economy and is used by knowledge workers, we should also consider software development itself as knowledge creation. The software development ...

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.