Coding moves with the times

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.”

Source: What PC
TAGS:
 
 

    Popular posts

    Related posts