CANABAN: The Future of Software Development for Project-Based Organizations
Updated: Oct 23
By Joe Moreno
The first time you do it, it’s a hack.
The second time you do it, it’s a trick.
The third time you do it, it’s a best practice.
CANA has developed an ideal modern approach to software development called CANABAN. This method is perfect for project-based, budget-driven organizations. CANABAN’s 11 steps meld the best of Agile/Scrum and Kanban with project management’s best practices. We’ve successfully applied our CANABAN process to both product development and custom software for commercial and government clients. This approach enables effective asynchronous collaboration across a fully remote workforce spanning from Maine to Hawaii.
Understanding Software Development Methodologies
Waterfall is the first formalized software development process, dating back to the 1950s. It is a linear process where work flows through fixed stages: Requirements → Design → Implementation → Testing → Deployment → Maintenance. This method is similar to how large-scale physical systems were developed, such as the Mercury, Gemini, and Apollo space programs. Changing something during the implementation stage that wasn’t incorporated into the requirements or design was inherently problematic.
Over time, it became clear that software development, which involves moving electrons, is much more flexible than moving atoms. This realization led to the development of various Agile software methodologies. While Waterfall is linear, Agile is iterative and adaptive. Agile focuses on frequent feedback, incremental delivery, and automated testing. Waterfall treats software development steps as discrete events, while Agile sees them as a continuous process.
The rise of the World Wide Web in the early 1990s created a demand for software engineers seeking better ways to develop and deliver software. In 2001, the Agile Manifesto was published, emphasizing four key values:
Individuals and interactions over processes and tools.
Working software over comprehensive documentation.
Customer collaboration over contract negotiation.
Responding to change over following a plan.
As software development evolved rapidly in the 1990s and 2000s, so did software deployment, especially with the advent of cloud computing in 2006.
Today’s Two Leading Software Development Methodologies
The two leading Agile software development methodologies today are Scrum and Kanban. Scrum is known for its timeboxed iteration periods called Sprints. In contrast, Kanban focuses on continuous flow and incremental improvement without fixed iterations.
Scrum originated before cloud servers, when deploying software was a significant undertaking handled by system administrators. Each software release had to be fully packaged and production-ready, much like shrink-wrapped software distributed on disks or CD/DVD-ROMs.
Cloud computing simplified software deployment by enabling automation in a process known as Development/Operations (DevOps). Developers could check their code into a software repository, triggering an automated build for testing and deployment.
While Scrum is fast and iterative, DevOps eliminates the need to tie deployments to fixed dates and times. As soon as a new feature is completed, it can be deployed into production. With DevOps, Developers and Operations Engineers can work on the same team or even be the same individuals. The old days of packaging software with specific version numbers are gone. Scrum works well for client software running on individual computers, while server software can be deployed multiple times a day or week.
For instance, Facebook typically deploys new code with bug fixes and new features three times per business day.
CANABAN: The CANA Secret to Software Development
At CANA, we face a unique challenge as a matrixed organization. Our team members work on multiple projects throughout the month, which allows us to share resources effectively. Each employee has monthly project time allocations. One person might spend 80 hours on Project A and another 80 hours on Project B, while someone else might spend 40 hours on four different projects.
So, how do we ensure everyone works efficiently while keeping our developers, Project Managers (PMs), and Subject Matter Experts (SMEs) in sync, on time, and within budget? That’s where CANA’s 11 steps of CANABAN come into play.
CANA’s CANABAN combines the best of Scrum with Kanban using Jira as the project management tool.
1. Backlog
Anyone on a project can add issues to the backlog. This includes new feature requests, bugs, tasks, user stories, and more.
2. SME Prep
The "Definition of Done" is established by Subject Matter Experts and Project Leads. They discuss with software developers to add details and clarification to each Jira issue, aiming to provide minimal future guidance. User interface (UI) mockups are ideal for conveying a feature’s intended behavior and user experience (UX).
3. Needs Estimate
Software developers estimate how long it will take to complete and component-test a Jira issue, along with creating end-to-end test scripts. These estimates exclude administrative overhead such as meetings and rework. The Project Manager is responsible for estimating additional administrative overhead. Ideally, the developer coding the tasks generates the estimates. Estimates older than one month should be revisited and updated if necessary.
4. Estimated
Once a software developer has estimated a Jira issue, they transition it to the Estimated status.
5. Funded
The Project Lead evaluates which estimated tasks can be completed within the allocated budget of time, money, and resources. Funded tasks are prioritized and assigned a label tag for the month’s targeted completion.
6. To Do (with month’s due date)
The Project Lead transitions tasks targeting the upcoming or current month from Funded to To Do. This prioritizes software developer efforts and updates the label with the targeted month.
“If blocked, then get ahead”: If a software developer has completed all planned Jira issues for the current month or is blocked from transitioning other active issues, they should choose a Jira issue likely to target the following month and transition it to the To Do status. They will update the month’s due date to the following month, so PMs, PLs, and SMEs recognize that this issue was not required to be completed in the current month.
7. In Progress
Software developers transition Jira issues they are actively working on from To Do to In Progress.
8. Demo Ready
When software developers are prepared to review a Jira issue with the SME or Project Lead, they transition it from In Progress to Demo Ready. Additionally, they write end-to-end test scripts using the Cypress framework. Over time, all these test scripts are collected and automatically run when deploying into production, creating a growing suite of regression tests.
9. In Testing
The Tester, typically an SME or Project Lead, conducts a comprehensive assessment of a Jira issue in a testing environment. This ensures it functions effectively and aligns with the overall needs, scope, and integrity of the product.
10. Done
The Tester transitions a Jira issue to Done once they validate that it meets the definition of done. Trivial work may be negotiated based on resource availability. Non-trivial work may require reprioritization of incomplete Jira issues or adding a new Jira issue to the appropriate workflow step.
11. Accepted
The Product Owner transitions the Jira issue from Done to Accepted once they certify that it meets the broader business or user requirements and is ready for release or deployment. This is the final step in the workflow, ensuring alignment with business needs.
CANABAN is more than just a set of steps; it's CANA's proven secret to effectively managing a matrixed, remote workforce within budget. By combining the best of Scrum's structure and Kanban's continuous flow, CANABAN ensures that developers, Project Managers, and Subject Matter Experts stay in sync. This approach delivers value efficiently and consistently from the backlog to customer acceptance. CANABAN embodies the CANA culture, allowing our team and clients more time to focus on what matters most.
About
Joe Moreno is the Director of Software Development at CANA, LLC. He cut his software development teeth while working as a software engineer at Apple Inc. during the Steve Jobs era.




