In our previous article, we examined the impact of processes on product quality. But ultimately it’s all about people’s attitude to the company, team, and product. So let’s see what people can do to assure consistent product quality:
Even the best process is worthless if people are not working to keep it alive. The attitudes and skills of the people behind the process are probably the most influential factors on product quality. The kind of complexity found in systems of this nature requires every software engineer attached to the development to be deeply involved and participate in the quality assurance.
Creating quality is a team effort, or rather a teams’ effort in the case of PTV xServer components. A mix of cross-division, inter-disciplinary teams cooperate to make this product possible. The integration team cooperates with algorithmic experts, business experts, data processing experts, test engineers, product managers, sales managers, consultants, support engineers, server administrators, technical editors, internal and external suppliers, and not least internal and external customers.
Requirements capture and system design in particular require good communication skills.
The technologies involved require well-trained engineers who work with different operating systems, development tool chains, databases, web service technologies, and programming languages on a daily basis. To reach and maintain this level of expertise and to keep up with the state of the art, engineers must be trained regularly. Training courses and conference visits are classic methods, but they are not the only options. Pair programming helps to spread know-how between team members. Regular techtalks (see our article “TechTalks – Our PTV-internal knowledge transfer“) spread know-how between teams. Many teams also run lab days when team members can do research and development at their own discretion, trying out new ideas and improving their know-how.
Ultimately it’s all about people’s attitude to the company, team, and product.
If engineers do not care about the product, quality quickly becomes compromised. Product and process improvements require constant changes: everyone involved must learn to embrace changes, otherwise there can be no progress. Pair programming is difficult if those involved are incompatible. Careful choice of team setups, leading by example, openness to ideas and keeping teams in the loop are key tasks for management to ensure that developers care for their jobs, their product, and their colleagues.
We would like to take this opportunity to thank all our staff members for their commitment, without which the outstanding quality of PTV xServer would be impossible.
This series of articles has touched upon a great many aspects of software engineering. The rationale for this comprehensive treatment is simple. We believe that there’s only one way to create quality software, and that’s the hard way: you need to get a great many things right, especially with a product line as complex as PTV xServer.
Despite this complexity, we believe that our product line is quite mature and offers high quality. The challenge of the future will be to maintain that level of quality, or even improve upon it, while adding new exciting features.
And we will. Promise!
If you have any questions or comments, I would be happy to talk to you. Feel free to contact me any time.
Enjoyed this series of articles? Please share it ….