We are constantly being asked to cut costs and deliver more, faster, cheaper. But what are the drawbacks and what is our responsibility as individuals, teams and professionals?
Daily, we are pushing the boundaries of how fast we can deliver software. Constantly running on a knife’s edge between great success and horrible failure. Delivering something new, better, faster than our competition can mean incredible payoff and we are constantly being asked to cut costs and deliver more, faster, cheaper. But then suddenly, you fall off the other side of the edge and wake up to 189 dead in a plane crash or having to take down and redesign your entire banking service because the architecture didn’t hold up to the load. It probably wasn’t your decision to push that to production but one can imagine that a long chain of people have to have made a number of small (or huge) decisions that led up to that result.
So, where do we draw the line? Do we let that potential risk slip by even if we know it might potentially cause someone to lose time, money, or even health? What are we, as individuals, responsible for and how much can we hide behind the chain of command?
We will explore the ethics of software development, focusing on quality in general and testing in particular. We will look at what costs the context switching between solving a problem and finding the gaps in the solution will add to software development and why testing is so much more than automation and scripts. We will talk about the relationship between tester and developer, how delivering feedback and embracing critique can strengthen that bond and how the right question in the right room at the right time might save you from drowning in angry customer calls further down the line.
We will delve into a number of interesting bugs and loopholes to discuss what can be learned from them and how to make sure that at the end of the day, we will sleep soundly, knowing we made our choices not because they were easy but because we believe them to be right.