Channels ▼
RSS

Design

Hybrid Software Solutions With Agile/Kanban



Judith is a Certified Scrum Master and the Vice President of Product Operations for CDC Software, a provider of enterprise software products. Judith has had responsibility for taking the entire product engineering organization Agile.


As businesses today demand more options and greater flexibility in how they source technology, enterprise software companies are making significant changes in their delivery models.

Many are opting for a multi-modal or hybrid software delivery model that incorporates elements of both SaaS and traditional on-premise software. These vendors understand that organizations will both continue to require that some applications and data remain behind their firewall, while also leveraging the benefits of hosted solutions in the cloud in other areas.

This fundamental shift in the way software is delivered, however, requires new approaches to software development, delivery, and maintenance. The inherent differences in how on-premise software and cloud applications are delivered are significant. And the complexity of developing and maintaining a variety of applications on different platforms demands more agility and control over process.

In the past few years, many software companies have adopted Agile methodologies to respond more efficiently to growing customer demands. Agile methodologies have helped hundreds of technology companies — including those that offer hybrid solutions — achieve very aggressive market delivery targets while maintaining cost structures that are optimized to the current economic climate.

But the secret to building and maintaining a successful hybrid software delivery model is not just introducing Agile methodologies. Success predicates on how these techniques are used — and how they are combined with other lean principles to achieve fast, flexible, and resilient delivery processes that speed up time-to-market and help development teams achieve higher levels of quality assurance.

A Self-Management Philosophy

One of the many advantages Agile has over the traditional waterfall approach to development is that Agile is a “pull” rather than a “push” system. So where most waterfall systems are very much command-and-control in nature, with Agile it’s the actual development team that heads the effort, pulls the work and commits to what it will get done within a certain iteration.

This self-managing philosophy is a critical distinction between Agile and waterfall methodologies. At the same time, Agile requires a new way of thinking that calls for greater individual and team responsibility. Teams have to take ownership. They have to start thinking about things such as collaboration, communication and business goals.

Keeping Projects Focused with Scrum

The Scrum methodology, in particular, has been a key component of our organization’s Agile initiative. One of the biggest benefits of Scrum is that it uses the actual progress of a project to plan and schedule releases. Projects are divided into defined blocks called sprints, which are typically two weeks in duration. At the end of each sprint, stakeholders and team members gather to determine how the project is progressing, to make adjustments and to plan next steps.

By evaluating progress on an ongoing basis and at short intervals, the team and other project stakeholders can make decisions based on completed worth rather than on gut feel or speculation.

Test-Driven Development Maintains Project Focus and Software Quality

Another Agile technique that’s essential for development teams who work on hybrid software solutions is test-driven development. With this approach, the team needs to first determine what specific tests that code will need to pass before any coding begins.

Rather than spending months in design work, a few more months coding, and then another three months going through quality assurance, you instead spend time up front deciding what exactly you’ll be testing for. This is a significant departure from waterfall, since it enables you to have potentially deliverable software at the end of every iteration.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video