The Decade of Development - Heterogeneity Rules (
Page 3 of 3 )
9. Heterogeneity Rules
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.
Besides, 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?