Monday, April 28, 2008

Some of the interesting projects that I have been a part of...

After a flurry of initial activity, my blog has lain dormant for the last month or two. I thought I would kick off a new round of blogging by focusing topics on some of the more interesting projects that I've been a part of both before and during my blogging hiatus.
I believe the majority of the work I've been doing supports the notion of delivering software and agile way at least indirectly, and so should be of interest to anybody whois taking a look at my blog .
Think of this entry as a table of contents for my next numeral for to 5 blog entries. The next several posts will mostly be expansions of some of the areas I touch upon here.

1) Consulting 2.0
Outside of my regular job; consulting for specific clients, perhaps the most interesting thing that I've been a part of has been the effort to evangelize web 2.0 within the consulting firm that I am a member of. I've spent many an hour spearheading a small team focused on installing, implementing, and marketing a very extended version of mediawiki to serve as a collaboration platform, knowledge repository, as well as a centralized area were numerous groups can host various community portals.

The results have been pretty successful so far. I would have liked to see adoption and usage be a little bit more even across the firm, currently we are suffering from the typical 90-9-1 contribution ratio. Meaning that 1% of the people contribute a lot of content, 9% contribute occasionally, and 90% just look. Even so, I've recently become convinced that web 2.0 tools and technologies are an essential ingredient when attempting to deliver software using agile approaches. Software delivery, especially agile software delivery, is primarily a social exercise, and as such there is a potential to reap huge awards from using things such as wiki's and blogs as documentation and project management tools.

2) Accelerated Service Delivery
I have also been leading a small team to help focus our SOA related Eminence into a repeatable, reusable product offering. I spent the majority of the previous year, up until November 2007, working with a financial services client on integrating and validating an SOA framework that was going to serve as the common service platform for the entire organization. The team that I worked with to develop a platform felt so strongly about the technology that we decided to package it into a more marketable form.
The tie- to agile consulting and agile delivery in general is that the choice of technology is often one of the key factors in deciding how agile a team can be. First of all when I say that my team developed an SOA platform, I am perhaps using a too strong of a word. It would be more correct to say that we integrated a number of different technologies- almost all open source, developing reference implementations to validate the platform, and working closely with the open source communities (submitting JIRAs, contributing patches, etc.) to get everything working together.

The collaborative approach (both with our clients and with the open source community) was very agile and nature. More importantly, the open-source products we chose were primarily driven by our client's need to create an SOA platform that supported developer agility. The platform was based on Tuscany (an open-source version of the preview specification) and Spring. Using the two products together, we were able to completely decouple all infrastructure style coding logic from any of the business code. Developers were able to create services that were simple POJOs that could be dropped into our platform without any platform dependencies. I will go into more details in a later post, but suffice to say a product like Tuscany, that supports a specification like SCA, is a long time in coming. The Tuscany team provided fantastic support, better than I have ever received from any official vendor

3) Government 2.0
The firm I work for recently published an excellent paper around public sector and the use of Web 2.0 technologies. As I do not clear my blogs with anybody at legal from my work, I'm going to keep the name of the paper anonymous for now. (needless to say, our organization is still working through some of the details relating to Web 2.0) Regardless, the paper has received a very positive reaction, and many within both the federal and provincial public sector are asking how we can help to use Web 2.0 to assist in things like citizens collaboration, policy development, cross department interactions and a whole laundry list of other activity that could be helped by wiki's, blogs, mashups, as well as any of the other open, collaborative technologies that have been so successful on the web.

This is truly exciting from a number of perspectives, a lot of people talk about how web 2.0 is help to democratize the web, the same potential applies with government. Imagine a platform that would allow citizens to truly take a hand in forming policy, and providing real input into how we are governed. People in leadership positions in the government generally want better feedback, and Web 2.0 can provide that feedback. The mind boggles at the possibilities.

Again what is the tie back to agile consulting? Well again, a 2.0 project will not be successful without a lightweight development approach. Detailed requirements documents, massive upfront architecture and design, and extremely tight change control processes would be the death of any web 2.0 based project. The whole idea of Web 2.0 is that the platform is continually evolving, change is always happening, and responsiveness is key. In my opinion, at least from a development and delivery site, agile best practices are fundamental requirement of a successful Web 2.0 implementation.

Stay tuned for further announcements as I provide more information.