Prove It!
The Developer's role within Continuous Confidence, is a little bit different. The traditional look on what a software engineer does, brings us back to writing code and then having others verify it works. This traditional view is flawed and actually produces weakened confidence over time. Let's explore why.
One Time Evaluation
Over the last decade or so, new methodologies have taken form. Test Driven Development (TDD). Code coverage. Behavior Driven Development (BDD). These forms have been around for a while, but only in the last 10 years have they really started to gain traction. When the traditional model focusses on someone other than the developer verifying the build, it is verified in a single instance of time. That single instance will never be repeated, and so, naturally, bugs will come. Using the afore mentioned methodologies, we start to place the responsibility of testing on the shoulders of the developers.
Abbreviated Timeline
We have made a serious mistake. Think about all the blood sweat and tears we put into a story (agile software development). Think of the days we put into it, thinking and iterating over the logic and understanding the intricacies of all we do. Now, think of when we "finish" the story. We wrap it up and pitch it over the wall to QA and say: ok, you have 2 hours, go! Why do we expect QA to take less amount of time to consume the complexities of our logic, and apply that logic to he product spec and do it in rig the first time? There in lies the break in confidence: the abbreviated timeline. So how do we fix it?
Prove It
We prove it! We write the tests that prove the desired behavior exists. We focus on: Behavior Points. We will learn more on Behavior Points later, but understand that QA really is responsible to make sure we have proven that the product behaves as defined. However, we need to automate that proof so that we can always be confident about that portion of code. We can't expect that code will always behave he same way. We need to prove it always will by other code. The effectiveness of the tests are the intricacies of what and how to test, are the combined efforts of the developer and the quality assurance consultant.
Do we want better confident code? Then prove it!
Comments
Post a Comment