• Home
  • About
    • WalkingRiver.com photo

      WalkingRiver.com

      The best software is both elegant and beautiful, and seldom what you expect.

    • Learn More
    • Twitter
    • Facebook
    • LinkedIn
    • Github
    • Youtube
  • Posts
    • All Posts
    • All Tags
  • Projects
  • Courses
  • Speaking
  • Contact

Melding Feature Development and Sustainment into a Seamless Workflow

21 Oct 2023

Reading time ~3 minutes

In the realm of software development, two core activities dominate the scene – Feature Development and Sustainment. The former is about adding new capabilities to the system, while the latter deals with maintaining and refining the existing system to ensure its steady and reliable operation. Traditionally, these two are seen as separate tracks, often managed by distinct teams with different sets of priorities and timelines. However, as the industry evolves towards more agile and lean practices, it’s time to question this division and advocate for a more unified approach.

The Kanban Advantage

Kanban, with its emphasis on visual management, work-in-progress limits, and continuous delivery, acts as a bridge that can unite the two tracks of Feature Development and Sustainment. Under this framework:

  • Both feature and sustainment work items are visualized on the same board, providing transparency and a holistic view of all the work in the pipeline.
  • Work-in-progress (WIP) limits ensure that the team’s capacity isn’t overwhelmed by an influx of new features or sustainment tasks, promoting a balanced focus.
  • The pull system ensures that work is pulled only when there is capacity, thus avoiding the common pitfall of overloading the team with simultaneous feature and sustainment demands.

The Rhythm of Consistent Releases

A consistent release cadence, where releases happen at fixed intervals, irrespective of whether the work item is a new feature or a sustainment task, fosters several beneficial practices:

  • It encourages small, incremental changes, which are easier to manage, test, and deploy.
  • It reduces the pressure associated with big releases and the corresponding big-bang integration and testing efforts.
  • It promotes a culture of continuous improvement and feedback, as teams can learn from each release to improve the next.

Ticket to Release: A Timely Journey

The journey from ticket creation to release should be swift, yet thorough. An appropriate time-frame might look like:

  • Implementation: 1-2 weeks
  • Quality Assurance (QA): 1 week
  • Release: Within the next scheduled release slot

This schedule ensures that there’s ample time for development, testing, and any necessary revisions, while still aligning with the regular release cadence.

Optimistic Branching: The Path Forward

An optimistic branching strategy could be adopted to keep the momentum going for the next release while handling any defects found in QA for the current release. Under this strategy:

  • Mainline development continues on the main branch targeting the next release.
  • A release branch is cut from main at the start of the QA phase for the current release.
  • Defects found in QA are fixed on the release branch and merged back to main to ensure the main branch also receives these fixes.

This strategy ensures that development for the next release isn’t held up by the QA phase of the current release, while still providing a mechanism to address defects in a structured manner.

Conclusion

The divide between Feature Development and Sustainment is a relic of the past that doesn’t serve the agile, fast-paced development environments of today. By adopting Kanban with a consistent release cadence, teams can blend these two tracks into a seamless workflow that delivers continuous value while ensuring the system’s reliability and quality. Through timely ticket to release journeys and an optimistic branching strategy, this unified approach paves the way for a more efficient, predictable, and value-driven software development lifecycle.


Do you have any comments, questions, or just want to see more? Please follow me on Twitter and let me know.

Did I make any mistakes in this post? Feel free to suggest an edit.




KanbanSoftware DevelopmentAgileSustainment Share Tweet +1