The Agile Manifesto devalued planning to such a large extent that many agile projects find themselves descending into complete chaos. An easy first step towards reducing this chaos is to introduce visual modeling of sprint plans -- to help you better organize your user stories, tasks and epics.
The second step towards making agile work better happens when you realize that agile techniques such as scrum and kanban focus entirely on the production side, or manufacturing process of building software. While the production side is unquestionably important, there's another aspect to software development that often gets neglected -- and that is the architecture/design/requirements part of the spectrum, which ICONIX has been helping companies with for the last 30 years.
Finally, if you've adopted Test Driven Development, you're probably wrestling with a range of testing related issues such as developers skipping unit testing, and how to handle acceptance testing. If that's the case, you might consider adding a little bit of Design Driven Testing into the mix.
The agile movement properly recognizes the value of getting to code early and not spending years on “Big Design Up Front” without demonstrating executable software early in the lifecycle. Agilists are correct in believing that a great deal of knowledge will be gained about system requirements by putting live software in the hands of users early. However, agile development as currently practiced across much of the industry has removed too much engineering from software engineering.
Agile/scrum and kanban put the focus on project management rather than engineering. Engineering tends to be left to the discretion of the developers, and there is an active mindset of “code first, refactor later” as opposed to systematic exploration of requirements and designs. Agile in practice is often used as an excuse for not doing architecture, not doing engineering and avoiding thinking about rainy day scenarios, leading to buggy, fragile (non-resilient) software.
Resilient Agile (RA) is an attempt to put the necessary engineering back into software development without losing the “get to code early” focus that agile gets right. RA is based on a time-tested method (ICONIX/DDT) of developing an initial problem domain model, then decomposing a system into collaborating use cases and elaborating each use case by doing a conceptual MVC decomposition.
Our JumpStart Training provides focused, intensive lecture/lab workshops that get your project moving immediately. ICONIX JumpStart Training reinforces the concepts learned in lecture by applying the methods learned to your real project in the lab. Your company's project is previewed prior to arrival, saving you valuable training time and money!
JumpStart Training is now available for SysML, UML, and Resilient Agile.