Business Analyst with a quality perspective
Integrating quality into the software development process should be a priority from the outset. The experience gained in testing can be a valuable...
The acquisition of complex software for a public mobility provider presented the project team with unexpected challenges. With an approach that combined static analysis, agile methodology and close customer coordination, the project was successfully completed. Particularly noteworthy was the flexible response to new requirements and the development of a strong relationship of trust with the customer. The insights gained provide valuable inspiration for similar projects and offer practical advice on how to successfully handle complex projects.
In this episode, I have Sonja and Helmut as guests. They talk about taking on a complex software project for a public mobility provider, where they encountered numerous unexpected problems. Using a combination of static analysis, agile methodology and close customer coordination, they were able to successfully complete the project. Particularly impressive was their ability to respond flexibly to new challenges and gain the client’s trust. Their key findings and advice provide valuable insights for anyone facing similar projects.
“We then simply provided an expert and a developer in advance, so to speak, to take a big, rough look and simply check whether the thing was worth taking over or not.” - Helmut Nitsch, Sonja Trimmel
Helmut Nitsch has been Head of Digital Assurance at Eviden since 2022 and has more than 20 years of experience in software testing. He started his career as a project manager and head of the billing team at UPC Austria, where he also led the user acceptance test team for more than seven years. He also built up the test organization at Austria’s largest telecommunications provider (A1) and did the same at Austrian Post.
Sonja Trimmel is an experienced project manager and scrum master with a solid technical background in computer science. Over the past nine years at Atos/Eviden, she has successfully managed numerous projects, demonstrating her ability to master complex technical challenges and deliver innovative solutions. Her academic background in computer science and data science has contributed significantly to her success.
A successful software project begins with a clear analysis of the current situation. In an example project, which included a ticket store for local public transport, the software was introduced without detailed knowledge of the code base that had been adopted. It was therefore necessary to first gain a rough overview of the system. By providing experts to analyze the code base, it was possible to determine whether the system was at all viable and maintainable. There were numerous surprises and ambiguities in the code, which made the start of the project more difficult.
Automated tools such as SonarQube played a central role in analyzing the code quality. Static analyses provided valuable insights into the maintainability, robustness and security of the system within a very short time. These tools identified critical weaknesses and provided concrete suggestions for improvement. This made it possible to carry out a well-founded evaluation of the system even under high time pressure.
Insufficient or non-existent documentation was one of the biggest hurdles in the project. Some system components were delivered late or were only available as black boxes. This made it considerably more difficult to understand the entire system. However, these hurdles were overcome through close cooperation and clear communication. The team’s flexibility and adaptability proved to be decisive factors here.
An agile mindset was essential in order to be able to react quickly to unexpected challenges. Flexibility was required from both the customer and the team. This attitude made it easier to find solutions to problems that suddenly arose and to successfully complete the project despite numerous surprises. The client’s willingness to actively participate and apply agile methods also contributed significantly to the success.
A diversified team setup is a key factor for successful projects. Even if a project seems easy to plan at first glance, there should always be room for adjustments. In addition, testing should never be neglected. A comprehensive testing strategy saves time and money in the long term, as it helps to identify and eliminate weaknesses at an early stage. These findings are essential for the successful implementation of future projects.
Software analysis is a process in software development in which existing systems are examined in order to understand their functionality, structure and behavior. The aim is to determine requirements, identify errors and uncover opportunities for improvement.
Common methods of software analysis include static analysis, in which the source code is examined without execution, and dynamic analysis, in which the system is observed during runtime. Other techniques include requirements analysis, process analysis and modeling.
The requirements analysis serves to identify and document the needs and expectations of the stakeholders. It forms the basis for the development of a system that meets the actual requirements and thus ensures user satisfaction.
The IS analysis records the current state of a system or process, while the SHOULD analysis describes the desired target state. Comparing both analyses helps to identify gaps and optimization potential.
Use cases describe specific use cases and interactions between users and the system. They help to clearly define functional requirements and serve as a basis for design and testing.
Modeling is used to create abstract representations of a system, such as data flow diagrams or UML diagrams. This makes it easier to understand complex systems and supports communication between developers and stakeholders.
The challenges include unclear or changing requirements, communication problems between stakeholders, limited resources and the complexity of modern software systems.
By identifying errors, inconsistencies and optimization potential in the early stages of development, software analysis helps to improve the quality of the end product and avoid costly rework.
There are various tools that are used depending on the type of analysis, including static code analysis tools, modeling tools such as UML editors and requirements management tools.
Software analysis should take place continuously throughout the entire development process, from requirements analysis, design and implementation to testing and maintenance, to ensure a deep understanding and high quality of the system.
Integrating quality into the software development process should be a priority from the outset. The experience gained in testing can be a valuable...
Model-based testing sounds like the holy grail of quality assurance: efficiency, automation and maximum precision. But in practice, you stumble...
Formal methods are crucial for ensuring software correctness. They enable mathematical proofs of freedom from errors in safety-critical systems. The...