Software development has come a long way since the days when Cobol and Pascal
were the languages of choice for a whole generation of programmers coding for
mainframes and single-processor servers. Today, development teams can be
dispersed across the globe, use radically different development tools and
frameworks, and can even architect applications in contrasting ways.
This transformation has been mirrored by a major change in the way
enterprises think about applications, what they are for, what they support and
how they should be built. The way software is conceptualised has undergone a
step change.
Today, service-oriented architecture (SOA) has become the de facto standard
for constructing applications. SOA describes the building or rebuilding of
applications and software modules as re-usable components or web services
that can interact with each other over internal and external networks,
irrespective of the programming languages or communications protocols upon which
they are based.
It is an approach to development that has been enthusiastically espoused by
many of today’s leading enterprise software vendors, such as Oracle and SAP,
according to David Bradshaw, research manager for software and services at
analyst
IDC.
That, he adds, has important ramifications for in-house developers.
“In terms of building anything new nowadays, SOA is a given. Developers have
to do it that way or customers will not buy in and in-house software development
will either not take place or be much slower and cost more in the future,” he
says.
Business-responsive applications have become the watchword for today’s
developers and SOA promises to provide a framework for flexible applications,
while potentially providing cost savings from the re-use of modules. And because
SOA is predicated on the use of open interfaces to communicate between different
modules, integrating different applications can be easier.
The cornerstones of SOA development have become Microsoft’s .Net framework
and Java-based alternatives, says IDC’s Bradshaw. Typically, .Net has gained
traction among mid-sized organisations, where access to Java skills is limited,
he adds.
Microsoft has done much to combat some developers’ negative perception of its
programming tools. The software giant has even made some of them, or at least
parts of them, available for free to compete with open-source alternatives.
Version 3.5 of Microsoft’s .Net development
platform does not require an initial licence fee for example, while the
licensing for Visual Web Developer has been altered to give programmers greater
flexibility of use, even if the source code is available only for reference
rather than alteration.
New approaches to development
Alongside SOA, other ways of thinking about how applications support the
enterprise such as business process management (BPM) and event-driven
architecture (EDA) are starting to gain a foothold. BPM echoes SOA in dividing
software development projects into separate processes that could be outsourced
to third parties. EDA, meanwhile, is an approach to application building where
events trigger a set of predefined responses from the software a capability
that is particularly useful in retail transactions, for example.
These new approaches to software development have been shadowed by changes to
the actual tools that are used to construct applications. Different companies
have always favoured different programming languages, according to their
particular requirements, budget and the programming skills at their disposal.
That will persist. But increasingly, open-source development is offering IT
leaders ways to tap into a global talent pool that was hitherto unattainable.
IDC's Bradshaw says he expects to see open-source development tools gaining
ever more traction, given growing support from vendors such as IBM and Sun. But
there are cost and complexity issues involved in open-source development that IT
leaders must be cautious about, he warns.
“There are hidden costs in any software development project, but with open
source people tend to think they are not there,” he says. Traditionally, support
costs have been factored into application budgets, but with open source there
can be a misleading assumption that the community will provide the necessary
support for nothing.
Clive Howard, consulting and founding partner at web design and development
agency
Howard
Baines, believes many organisations routinely underestimate the costs
associated with open-source developments.
“People say open-source development platforms are cheaper because they are
free tools, and startups in particular are very keen on that,” he says. “But
beyond that is the overall cost impact of the project and the time spent
supporting and maintaining applications.”
The impact of open-source development frameworks can be most clearly seen in
the field of web development, where frameworks such as Ruby on Rails have become
hugely popular.
In early 2008, online bookseller Scholastic built a new web site for its
online children’s book club using Ruby on Rails. Peter Mankhe,
Scholastic
web project director, was particularly keen to minimise the time it took his
four-man development team to create the site and add new functions and
applications to coincide with print publishing deadlines.
Using the Ruby on Rails development platform and so-called agile software
engineering methods, Scholastic was able to break down web project cycles into a
series of small components and functions that could be developed within two
weeks, shortening the development cycle by about 20 per cent, says Mankhe.
“It really makes it easier and more dependable to make sure we get critical
things done on time and still have a completely usable site,” he says.
Agile programming
The process of breaking down development lifecycles into small chunks, which are
delivered to the organisation in rapid succession, lies at the heart of agile
development methodologies of which there are many. But it is an approach that
tends to be used in younger, more dynamic programming environments, supporting
the creation of web-based applications.
“Agile methods are not for everyone. A significant number of staff members in
any large organisation experience tells us up to 60 per cent will be
incapable of working well on agile efforts,” said
Gartner
analyst Matthew Hotle in a recent research note. “The tight collaboration and
constant back-and-forth that happens on an agile team is not something that all
staff members are capable of accepting. Some teams simply want their assignments
on their desktop; and when they finish one assignment, they want to move to
another.”
The act of breaking down application development into small chunks can also
encourage IT chiefs to evaluate whether certain chunks are suitable for
outsourcing.
Offshore development and testing
Software development has historically been one of the main focuses of offshore
outsourcing, but even here seismic changes are happening. India’s dominance as
the offshore location of choice is being challenged by Russia and other eastern
European locations, which are closer and sometimes cheaper, while China and
Brazil are also gaining ground.
“The pay rates in India keep rising and some companies have a high staff
turnover, so it is not the panacea that people think,” says Bradshaw. “In the
vast majority of cases the savings are such that it makes the trouble of
managing remote staff worthwhile, but there are alternative sources in eastern
Europe where you can talk to people in normal hours and which are easier to
visit.”
As any programmer will tell you, building the application itself is only one
part of the process thousands of man hours are spent on testing the code to
make sure it does what it is supposed to. According to a recent survey from
software testing specialist SQS, 62 per cent of companies still do all their
software testing in-house, though the company suggests savings can be made by
offshoring this element of the development process to third parties as well.
Bradshaw believes that many other changes will force themselves into software
developers’ thinking over the next few years. These might include the need to
embed virtualisation support specific to different system architectures, and to
make better use of IT portfolio management tools, which help developers manage
the application lifecycle on behalf of their customers more efficiently.
And that much-abused concept, software usability, may even make a belated
appearance in developers’ list of priorities.
“It’s a hoary old chestnut and old habits die hard I know, but Salesforce.com
has taken a large chunk out of the CRM market simply by being a lot more usable
than what was out there before,” says Bradshaw. “I’m not sure better usability
can be put into development tools themselves, but there is much that can be done
during application acceptance tests and design work to alter the way the
interface interacts with the user.”
Reader comments