Wednesday, May 18, 2011

The demise of centralized development teams in large IT organizations?


In my conversations with executives at very large Global 1000 companies, one trend seems to be standing out very clearly:  significant organizational change is being driven in their IT organizations to split up centralized development teams to move them under business units to align better with business goals.  A few examples:
  •  TDC (leading Danish telecommunications provider of  telephony, Internet, TV, data communications, integration and hosting solutions): the web development team responsible for all their brands and web presence (pushing 80 million+ page views per month) and customer facing applications sits next to the online sales and marketing teams.  Instead of focusing on cool functionality, they are cooperating with the sales team to try and maximize revenue generating efforts.
  • One of the largest telecommunications/media providers in Europe: Dismantling its shared development organization and moving all development resources into the business units they were supporting.  The only shared services left will be the ability to provide business units rapid provisioning of development and production environments, business functionality like single sign-on, a single view into their customer database, etc.  The business unit developers can now just focus on rapidly building business applications to get iterative feedback from customers.
Business units want to be extremely agile in connecting with their customers, and getting iterative feedback.  In order to accomplish this, they do not want to be reaching out to a shared development organization, getting resources assigned, and not having control over what gets done and when. 

Technology implications of this trend:
  • Organizations looking for technologies that help develop web applications rapidly while maintaining enterprise grade delivery quality.  Java is coming across as taking too long to develop applications in, looking at languages such as PHP, Ruby, Python.
    • The links in this section use PHP as the sample rapid development language since it's usage is growing rapidly (see Mark Driver from Gartner's prediction) and it is being used in 1/3rd of all web applications (facebook, yahoo and enterprise web applications within Cisco, BNP Paribas, etc.)
  • Development organizations moving from the traditional waterfall models of delivery to agile
  • Virtualization (or private clouds) being leveraged to provide development instances on demand with the click of a button: the development instances are pre-configured with the standardized development tools, the security policies, frameworks supporting enterprise access capabilities (LDAP integration, single sign-on, customer database access, etc.) to ensure applications are developed in concert with the enterprise policies.  
David Mark and Diogo P. Rau from McKinsey put together a very interesting article on how to balance this decentralization of development with the challenges that decentralization is bound to bring.  Take a look at their paper titled "Dividing IT into Demand and Supply organizations helps companies realize the full potential of their IT investments."  The Demand side resides within the business units and the supply side is the consolidated shared services organization.