Last week I gave a quick talk to the leadership at <a title="Harvard University Information Technology" href="http://huit.harvard.edu">my place of employment</a> about how my team is incorporating Open Source principles, Agile software development, and the Information Technology Infrastructure Language (ITIL) into the delivery of our web services. Although the audience laughed and applauded my jokes, especially the one regarding my tie, I think they also appreciated the core of the talk, so I figured I would start sharing my thoughts on the aforementioned topics and how one might go about mixing and merging them.

First, an admission: Open Source, Agile, and ITIL are nothing new to the realm of IT; all have been around for years, if not decades, and many industries have embraced them in some form or another. So the fact we are now incorporating these practices into our work models might not seem exactly novel, and, if I was strictly speaking about incorporating just the individual practices into our work, such an assertion would be correct. But I'm talking about merging all three, and a quick Google Search on "<a title="Google Search" href="https://www.google.com/#hl=en&amp;sclient=psy-ab&amp;q=implementing+agile+itil+%22open+source%22&amp;oq=implementing+agile+itil+%22open+source%22&amp;gs_l=hp.3...2901.4653.1.5179.2.2.0.0.0.0.64.124.2.2.0.les%3B..0.0...1c.1.ULufexgDn7g&amp;pbx=1&amp;bav=on.2,or.r_gc.r_pw.r_qf.&amp;fp=5a788ec4e1cc4d0a&amp;bpcl=35466521&amp;biw=1257&amp;bih=856">implementing</a>," "i<a title="Google search" href="https://www.google.com/#hl=en&amp;sclient=psy-ab&amp;q=incorporating+agile+itil+%22open+source%22&amp;oq=incorporating+agile+itil+%22open+source%22&amp;gs_l=hp.3...41295.42889.2.43142.13.13.0.0.0.2.166.1059.11j2.13.0.les%3B..0.0...1c.1.DboWHZxsbH0&amp;pbx=1&amp;bav=on.2,or.r_gc.r_pw.r_qf.&amp;fp=5a788ec4e1cc4d0a&amp;bpcl=35466521&amp;biw=1257&amp;bih=856">ncorporating</a>," "<a title="Google search" href="https://www.google.com/#hl=en&amp;sclient=psy-ab&amp;q=combining+agile+itil+%22open+source%22&amp;oq=combining+agile+itil+%22open+source%22&amp;gs_l=hp.3...24043.25829.3.26330.9.9.0.0.0.0.86.606.9.9.0.les%3B..0.0...1c.1.NXeKUe43E5o&amp;pbx=1&amp;bav=on.2,or.r_gc.r_pw.r_qf.&amp;fp=5a788ec4e1cc4d0a&amp;bpcl=35466521&amp;biw=1257&amp;bih=856">combining</a>" or "<a title="Google search" href="https://www.google.com/#hl=en&amp;sugexp=les%3B&amp;gs_nf=3&amp;gs_mss=merg%20agile%20itil%20%22open%20source%22&amp;pq=combining%20agile%20itil%20%22open%20source%22&amp;cp=7&amp;gs_id=241&amp;xhr=t&amp;q=merging+agile+itil+%22open+source%22&amp;pf=p&amp;sclient=psy-ab&amp;oq=merging+agile+itil+%22open+source%22&amp;gs_l=&amp;pbx=1&amp;bav=on.2,or.r_gc.r_pw.r_qf.&amp;fp=db8aada8086920e9&amp;bpcl=35466521&amp;biw=1257&amp;bih=856">merging</a>" this trinity doesn't exactly return a cornucopia of results. So maybe what were doing is somewhat novel, after all.

But before going into any details--that I reserve for later posts--I wanted to give a brief--a very brief--overview of each of the practices, methodologies, standards, philosophies, or whatever you want to call them. Up first, Open Source.
<h3>Open Source</h3>
<a title="Open Source Initiative" href="http://opensource.org/">Open Source</a> is not only a practice, it is a philosophy, the mindset of baring a piece of software's soul to the world. At the heart of Open Sourcing software is the act of distributing one's source code so that the development community may download it, use it, but most importantly, modify it, then redistribute it so that others may download, use, modify, and redistribute their modified code, so on and so forth, ad infinitum. Although such a practice is often deemed synonymous with "free software," Open Source code can be found in commercial products. For example, <a title="Red Hat" href="http://www.redhat.com/">Red Hat</a> founded its company by selling and supporting its own version of <a title="Linux" href="http://en.wikipedia.org/wiki/Linux">Linux</a>, an Open Source operating system.
<h3>Agile</h3>
<a title="Agile software development" href="http://en.wikipedia.org/wiki/Agile_software_development">Agile software development</a> is a team-oriented approach for iterative software development. Agile evolved when software developers began revolting against "traditional" project management methodologies, such as the <a title="Waterfall model" href="http://en.wikipedia.org/wiki/Waterfall_model">waterfall model</a>, in which development teams gathered requirements from their customers, retreated to their caves to bang out code for several months, then returned with a piece of software that no one recognized as anything that anyone ever wanted. At its core, Agile embraces the the awareness that those who believe they know how their software should work, actually don't have a clue about how it really *will* work. And the only way to get around this is to approach the development of the software in iterations: Requirements are drawn up, software is developed, software is reviewed, the requirements are revisited, the software is refined, so on and so forth, rinse and repeat, until the final release.
<h3>ITIL</h3>
The <a title="ITIL Home" href="http://www.itil-officialsite.com/">Information Technology Infrastructure Language</a> arose in the mid-eighties when Margaret Thatcher, the prime minister of the United Kingdom, instructed the government agencies to get their act together when it was determined that the disparate practices of their IT groups was costing the realm a large fortune. Four years and 8 billion pounds later, the Central Computer and Telecoms Agency came up with a suite of best practices that all IT organizations should follow. These best practices for delivering any IT service now form the core of ITIL.
<h3>To Be Continued...</h3>
As I mentioned: Brief and high level. I'll go into more details about each in later posts, then describe how they are all coming together within our web team. [1. Hopefully, my posts will be separated by mere weeks, and not months, as they are wont to be.]