Software Technical Reviews

Last week we covered software technical reviews and we got to experience it with in a group of five developers. There are a few different types of reviews like walkthroughs, technical inspection, and audits. Walkthroughs are informal and often between colleagues, where technical inspections are conducted formally by a carefully selected team. As for Audits, that is typically conducted by an external group like a software quality assurance group, a project group or outside agency whose main concern is conformance with expectations. This is an important topic because in software development, we will always be in teams where we work with each other’s code. Therefore, technical reviews allow a developer to receive feedback on how to improve their code’s style, structure, or even how to write better comments. Although we did not have an in depth practice with the technical review, we were able to fill in the roles in a review. I was an individual reviewer, my job was to be technically inclined and not have any bias or personal agenda on the work product. The goal was to find issues in the code and document them by location, line number, item type, and severity on our individual reviewer spreadsheet. Even though technical reviews are supposed to be brief, I had to run the code and understand the SirTommy solitaire game to provide a better feedback. I did find a few issues; our group came up with twenty-four issues in total.

Software technical reviews are beneficial in many areas, however as a recent college graduate, it is important to understand that reviews will help us improve our code and conform to company standards. Every company may have a different standard on how they structure their code, so I can see how reviews are extremely useful when It comes to training new personnel. Personally, after college, I hope the company I work for will conduct reviews, so I can quickly adapt to their coding standards. This will not only lead to improvement, but also strengthen the communication among all developers.


Test Automation vs. Automated Testing: the difference matters

More companies are gravitating towards practicing continuous development. When it comes to a DevOps and delivery model where software is constantly being developed, it is important to know that there’s is a difference  between test automation and automated testing.  Automated testing is the act of conducting tests via automation as opposed to doing them manually. Test automation is automating the process of tracking and managing different test. in this article, Kyle McMeekin explains how test automation is a huge when it comes to continuous testing.

If something stalls or break down during the development pipeline, this can drastically delay the delivery of the following releases. This is a roadblock in a continuous testing environment because speed and consistency is imperative to support a continuous testing model as McMeekin describes. Test automation eases the burden of tracking which environments have deployed new code, when each piece needs testing and how those requirements integrate back into the moving process of continuously delivering software; it does all that through automation leave more time for testers. The extra time can be focused on creating effective test cases to ensure the quality of the software since they’re no longer bogged down in managing all the minutia of testing needs. Continuous development and DevOps are becoming the norm and so will continuous testing. with the help of test automation, managing the changes that comes with injecting testing throughout the entire development pipeline can much easier.

The Future of Software Testing

For this week, I chose a blog which talks about the future of software testing. Although these are just predictions by Ryan Yackel who is a senior sales engineer at QA symphony, they really seem plausible and get you thinking about where software testing is going to be in the next decade or so.

Ryan talks about how Everything will be blurry in the beginning and gets clearer after. what he means by that is the fact that agile software development methodologies are now becoming the standard and that will lead to a lot confusion and misconceptions. Because everyone is considered tester in a agile environment which is not true in a lot of cases, this really leaves testers questioning the severity of their role.  Agile methodologies’ popularity is increases among companies and they will soon have a better understanding and mastery of these agile techniques. Once this occurs, the role of a tester in a agile team will become much clearer. This leads to his next prediction.

Software testers expectation is on the rise and Ryan mentions that the expectation will be even greater in the future. Now, software testers need to expand their horizons and embrace new enterprise software testing tools and strategies. Just being knowledgeable about testing software is no longer sufficient. Software testers needs to be knowledgeable about software development, code functions, business logic, and technical competency. Testers a now playing an assertive role in guiding software quality assurance and development broadly.  As a tester, if you fail to adapt to these new higher level expectation, you will have a hard time making it through.

Ryan also talks about how the use of automated testing will increase significantly. It will be difficult for companies to maintain efficiency due to fast growing data in software development. Therefore, many companies will rely on automation in order to maximized their level of productivity. Ryan predicts that automation will become the default method of testing and all the challenges that holds automation testing from being the best way to test software will soon be refined.


The Software Craftsman chapter 11 & 12

Chapter 11 is titled “interview anti-Patterns”. This chapter talks about the wrong processes to go about conducting an interview as a developer. They should avoid doing things like being a smart-ass interviewer, using brainteasers, asking unnecessary  questions, and trying to seem superior in knowledge. After we’ve worked hard to find a qualified candidate, the last thing we want to do is steal the opportunity they have to shine. We want to convince them that our company is the best they can work for, because a good developer will also be looking for a company that is best for them.

Chapter 12 talks about the cost of  low morale and how unmotivated people seem to represent that very well. Unmotivated people tend to destroy companies because this can change the motivation of other workers significantly. I believe that the attitude of the people you work with can have a huge impact on the way you work; they can either motivate you or suck the morale out of you. In this chapter we learn that people become like that and that is mostly due to companies beating the passion out of developers. Manager and agile coaches are the last people to motivate developers because they are demanding and punctual about everything. The only person that can motivate a developer is another developer. Not just any developer, but a software craftsman that every team needs.