Create Knowledge

Software development is a knowledge-creating process. While an overall architectural concept will be sketched out prior to coding, the validation of that architecture comes as the code is being written. A development process focused on creating knowledge will expect the design to evolve during coding and will not waste time locking it down prematurely.

Alan MacCormack, a professor at Harvard Business School has identified 4 practices that lead to successful software development:

  1. Early release of a minimum feature set to customers for evaluation and feedback
  2. Daily builds and rapid feedback from integration tests
  3. A team and/or leader with the experience and instincts to make good decisions
  4. A modular architecture that supports the ability to easily add new features

Companies that have exhibited long-term excellence in product development share a common trait: They generate new knowledge through disciplined experimentation and codify that knowledge concisely to make it accessible to the larger organization. These companies realize that while learning about the product under development is important, codifying the knowledge for use in the future products is essential.