Comments
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Cloud Computing
Conference & Expo
November 2-4, 2009 NYC
Register Today and SAVE !..
SYS-CON.TV
Today's Top SOA Links


Software Componentization and Competition
It's nearly impossible for an in-house team to justify a wide scale reuse program

While manufacturing principles have brought higher-quality products to a wide variety of markets in shorter production times and at reduced costs, the software industry has struggled in applying the lessons of mass assembly to new application development. Manufacturing assembly in the software world requires standard building blocks to work from as the raw materials - in this case, reusable standard software components. That's no easy task, but achievable in the software world. What has held back true industrial production from those raw materials has traditionally been the more challenging processes and methodology required to transform those software components into an assembly that can produce competitive software.

We should keep in mind how long it took for manufacturing to realize the processes, means of capital, and technological innovation that enabled what we now take for granted. Agriculture has been around since the dawn of civilization, but there are still many areas that rely on manual labor. Household goods were produced for thousands of years before division of labor, automated assembly lines, and robotic manufacturing turned them into commodities.

The assembly process is inherently a difficult one. Over 30 years ago Fred Brooks laid out the foundation of software project management in The Mythical Man Month. The basic premise was that each subdivision of the labor required to build a system (or assembly) would increase the total number of communication interfaces (Brooks uses the formula n(n-1)/2) required to manage the project team. Once this premise is accepted, two realities are apparent:

  1. Dividing an assembly into smaller chunks actually increases the total amount of work required to complete the assembly.
  2. An assembly will necessarily depend on integrating subsystems, so any miscommunication between teams will be realized at assembly time.

These two factors make it unlikely that we will ever see a production line for creating software applications or systems. When breaking down an assembly into sub-assemblies there is no true division of labor. The person or team that builds the sub-assembly will need the same skill set as the person or team that just built the large assembly itself. Additionally given the huge knowledge and productivity gaps between highly-talented developers and average developers, trying to increase throughput by assigning sub-assemblies to inferior developers (or teams of developers) is like adding tomato juice to ketchup to make it thicker.

About Brendan Wright
Brendan Wright is a program manager at TopCoder (www.topcoder.com), a competitive software development community with over 140,000 developers representing more than 200 countries. His experience spans a wide range of software projects, influenced by a decade in various roles (software engineer, architect, consultant, project manager and more), with special focus on software development in the enterprise security software marketplace.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON Featured Whitepapers
ADS BY GOOGLE