The core idea behind open source is very simple: When programmers can read, redistribute, and modify the source code for a piece of software, the software evolves. People improve it, people adapt it, and people fix bugs. This process can happen at a speed that, compared to the slow pace of conventional software development, seems astonishing.
The vision of the DotNetNuke project is to create an open source content management system (CMS) product that promotes human participation and the sharing of knowledge. The DotNetNuke project operates on the following guiding principles:
Development Is a Team Effort
The whole is exponentially greater than the sum of its parts. Large-scale open source projects are only viable if a large enough community of highly skilled developers can be amassed to attack a problem. Treating your users as co-developers is the most effective option for rapid code improvement and effective debugging.
Build the Right Product before You Build the Product Right
Focus should be directed at understanding and implementing the high-level business requirements before attempting to construct the perfect technical architecture. Listen to your customers.
Develop Incrementally
Every software product has infinite growth potential if managed correctly. Functionality should be added in incremental units rather than attempting a monolithic implementation. Release often but with a level of quality that instills confidence.
Avoid the Law of Diminishing Return
The majority of the effort should be invested in implementing features that have the most benefit and widest general usage by the community.