Finding bugs before implementation

Kate Balcerzak

Half-day workshop - in English

It’s always been a passion of ours to look for root causes of bugs, understand them, learn from them, and put in place controls that will prevent unwanted side effects of software development in future. In our work we assist developers in delivering bug free features from the very beginning. This allows us to experiment and try techniques addressing root causes of bugs, which in our experience are caused by taking incorrect assumptions and finding uncovered unknowns. We found by applying various techniques at early stage of development when we’re confronted with very little, problem and idea of a solution, we can discover issues before implementation even begins. We’ll walk you through an activity taking place before feature coding starts, called feature kickoff. You will kickoff with us a feature of a product we designed for the purpose of the workshop. Work on real example. During kickoff people representing different roles and perspectives look at feature from different angles. Employ critical thinking to discover true depth behind change. Flush out known unknowns, assumptions, identify risks, propose mitigation techniques, like proper test strategy. Working in a group helps also understand what we don’t know, unknown unknowns.
How good feature kickoff is depends on how well we ignite creativity in people. This is where techniques come to play. First, we are going to interrogate feature. You will generate questions by deriving from most generic. Ask them to find answers that will help you uncover all valid and invalid assumptions, that could have caused bugs. In the process, learn more about feature, and ask more, based on what you uncovered. We interrogate feature because we found very often questions worth asking are asked at very late stage of feature development, when it’s being or already implemented. Interrogating feature helps find potential issues at early stage of the process, help avoid waste and bugs. Next, we will look at feature, problem and solution, from various perspectives. Decompose the feature. You will look at feature from system architecture perspective, analyse dependencies between building blocks, involved systems, components. You will also analyse feature from domain perspective. Understand what personas are involved in the feature, what are their expectations, and their needs, and how they may affect each other, causing potential risks for your feature. Finally, see what happens in time with the feature. Understand how user journeys look like. What kind of activities, parties, and communications are involved, and what triggers them. We will end kickoff with heuristics. Our educated guess on categories of challenges usually causing bugs. Is a security, accessibility, performance a concern for the feature? What kind of problems we may see? How we’re going to tackle them? What can go really wrong with the feature and how we will try to prevent it from happening and know when it happens. To further help with creating creative environment, you won’t use computers. Instead work with papers, and cards. Yes, deck of cards. Physical framework we use to drive feature kickoffs. Tired of discovering problems when implementation is almost done? Finding about a bug you never considered as valid? This workshop will help you avoid the pain and improve feature delivery speed.

Primarily for: Developers, Tester/test leads, Architects, UX specialists, Designers

Participant requirements: - nothing, this is completely offline workshop