• The Changing Landscape of Distributed Development

     

    Over the past couple of years I have been lucky enough to work in a number of really interesting areas including open source, collaborative development, distributed engineering and all with some of the leading edge approaches.   One of the things that really struck me last year was the way in with outsourcing was becoming a distributed development model,  people were not just trying to push "jobs" overseas to save money but were intelligently starting to look at managing and working globally.
     
    Recently Simon Brown posted an interesting point of view on the idea of an offshore bubble.  It is true that we are moving toward an environment where a mixture of components (software assets) and services in the cloud (both internal and external) are meaning that people are able to build solutions more quickly, and with higher quality.  However,  I don’t believe that software development is a commodity.  The idea that it is like manufacturing doesn’t quite sync up with some aspects of the process of creating software - while many aspects of "building" software can be automated these really are the scaffolding around the process of engaging, understanding and solving abstract problems.   The infrastructure can start to look like a manufacturing process - however it is really a system that supports the building and not the creative process.
     
    Also the idea is raised as to whether off-shoring leading to the distributed waterfall model.  I think that in many cases it does - however that does not have to be the case.  Open source development has many of the same facets as a distributed development team - people located globally,  multiple communication models and a dynamic decision system.  If you look at the models there one of the core tenets is that the user is the co-developer and therefore a core part of the team,  this model ensures that engagement is more constant and that reduces the chances of development drifting from the user expectations.
     
    Given these factors then one of the really interesting aspects of off-shoring is that move into Enterprise 2.0,  there is a lot of interest in how people interact now (see Social Networking) and also the ability to support and help people to collaborate at a creative level.  Much like the infrastructure many companies use today (such as source management, issue tracking, wiki and continuous integration) are very much the 1.0 infrastructure that can help people build software together the next generation of collaboration tooling will be looking at the people, rather than the code, and how we can get the team to really connect to work on the creative aspects of development.
     
    Back in January Sean McClowry was referring to this as Sustainability 2.0 and it puts forward that there is a perfect storm of technologies and concepts that are meeting to provide us with a new way to create software solutions in a globalized environment.
     
     
     As these come together then we will see a sustainable model for the creation of software where the parties can be globally distributed and highly aligned.  Over the course of 2008 I’m sure we are going to hear a lot and start to see the solutions in the marketplace that start to touch upon this next generation model - I’m looking forward to it.

     

  • Development Platform Capabilities

    Over the past few months I have been working with clients and potential clients to look at how the capabilities of their development environments are being met.  One of the interesting exercises in this space has been building up a capability matrix - this allows people to gather their thoughts together around what is important in the development eco-system.  The capabilities are often viewed with differing priorities by different companies but it does provide a suite of thoughts - one of the interesting aspects has been reviewing the Maestro platform in order to determine what capabilities are being met and also how they work.

    To give a little insight into the process the capabilities are broken up into stages of the lifecycle.  Projects start at inception and we expect certain functionality at that point,  often simple things like standardized project indentification can be overlooked but the concept of creating groundwork is key to offering the benefits later in the lifecycle.

    From Inception projects move into a cyclic stage - Definition/Design -> Development -> Release.  Having been around for a while in the industry I remember doing my DSDM certification back in the day and seeing the importance of the pizza approach to development.  Understanding at the top of the development that lifecycles exist and require functionality ,that often is discreet, is critical important.  From this cycle releases are made and then that falls to the support aspects.  Finally one of the interesting aspects is the central focus of Governance over the process - many of the features of these capabilities has changed from being purely business (budget etc) to more of a blend (engineering and business) - often through the inclusion of increasing dependencies on third-party or open source technologies.

    • Inception Capabilities
      • Standardized Project Identification
      • Structured Versioning
      • Licensing Metadata
      • Community Resource Metadata
    • Definition/Design Capabilities
      • Team Meta-data
      • Sub-Component Management
      • Component Packaging
      • Dependency Validation
      • Design Documentation Versioning
    • Development Capabilities
      • Continuous Integration
      • Dependency Management
      • Component Publication
      • Information Sharing Infrastructure
    • Release Capabilities
      • Dependency Auditing
      • Automated Component Building
      • Component Release
      • Notification
      • Multiple Target Components
    • Support Capabilities
      • Versioned Documentation Artifacts
      • Resource References (SCM etc)
      • Secured Dependency Source
      • Component Support Vendors
    • Governance Capabilities
      • Component Inventory
      • License Compliance Information
      • Vendor Identification
      • IP Verification
      • Indemnification
      • Export Compliance
      • Project Metrics
      • Risk Monitoring
      • Community Assessment
      • IP Divestiture

    What has been interesting to me in the talks we have had has been the new focus many companies are placing on producing a much more structured approach to capturing this,  also the need to allow best of breed solutions.  Rather than the single solution to all the development needs (as best defined by the Rational solutions) people are pulling together a number of development technologies to solve these problems and integration is more important than ever.  We see this all the time in the way in which development tools are becoming plug-in based or enable this type of mash-up style interaction.

    Over at DevZuz we have been listening to these needs and working to provide features into the Maestro product that offers many of these capabilities,  however we are always looking for how we can improve the development eco-system in companies and you can be sure that new things are cooking to help our clients solve some of the challenges that they will be facing.

  • SCPlugin, Subversion and Travel Plans

    After a bit of hunting around I was able to find a package for Subversion 1.4 on OS/X.

    A while ago I had looked at SCPlugin - having moved over to the Mac from Windows last year I missed TortoiseSVN, it is really nice to have a graphical view of the state of files you are working on in Finder (or PathFinder).  It is still a little buggy but its great to see the project moving again!  Next up I hope they can get the repository browser functionality in there :)

    Well looks like my travel plans are going to be making full use of my Dopplr account now since I’ll be heading around the world at the end of next month and a chance to get back with some of the guys at Eclipse Summit Europe.   Also we have been busy getting the Maestro 1.3 release out there for download and are hard at work with the Archiva and Continuum communities to get those releases out.

    On a final note Carlos, Erle and Abel have been doing an amazing job working to get the Q4E project out there -  its well worth adding it to your update sites and giving it a go :)

  • Back from Cebu and on to Kepler

    Eclipse Kepler is our newest project, focussed on enabling collaboration around development projects in the open source community by providing a structured and common understanding of the meta-data that enables collaboration.

    The Maestro product suite provided a great basis for collaborative development, and thanks to the Apache Maven POM you are able to rapidly share a huge amount of information about a project that can allow other people to get involved and help both in the development, but also importantly to act as a consumer of the technology. We have long recognized the importance of this meta-data outside of just the build technology - but as a cornerstone to the discovery and collaboration of component projects within enterprise customers, as well as in the everyday lives of developers.

    Our Eclipse strategic developer status has enabled us to start a project to help us leverage this experience and knowledge to build the basis for the next generation of loosely-coupled collaboration environment that will allow people working as consumers of projects to quickly interact and ultimately become involved with projects they find and use. In the past few weeks we have started pushing this discussion out into the community at Eclipse through the Newsgroups for Kepler, as well as starting to update the Kepler Project Wiki page.

    Over the coming weeks we will be pushing the project to find other interested parties - if you are interested drop me a line and we can catch up. The project offers the potential for exciting functionality and we already have been busy working on the underpinnings for a considerable amount of time - so expect great things! Also check out the DevZuz Kepler Project Presentation that helps explain some of the functionality that we are working on.

  • Manila, Go4SW and Sizzling Sisig

    I just returned to the US from a couple of weeks in Manila with the development teams out there, and had a great time.   While its true that I never did quite adjust to the heat, well actually more the humidity, I did get to spend a lot of the time getting to know people and trying a few more local dishes (not completely sold on the Sizzling Sisig).  This is my second trip out to Manila and certainly not my last, unfortunately due to the workload I didn’t get out of the city though next time I think I’ll try and make sure I get a weekend for that.

    One event I did make it to,  after a mix up with flights, was the Go4Sw party in Makati.  It was an opportunity for a number of very diverse software people to get together to talk about how the industry is growing in the Philippines and how they can promote it as a career.  The event was arranged at the Museum Cafe and was an excellent chance to meet up with people working on everything from the next online storage system for backing up iTunes through to Ubuntu and HP representatives, of course with Exist sponsoring the party we did get a fair few free drinks - and some excellent food.  I hope to get back for another of these events - the Philippines is well positioned for a growth in software and already has experience with opening development centres and also Open Source development.  In fact a couple of our team were involved in working on electives for La Salle university while I was there!  Next time maybe I need to sneak into one of the classes ;)

    Even being 9,000 miles from home I was able to keep up with most stuff, thanks to Twitter, and I have to admit with a new BlackBerry Pearl in hand I’m becoming a bit of an addict (so if you want to follow my day-to-day life I’m I can be tracked). 

    Now I have a week and a half in Charlotte before heading back to LA (and Jack’s first trip to the west coast).