Businesses are building up increasingly expensive and complex backlogs of "essential" software and hardware maintenance activities. As this situation worsens, so the cost of changing to existing and new requirements increases and customer responsiveness declines (Jim Highsmith, ThoughtWorks, 2010).
Ryan Shriver, leader of Dominion Digital's IT Performance Improvement solutions, in his paper: Seven strategies for technical debt, describes the following six symptoms of technical debt:
* Poor customer responsiveness
* Long delivery times
* Late deliveries
* Lots of defects
* Rising development costs
* Frustrated and poor performing teams
And so, as the glean and shimmer of mobile applications draws the attention of CIOs and budgets, so does the risk of increasing technical debt, with mobile projects being added to the backlog of IT projects.Gartner predicts that by 2015, mobile application development projects targeting smartphones and tablets will outnumber native PC projects by a ratio of 4-to-1. IDC predicts sales of smartphones to reach 982 million by 2015, and Morgan Stanley Research estimates sales of smartphones will exceed those of PCs in 2012.
IT departments are faced with an alarmingly broad range of choices and difficult questions for mobile development platforms, frameworks, devices and products:
* How much in-house mobile investment versus relying on outsourcing?
* Investing in iOS, Android, BlackBerry, Windows and PC applications?
* Native apps, Web applications or hybrid apps? HTML5?
* How to deal with security risks in consumer and mobile devices?
* Usage of social media and social media tools (eg, Twitter)
To add to these complications, the mobile development software market is rapidly evolving. According to Brook Molla, Chief Software Architect at EffectiveUI: "(Mobile development) tools are merging and becoming more competitive, (but) it's still the Wild West". The Web is also going through a once-in-a-decade technology transition to HTML5 and CSS3.
Mobile development requirements, however, also present IT with opportunities to review their overall approach to their managing their backlog of applications and to re-energise their teams to tackle projects.
According to Leigh Williamson, a distinguished engineer in IBM's Rational division, mobile development projects can be used as a catalyst to driving agile development techniques into business. Mobile development projects are a good fit for agile, as they often involve smaller teams, are often (although not always) less complex, and much more visible, and are much more likely to receive frequent feedback from stakeholders.
Agile projects are successful three times more often than non-agile projects, according to the 2011 CHAOS Manifesto from the Standish Group.
Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change (Wiki).
SCRUM is the most popular agile framework, but organisations can consider others such as Kanban (commonly used for product support) while organisations using Rational Unified Process (RUP) could also consider AgileUP/OpenUP, which are based on RUP.
There are many benefits to be obtained from agile development, but key to the success of implementing agile is the formal preparation and training of the entire IT team – not just project managers. This includes developers, business analysts, stakeholders and other team members. There is a risk that developers adopt an iterative development cycle and call it agile development – this can result in bad planning and failed projects.
The SCRUM framework is a pragmatic approach to IT projects. Many of the concepts and approaches in this framework require a cultural shift and a conscious push away from traditional IT project elements, such as meetings, requirements analysis and documentation. A SCRUM project, for example, is typically split up into 'sprints', which are time-boxed periods of one to four weeks, with a specific finished deliverable of the end product. The sprint consists of daily SCRUMS, which are 15-minute sessions with the team during which three questions are asked:
* What have you done since yesterday?
* What are you planning to do today?
* Any impediments/stumbling blocks?
While the framework mandates a strong discipline to these meetings, the meetings themselves are required to be less formal than traditional project status meetings – they are often referred to as stand-up meetings. Enforcing the concept of a daily SCRUM, rather than traditional meetings, is just one example of many that affect the overall approach to projects and to the team morale. There are many project management software tools that support SCRUM, examples being VersionOne and ScrumDo.
“Super-fresh code” is a term Israel Gat, a Cutter Consortium Fellow and Director, coined (an extension of the “Super-Fresh Web” concept) to describe software solutions that take advantage of the recent advances in Agile software methods, cloud computing, mobile applications, and social networking. Essentially, super-fresh code becomes the source of competitive advantage.
While agile frameworks provide opportunities to better manage the symptoms of technical debt that Ryan Shriver describes, Gartner's David Norton provides a word of caution regarding agile frameworks: “Agile is a double-edged sword; when done right, practices like refactoring can help us remove technical debt and stop it being introduced in the first place. When done wrong, agile can be a technical debt-generating machine.”
IT organisations must face the many questions posed by mobile development requirements through careful planning and preparation - rather than treating mobile projects as just another application request.
Mobile projects are an opportunity to re-energise the IT department and rethink traditional approaches to managing IT projects. They should be planned for carefully to avoid increased technical debt. IT organisations should consider using a mobile project as a pilot for formally introducing an agile culture and approach to application development.
Please click here to see the charts.
Autumn Leaf IT
Our comments policy does not allow anonymous postings. Read the policy here