We design from the finish to the start
We Begin With Our Minds Open
Design is critical. Get it right and you’ve got wings. Get it wrong and you’ve got chains. It is the part we protect the most by making sure we engage in a creative conflict of ideas.
We Lead With JAD
When we begin a sprint we start with a JAD (Joint Application Design) session. It is a half day to a full day of nailing requirements to the overall story, breaking that story down into bundles of incremental and iterative stories, then tearing those apart into user stories and finally rebuilding them to see how they fit together.
When we are done we have a narrative structure that provides a clear statement of goals and objectives, potholes and shirt sizes so we can plan a sprint.
Before we sign off, our engineers convert everything to variables to test the design mathematically, using group theory. This tells us if the brainstorming we have done has any risk of creating illegal states.
We use group theory to find illegal states. Think of it like testing a sliding puzzle before you build it. If you have a puzzle that is meant to be solved by sliding pieces to get to the solution and you simply dump all the pieces out and put them back, you can put the group in an unsolvable state. To find out the rules of the game you apply group theory to see the illegal moves or the ones that will put the game in an unsolvable state.
Group theory helps us see if the brainstorming we have done contains any illegal elements that will create an unsolvable state.
We End With CONOP & Start Our Sprint.
Once the engineers are done, we build a CONOP (Concept of Operations) document. We use this document to guide all the stories as it contains the characteristics from the viewpoint of the user.