Subscribe
About

The sprint for better software

South African software developers say that agile methodologies are helping them deliver higher-quality software faster than before.

Lance Harris
By Lance Harris, freelancer
Johannesburg, 13 Sep 2012

Even in a market where many end-user organisations are shifting towards using packaged software where they can, demand for custom-developed software and customisation of commercial software remains strong.

“Software development is still in demand,” says Jimi Lutz, MD of Solutions at 3fifteen. “We're even starting to see interest for custom solutions in areas where there was traditionally no requirement for bespoke software, such as human resources software and financial apps.”

Many business decision-makers are now looking to their software to help them differentiate their companies, says Lutz. Running the same procurement software as your competitor, for example, will mean that you follow the same business process. In addition, many companies have found that software developed by international vendors is not necessarily a good fit with local conditions, he adds.

“Packaged products have become a lot more prevalent in corporate clients,” says MD of Relate Technologies, Geoff Lander. “Companies feel they are safer and easier to maintain (than custom-developed software).”

The old paradigm worked 20 years ago, but we have to think about things differently today.

Jaco Viljoen, IndigoCube

Where a commercial package is affordable, has good local support and a high percentage fit with the needs of the business, companies tend to choose it over custom development.

The Spartan discipline of MDA

As the leader of a small IT department, Spartan CIO Yusuf Aboobaker is under pressure to deliver new business applications quickly and without a large team of software developers to support him.
But thanks to the growing maturity of the model driven architecture (MDA) and related techniques and tools, he is able to rapidly generate robust applications to support his company's IT rental business.
Model-driven development isn't for everyone - detractors point to challenges such as the rigidity it may bring into the development process and the fact that code might be poorly optimised - but Aboobaker says it has sliced development times at Spartan by a factor of hundreds of percent. Using MDA techniques, architects can generate working code with a matter of a few clicks, says Aboobaker.
MDA - as articulated by the Object Management Group (OMG), an industry consortium that drives enterprise integration standards - is a set of techniques for rapid development of vendor-neutral and platform-independent business applications. Based on OMG standards, it separates business and application logic from the underlying technology platform.
MDA models are made up of process maps, use cases, class diagrams, or collectively, unified modelling language diagrams. These models can be realised using nearly any language on nearly any platform, in theory reducing development times and costs while insulating the business functionality from changes to the technology-specific code used to realise it.
Spartan runs a Microsoft shop with Microsoft CRM Dynamics as one of the core pieces of its enterprise architecture. This platform incorporates a range of good MDA practices, which make it relatively quick and easy for Spartan to develop new applications and services for the business, says Aboobaker.
Although the OMG's MDA is more than a decade old, the software giants and many developers have been slow to realise its value, he adds. This is changing as the likes of Microsoft with Lightswitch and the Java community with offerings like Mendix apply their own technologies to MDA.
The biggest challenge that many IT departments will encounter in adopting MDA is resistance from hardcore techies, who will see it as a threat to job security as well as their old ways of working, Aboobaker says.
“You can use the constructs of framework to develop apps without in-depth technical knowledge,” he adds. “You no longer need lean or agile project management techniques, and you don't need project managers, business analysts and coders.” All you need is a savvy and disciplined enterprise architect who understands business processes to create robust applications.”

But the world of custom development is not yet done, Lander adds. There's a need for custom development around the periphery of packaged software to fill in the 20% to 30% gap where the product doesn't fit.

Vehicle tracking company Mix Telematics still invests heavily in application development. It develops its own core applications using the best tool for the job - be it Java or .Net - because the requirements of its business are so specialised, says Quinton Pienaar, CIO at Mix Telematics. It buys off-the-shelf software for more generic business needs such as financial management.

A nexus of trends

Software developers face the nexus of four major trends as they strive to create new applications and solutions, says Malcolm Rabson, MD of Dariel Solutions. These are designing applications for the cloud, designing products for multiple mobile device platforms, dealing with extreme volumes and large varieties of data, and the need to plug into social networks and their data for business value.

Software developers are being reactive rather than proactive in the face of these new trends, says Rabson. For example, all too many companies still build monolithic apps rather than small services for efficient delivery over the cloud, he adds.

“Icons on phones are little services rather than big apps - why aren't we building our applications like that?”

Another implication of those four trends is that teams and companies will need more specialised skills than ever before, says Rabson. For example, they may need specialists in technologies such as the various mobile platforms as well as NoSQL databases and the Apache Hadoop software framework.

Perhaps the biggest trend in the local software industry is a mass move towards agile methodologies, particularly Scrum, both in corporate IT shops and in software development firms. Many South African software developers have adopted agile methodologies over the past five years to improve IT/business alignment and to accelerate time to market for new software applications and features.

Agile methodologies replace the highly structured, sequential design process of waterfall methodologies with iterative and incremental software development methods. These methodologies empower software developers with decision-making authority, aim to foster collaboration, and focus on delivery of rapid value through short development increments.

“The rate of change in the world is faster than ever before,” says Jaco Viljoen, principal consultant at IndigoCube. “The old paradigm worked 20 years ago, but we have to think about things differently today.”

Relate Technologies' Lander says one of the primary advantages his company has enjoyed from the implementation of Scrum is the 'de-risking' of its projects by developing in two-week 'sprints' (the basic set period of time during which specific work has to be completed and made ready for review in the Scrum methodology). The biggest challenge to date has come from the fact that clients still expect fixed project pricing and long-term deadlines, he adds.

Agile approach

Mix Telematics has used Scrum for over four years. The company adopted the methodology when it needed to replace a core application and realised that it needed an iterative and agile approach to effectively scope and manage such a large project, says Pienaar.

Mix has around 15 software developers who focus on creating custom apps for certain business processes and integrating packaged software with custom-developed apps. Although it took two years for Mix to come to grips with Scrum and lean development, the benefits have been enormous.

Scrum has been great for empowering teams and creating accountability to business users, says Pienaar. “The teams focused on a product or project are organised around delivering value rather than delivering code. This brings a lot of alignment between software and the business.”

Software with sex appeal

It's no longer just how well the software performs and the functionality that matters in software development, but also how it looks.
With IT departments developing mobile and Web apps for external customers as well as treating their end-users as internal customers, the user interface has become one of the most important elements in most software development projects.
“We are definitely seeing the requirements of many of our projects being driven from the front-end backwards,” says Brian Harding, chief operating officer of Airborne Consulting. “Companies are starting off with what they want the user experience to be.
The power has gone to the end-user.”

But implementing Scrum is not a quick and easy process, warns Pienaar. Companies need to invest time and effort in coaching team members in the methodology and in managing the team dynamics, he adds.

Much like Mix Telematics, electronic billing firm Striata found that it took some time to realise the true benefits of Scrum after it adopted the methodology. “Although we strongly advocate Scrum, it does take 12 to 18 months to really start seeing the benefits,” says Brent Haumann, programme manager at Striata. “Although the theory is easy to understand, the nitty-gritty is harder than you anticipate.”

Striata chose to adopt Scrum because it wanted more transparency in IT and also wanted to drive the more rapid development of usable software. The methodology is allowing it to get software out to business users quicker and get their feedback earlier in the development cycle, says Haumann. Scrum gets people talking and sharing ideas, and helps to drive the right behaviour among developers.

One of the hardest parts of adopting Scrum is getting business stakeholders to leave behind old-fashioned ways of setting budgets and measuring timelines, he adds. Scrum also relies on a different breed of developer - one who is socially adept, good at collaboration, and open to working in a transparent manner, Haumann says.

JC Oberholzer, software architect at insurance software company SilverBridge, says his company has also found a lot of upfront resistance to agile methodologies in its work with large clients. Most worry about budgets and deadlines. But once they have seen the advantages, they usually buy into it.

Predictability

The biggest challenges in adopting agile methodologies are all people management issues, says Viljoen. “It's about technology, but it's also about people,” agrees Brian Harding, chief operating officer of Airborne Consulting. “Managing interactions between people is where projects succeed or fail.”

Platform-hopping with HTML5

With a number of smartphone and tablet operating systems vying for dominance, one of the major challenges that mobile app developers face is that of cost-effectively building apps across a number of platforms. Developing and maintaining separate apps for Android, Windows, Apple iOS and BlackBerry devices is not only expensive, but also demands that companies build a pool of skills across all four platforms, says Craig Neill, CTO at DVT.
Against this backdrop, HTML5 has started to emerge as a popular alternative to developing native apps for every mobile platform. HTML5 - the fifth revision of the W3C's HTML standard - is supported by newer smartphones and enables developers to create rich Web applications with embedded graphics, audio, video and interactive documents.
Many developers are using HTML5 to create applications incorporating features like location services, offline storage, animation, rich content and JavaScript Object Notation feeds, even though the standard is not yet finalised. With tools such as PhoneGap, they can create one application and deploy it across multiple operating systems, says Neill.
This approach works well for apps that don't require much high-performance processing and that use the basic functionality of the targeted devices, he adds. But it is less effective when the app is graphics-intensive or needs to make use of some of the inbuilt hardware functions of the device.
Developers need to carefully think these trade-offs through as they design apps in a multiplatform world, says Neill. When using HTML5 as a common platform, they can get accelerated development time, a quick time to market, good general functionality and lower cost of ownership. The price they pay is that they must design their apps or the lowest common denominator across the platforms they are developing for.

“Managers look at agile and ask how they should manage their people,” adds Viljoen. “Management structures are more geared to command and control, where agile is geared towards empowering people.”

But when managers start to change the way they think, they realise that agile methodologies have a lot of controls built into them. For example, the radical transparency of the agile process provides insight into problems and impediments in the development process.

Management becomes a matter of removing obstacles rather than driving completion, says Viljoen. Since team members need to stand up daily and answer questions about the work they are doing, peer pressure adds another control.

Despite these concerns, software developers who have used Scrum and other agile methodologies for the past few years say it has actually given them more control and predictability in the development process. “In the bad old days, software development was unpredictable to say the least,” says Harding. “Today, we have much more predictable delivery, and using iterative development rather than the waterfall approach is one of the factors influencing that.”

All or nothing?

Where many teams go wrong in adopting Scrum is in implementing only the parts of the methodology that are easy for them to adopt, says Viljoen. But to achieve its benefits of 'hyper-productivity' - increases in productivity upwards of 300% - they must adapt to Scrum rather than trying to adapt Scrum to their own needs. He cautions companies against listening to consultants who have created their own versions of Scrum.

Haumann has a different perspective. Once you have adopted Scrum, there will be times you will need to bend the rules, otherwise people will question whether the methodology works, he says. In Striata's case, it selectively breaks the rule that every sprint should produce a working piece of software that delivers business value.

Striata has decreed that developers can ignore the rule of business value in certain cases if they can show technical value in the form of a working piece of software that will form part of the business solution the team is striving to create.

Lutz argues that agile methodologies are not right for every organisation and every project. Corporate clients are happy to using agile methods for incremental improvements to software or for smaller apps, but a bank would not expose its core trading platform to an agile process, says Lutz.

Scrum has been great for empowering teams and creating accountability to business users.

Quinton Pienaar, Mix Telematics

Waterfall methodologies still have a place where quality and commitment to a fixed budget trump speed of development. And they are better suited for projects that involve large-scale business process re-engineering.

First published in the August 2012 issue of ITWeb Brainstorm magazine.

Share