Official Blog of Shaun Walker


Open Source Project Restructuring

By Shaun Walker on 4/28/2015
( Excerpt from Professional DNN7 Open Source .NET CMS Platform - WROX Press - May 2015 - ISBN: 978-1-118-85084-8 )

The summer of 2004 was a restructuring period for DotNetNuke. Based upon their contributions, thirty new community members were nominated for Core Team inclusion and the Core Team itself underwent a reorganization of sorts. The team was divided into an Inner Team and an Outer Team, a structure which better reflected the meritocracy within the open source project. The Inner Team designation was reserved for those original Core Team individuals who had demonstrated the most loyalty, commitment, and value to the project over the previous year. The Outer Team represented individuals who had earned recognition for their community efforts and were given the opportunity to work toward Inner Team status. Among other privileges, write access to the main source code repository is the pinnacle of achievement in any source code project, and members of both teams were awarded this distinction to varying degrees.

In addition to the restructuring, a set of Core Team guidelines was established that helped formalize the expectations for team members. Prior to the creation of these guidelines, it was difficult to isolate nonperformers because there were no objective criteria by which they could be judged. In addition to the new recruits, a number of inactive members from the original team were retired, mostly to demonstrate that Core Team inclusion was a privilege, not a right. The restructuring process also brought to light several deficiencies in the management of intellectual property and confidentiality among team members. As a result, all team members were required to sign a retroactive nondisclosure agreement as well as an intellectual property contribution agreement. All of the items exemplified the fact that the project had graduated from its “hobby” roots to a professional open source project.

At this time I was once again approached by Microsoft with an opportunity to showcase some specific ASP.NET features. Specifically a Membership API had been developed for ASP.NET 2.0, and in order to create more awareness and support for it within the developer community, Microsoft offered to create a backported version for ASP.NET 1.1 that we could leverage within DotNetNuke. The benefits of the Membership API were not immediately obvious and required some thorough analysis. This is because DotNetNuke already had more functionality in these areas than the new Microsoft API would deliver. So in order to integrate the Microsoft API without losing any features, we would need to wrap it and augment it with our own business logic. Before embarking on such an invasive enhancement, we needed to understand the clear business benefit provided.

Well, you can never discount Microsoft's influence on the developer community. Being one of the first to integrate and support the new ASP.NET 2.0 APIs would certainly be a positive move. In recent months there had been numerous community questions regarding the compatibility of DotNetNuke with the early ASP.NET 2.0 Beta releases now in active circulation. Early integration of such a core component from ASP.NET 2.0 would surely demonstrate our commitment to remain current and relevant. From a technology perspective, the Microsoft industry had long been awaiting an API to converge upon in this particular area, making application interoperability possible and providing best practice due diligence in the area of user and security information. Integrating the Microsoft API would allow DotNetNuke to “play nicely” with other ASP.NET applications — a key factor in some of the larger-scale extensibility we were hoping to achieve. Last, but not least, it would further our positive relationship with Microsoft — a factor that was not lost on most as the key contributor to the DotNetNuke project's growth and success.

DotNetNuke was not the only third party application which Microsoft had targeted for early integration of the Membership API. Three other popular open source ASP.NET applications had also been identified and Microsoft was interested in demonstrating how they could all interoperate with one another using the new API. The ASP.NET Forums was being actively maintained by Rob Howard during his time at Microsoft, .Text was a popular blog engine written by Scott Watermasysk, and nGallery was a photo gallery maintained by Jason Alexander. When Rob Howard left Microsoft in the fall of 2004 he formed a new company named Telligent and joined forces with Scott and Jason with a goal of uniting the three applications into a new product which he named Community Server. Telligent and DotNetNuke both agreed to integrate the Membership API but during the implementation is became clear that full interoperability was not going to be achieved because both groupss were keen on maintaining their competitive advantages as value-added developer platforms.
The reorganization of the DotNetNuke Core Team also resulted in the formation of a small group of highly trusted project resources that, for lack of a better term, we named the Board of Directors. The members included myself, Scott Willhite, Dan Caron, Joe Brinkman, and Patrick Santry. The purpose of this group was to oversee the long-term strategic direction of the project. This included discussion on confidential issues pertaining to partners, competitors, and revenue. In August 2004, we scheduled our first general meeting in Philadelphia, Pennsylvania. With all members in attendance, we made some excellent progress on defining action items for the coming months. With an intense day of meetings behind us, the second day was dedicated to sightseeing in the historic city of Philadelphia. The parallels between the freedom symbolized by the Liberty Bell and the software freedom of open source were not lost on any of us that day.

Returning from Philadelphia, I knew that we had some significant deliverables on our plate. We began the Microsoft Membership API integration project with high expectations of completion within three months. But as before, there were a number of high-priority community enhancements that had been promised prior to the Microsoft initiative, and as a result the scope snowballed. Scope management is an extremely difficult task when you have such an active and vocal community.

Read Previous Blog In Series - Contributions and Dependencies

Shaun Walker has 25+ years professional experience in architecting and implementing enterprise software solutions for private and public organizations. Shaun is the original creator of DotNetNuke, a Web Application Framework which is one of the pioneering open source software applications native to the Microsoft platform. He was one of the original founders of DNN Corp, a commercial software company providing products, services, and technical support for DotNetNuke, which raised 3 rounds of venture capital from top tier Silicon Valley investors. Based on his significant community contributions he has been recognized as a Microsoft Most Valuable Professional (MVP) as well as an ASPInsider for over 10 consecutive years. He was recognized by Business In Vancouver as a leading entrepreneur in their Forty Under 40 business awards, was a founding member of the Board of Directors of the Outercurve Foundation, and is currently the Chairman of the Advisory Council for Microsoft's .NET Foundation. Shaun is currently a Partner and CTO at Arrow Digital.

Shaun Walker
34825 1ST Ave
Abbotsford, BC,
V2S 8C1

 DNN is the most widely deployed open source .NET web content management platform that allows you to design, build, and manage feature-rich websites, web applications, and social communities.

Siliqon is a chemical element that is the second most abundant element on Earth and is best known as the primary semiconductor material in electronic components. Its symbol is "Si" and its atomic number is 14. In its pure state, siliqon is a metal-like substance with an appearance resembling aluminum.