9. Heterogeneity RulesBesides, during the last decade we saw a shift away from proprietary software vendors leading the way with innovation, new features, new technologies, and new solutions. The balance has shifted to open source projects and to the large Websites such as Google, eBay, Amazon, Facebook and others to reinvent computing for the new century. The vendors appear to be stuck in last century's battle over the hearts and minds of developers. The Java vs. .NET battles have not died down in their minds even though perpetuating that mentality is probably the last thing on the customers' minds, my architect friend assured me. Perhaps the most glaring example of the failure here is Web services. This started out as a very simple definition of an X M L message with an X M L based interface and data definition. But the vendors could not allow X M L to be "the thing you develop" since that was not aligned with either Java or .NET. It still had to be Java and .NET that took prominence in the integrated development environments (IDEs). The Web services standards took a beating as a result and ended up being overly complex, bloated and proprietary as a result. Moreover, we are seeing the big Websites tell the big software vendors that their enterprise products just don't cut it. Google, Amazon, eBay etc. are not using application servers or .NET or relational databases. Their requirements are just not served by these "mainframe centric" product designs. They need new designs for commodity data centers that are always up and for environments not under control (i.e. not in the glass house). 10. The Emergence of Team Development (and the rise of Agile development) The folks at IBM's Rational software unit had the right idea from the start. They set out to create a complete platform for teams of developers to work together to design, develop and maintain software. And the software they helped folks build was serious stuff -- complex systems, embedded systems, scientific and defense solutions and more. In short, they fostered the creation of mission-critical systems. Rational wasn't alone, companies like MKS, Serena, Borland, Telelogic, TechExcel, Compuware, BMC, CA, Genuitec, CollabNet, Atlassian and ThoughtWorks came in to get a piece of the so-called Application Lifecycle Management (ALM) market by providing tools and solutions to help development teams work better together. And IBM later acquired Telelogic to add to its portfolio. ALM tools typically include requirements, development, collaboration, metrics, and reporting components, among other parts. However, nothing defined the last decade as one focused on team development more than Microsoft's entry into the ALM space with its delivery of Visual Studio Team System (VSTS) and Microsoft Team Foundation Server (TFS). Former Microsoft executive Rick LaPlante fulfilled his vision of taking Microsoft into ALM before retiring from the company. In a 2005 interview with eWEEK about Visual Studio 2005 and VSTS, Microsoft CEO Steve Ballmer said Microsoft initially looked at acquiring Rational itself, but decided to pass on it and deliver an ALM solution of its own. Asked in that interview whether Microsoft would be able to transform the team development space with its lower price, higher volume approach, Ballmer said: "I'll be shocked if we don't have super-high market share within a year. I'll just be shocked. If you take a look at the total number of customers that these high-end development suites have, it's tiny." Microsoft hasn't shared its sales numbers for VSTS and TFS, but the company has been aggressive in adding to its product, including support for Agile development. A new version of the Microsoft team technology will be available with Visual Studio 2010, expected in April. Meanwhile, IBM Rational delivered Jazz, its super-ALM platform for collaborative software delivery. Also, companies like Atlassian and ThoughtWorks come into the ALM space with Software-as-a-Service (SaaS) based ALM solutions. The decade of the Noughties also witnessed the emergence of Agile development. Agile software development is the term used to describe software development methodologies (such as Scrum) based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. In the last decade, "Agile became the standard," Hansson said. "In the '90s it was still somewhat respectable to say you were doing waterfall development. Today it's a joke." "As for a more intense focus on team development, I'd reframe that to say that the pendulum has swung to more agile processes," Booch said. "With the global economic pressures that have lead to global development -- And I mean more than just outsourcing to India and China -- and then coupled with the nature of lots of development on the edges of systems, a la scripting, this has fueled incremental and iterative development styles." Gosling kind of gets to it cleanly and simply, saying: "Teams go global: It's common for teams to span geographical regions and time zones. Skype, chat and 'forge' sites make it all work. Also, the industry goes global. Software developers can build viable companies based anywhere in the world." That's it for Part 1 of this look at The Decade of Development. Come back to next week to see Part 2. What did I leave out?
During the past decade it became clear the development world was going to be heterogeneous, despite there being shops that did .NET or Java development. In the end, the systems all had to work together. During the 1990s the industry still believed that a single general purpose programming language might emerge that everyone would use. This was the initial promise of Java, and Microsoft appeared to have similar ambitions for VB. A big-time software architect friend convinced me that the world has changed -- his and other major organizations can no longer afford to play the Java versus .NET game.