I read chapter 7 & 8 of the clean coder this week. To sum up chapter 7, it basically talked about how important it is to write automated acceptance tests. Communication between two parties can be extremely difficult in the workplace. There are many times where a customer and a developer, or really any two parties might think they completely agree on all the details they discussed, but in reality they might leave having two totally separate ideas. It is very easy to assume someone understands something when in fact they aren’t on the same page at all. This chapter showed me that writing these acceptance tests are a great way to solve the problem of miscommunication in the computer science field. The chapter defines acceptance tests as, “tests written by collaboration of the stakeholders and the programmers in order to define when a requirement is done”. I really enjoyed reading this chapter. It brought light to my eye that there is a way to fix the problems of not getting across what will be done clearly and precisely. I remember in class we talked about “the definition of done”, and this chapter also discussed this. Your definition of done can be completely different then the person sitting next to you. It is very important to clarify specifically when discussing what is going to be done so everyone is on the same page. I remember I had a presentation once and I thought one of the members in my group was going to make slides on a certain topic. When it came the day to present, we realized that we completely miscommunicated and ended up both doing the same thing. This chapter reminded me of this specific time. It’s a good idea to follow this practice in order to prevent these types of things from happening in the workplace.
Chapter 8 discussed how important it is to constantly test your code as a developer. This chapter touched on 5 main types of testing that should be run as frequently as possible. 1.
- Unit Testing
- Component
- Integration
- System
- Exploratory
I could not agree with this chapter more. The deeper I get into the field of computer science and programming, the more I am starting to see the importance in testing. Although testing can be extremely tedious and boring, it is something that you must do as a professional engineer. Many developers tend to think that they don’t need to test anything because that’s the QA’s job. However, this is not true at all. This chapter talked about the importance of the developers and QAs working together to test EVERYTHING. An interesting statement that was mentioned in this chapter was, “It should be the goal of the development group that QA find nothing wrong.” I really liked what the author said and I agree. In order to be a great coder, you need to not only be able to write a good program, but you also need to write good tests so you can catch the problems before the QA, or worse, the customer.
From the blog CS@Worcester – Alex's Comp Sci Blog by alexsblog13 and used with permission of the author. All other rights reserved by the author.