Many courses and books on requirements will tell you that a good requirement describes the “what” of a need of a customer (or more generally, stakeholder). They will tell you that you shouldn’t write down the “how” (they call that ‘design’) because it pushes you in a technical direction and causes you to miss out on other good solutions.
That’s good advice in the sense that you shouldn’t restrict yourself to a solution if another solution satisfies the needs of a customer better. But when is something a design, and when is it a requirement? If you’ve thought about it, you realized that it is hard to draw the line. (more...)
Filed under Quality Assurance, Requirements Management | 3 Comments »
Tonight, we organized our biweekly XKE (Xebia Knowledge Exchange), which is a forum where we update each other on interesting developments or have discussions on various topics.
One of the topics of tonight was: "what keeps us programming in Java"? The underlying thought about it was: what prevents us from programming in a different language, especially a dynamic language like Ruby on Groovy. Because I'm a little more into Groovy than I am into Ruby, I'll talk the rest of the blog about Groovy, but you can probably exchange it for any (dynamic) language.
One of the key factors (and this might sound like an open door) to stick to programming in Java is that we are all very familiar with the language. We have invested time learning it, we know the frameworks, and we have real experience that it works. Furthermore, people know how to manage a Java application, know how to deploy it on an application server, and as an added bonus, IDE's support Java really well.
(more...)
Filed under Agile, Groovy, Java, Quality Assurance | 4 Comments »
Most of the times we are content that our code is of the right quality, if somehow, we manage to get the Static Code Analysis (SCA) tools like Checkstyle, PMD etc. report less number of severe violations. As an example if we see that the class is big in size then we conveniently split it into two or more classes to get rid of the violation. The tool is happy and so are we and most of the times that is the end of the story.
However more frequently than not getting an SCA violation is the start of the story. If you start associating the question “Why' with every SCA violation found then the real reasons start unfolding.
This is similar to the way we resolve impediments on an Scrum project. The impediments rarely represent the isolated incidences of inefficiency. Rather, most of the times they are a part of a larger problem. The way to work out an impediment is fix it so that the team can work effectively and then to look at the root cause which caused the impediment so that the main cause can be fixed. This is called “Bottom-up process re-engineering.”
Similarly the way to work out an SCA violation is to remove it so that the code looks clean and good and then to hunt for the real cause.
(more...)
Filed under Articles, General, Java, Quality Assurance | 5 Comments »
Quality assurance is too often used to just identify a lack of quality and to find deviations from the norm. This is logical in organizational cultures where responsibility is something to be managed carefully. However, wouldn't it be better if QA would be supportive towards an overall strategic goal of improving quality? For this you need a sense of shared responsibility across the organization and its processes. Then QA can work to start improving quality by improving processes, procedures and practices, making sure to prevent problems instead of identifying them. Taking responsibility instead of shifting it. That's proactive QA.
(more...)
Filed under Agile, Project Management, Quality Assurance | 4 Comments »