all software...

by jcannon on January 21, 2008 02:39pm

 

Earlier this month, I was reading the Open Solutions Alliance's top predictions for 2008....this was based on polling they conducted within their membership base. It's a good read and I recommend it to anyone who enjoys that kind of fodder (there's no shortage of "predictions," it seems, this time of year.) The full report is here (PDF). One in particular caught my eye: The CEO of Adaptive Planning, William Soward, echoed the 451 Group in his assertion that ' ...open source is becoming a fundamental element of all software... '

To a great or lesser extent, open source or open source-inspired development approaches and the increasingly related fields of "open" collaboration and innovation are undeniably spreading to many fields of software conception, design and development. One could look at this horizontally, or where open source development is happening at the fundamental stacks within computer science (operating systems, compilers, editors, programming languages)- and we see this all the time: Linux, Java, Haskell, Ruby, Python; or, one could look at vertical development, as in ESB, CRM, Retail or Healthcare applications...and this is happening as well: MuleSource, Iona and LedgerSMB are a few examples. In each case, the classic struggle to advance software usefulness is being addressed by open collaboration, where certain fundamentals are being shared within a larger group to allow for greater concentration on, say, bigger issues.

In the same vein of Soward's prediction, there have always been & always will be certain aspects of technology that cut across all software. One obvious example that comes to mind is security. No matter what the software size or complexity, purpose or reason, security has a home among the fundamental considerations made by programmers, on behalf of the end-user. Privacy is another aspect of the software (and data) lifecycle that is increasingly core – but still not quite there...

Open source will have a similar home, I imagine, in the minds of developers. Where does open source have a home in my software's lifecycle? What components will galvanize and excite a community? What components will not? Much like security, the industry will expect these considerations as a part of all software development.

This is something our team has recognized and - recently, something that was recognized by the Engineering Excellence folks. In a nutshell, Engineering Excellence is about ensuring code quality and best practices are part of the fabric of software development. If anything, it represents Microsoft's view of excellence in software engineering practices. And yes, we even have an internal handbook....

I can’t think of a better reflection of open source growing into all software –including at Microsoft--than sharing a glimpse from that handbook. (As you may have noticed, I'm keen on the screenshots.....). Among many considerations, we expect all of our developers to understand core elements, such as Privacy, Security, Code Integrity, etc. We have - as of December 2007, added “Shared Source Code."

This section adds to an established set of practices: “exchanging source code with external parties for development and testing” for sharing source code outside of Microsoft and inside of Microsoft. This is now a core component to our fundamental practices across Microsoft development. This is significant as the considerations for sharing original inventions outside any company is always difficult - including at Microsoft.

If this is any indication, I agree with Mr. Soward's prediction... In 2008, the world will see more organizations evaluate where open sources makes sense as part of their fundamental product development considerations....and it will increasingly appear across horizontal and vertical software development, or "all software."

Here's to an exciting year together.