In this interview, principal consultant and Agile Artisans founder, Jared Richardson, explains how misunderstanding requirements can cause major issues within an organization. He covers why team members need to communicate, how big projects are often mishandled, and the value of agile.
Josiah Renaudin: Now, your STARWEST tutorial, titled, “Take a Test Drive, Acceptance Test-Driven Development” digs into the value of acceptance tests. Could you talk a bit more about how misunderstanding requirements can lead to mistrust within the organization?
Jared Richardson: Oh gosh, this is the biggest area. Beyond trust, managers want to hear about money, right? You want to talk about wasted money, wasted trust, wasted relationships. Someone takes text written in English, or whatever country you happen to be from, but I’m from America, so, you take something written in English, and I really want it to be right.
So I’ll give it to some person who’s inexperienced, new to the company, have them write it up. If I really cared, I’d hire a lawyer at $250 an hour, then I’d pay another lawyer $350 to prove it didn’t mean what you said it meant… but I’m going to take a requirement, I’m going to take something I want to come out of software and try to encode it in prose, which is horribly inexact, inefficient.
I then give it to somebody with a different background. I’m business oriented and I’m writing requirements, maybe I’m customer facing, maybe I’m in sales. I’m going to hand that over to somebody with a technical background. They’re then going to implement what they thought I wanted, in prose, they’re going to translate it into some kind of programming language, machine language, machine code. Then I’m going to give it to someone in QA who doesn’t speak code, nor business, nor customer, they’re going to reinterpret the requirements again and then I’m going to have three sides where the business owner, the requirement writer says, “You idiot, you’re a bad developer, you didn’t give me what I wanted.”
To read more of Richardson’s interview click here.
In the first two parts of this series, I explained that children create physical and psychological causal maps and then use them to generate counterfactuals to learn about the world. In this part I describe how causal learning works.
Very young children know about the causal structure of the world. This allows them to imagine alternate worlds and to make changes in the current world. Since it’s evident that children are successful and effective in learning about the world, babies must be born with strong mechanisms for causal learning. To read more on part 3 click here.
A company used crowdsourced testing as part of the testing process when redesigning its website. This testing employed internal resources to achieve the benefits of crowdsourced testing at a greatly reduced cost and provided the added benefit of getting company employees used to the new site. Read on for a review of the process.
Crowdsourced testing is the process where testers test on their own terms, using their own devices and on their own time. This testing is used by all major web-based companies. Our solution was to do crowdsourced testing but to use our employees as the testers. The goal was to find bugs and risks to product adoption, not complete defined test scripts. This turned out to be a very effective way to get much larger test coverage of the universe of possible customer experiences.
In the outset of the Information Technology boom software testing was not as widely practiced as today. The testing phase mostly started after the product hit its production environment.
However, this discipline today is imperative. The competition for sales is fierce between both big players like Apple or Google and single-developer shops fighting for marketplace exposure. Thus, having as small a number of bugs as possible in your product is important like never before. Bugs can erode your products reputation and put it at a considerable disadvantage against its marketplace competitors. Moreover, the need for releasing new features constantly and without breaking anything only serves to reinstate the importance of creating and maintaining a suite of repeatable, automated checks.
Unit tests take centre stage in Agile testing efforts for a few reasons. First, unit testing is able to faster produce effective code with fewer bugs. Also, the introduction of test automation and bug detection during the early stages of development helps to drive down costs by reducing the number of broken or rejected builds. To read more on unit testing tips click here.