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