Magdy Hanna, CEO of Rommana Software and chairman of the International Institute for Software Testing, laid out some of the most important rules, tips and crucial components that a developer, project manager or tester must focus on in the ALM process.
What’s in an ALM tool: “Application life-cycle management is supposed to span the whole life cycle, so a tool is not considered to be an ALM tool unless it supports every phase of an application life cycle,” said Hanna. “The first characteristic of an ALM tool is supporting every single phase, from inception, requirements, planning and management to development, QA and testing and change management.”
Collaboration: “Collaboration is critical to every life cycle,” said Hanna. “A tool needs strong collaboration support to allow a team to communicate on the spot in real-time, and all collaborations must be documented in the tool. When products last a long time, people will have questions about why decisions were made. Teams must always have the ability to go back and look at the collaboration notes.”
A hybrid agile mindset: “In ALM nowadays, no company will run all agile or all non-agile projects. Every company runs a hybrid set of projects,” said Hanna. “As a result, organizations and teams within organizations must meet agile and non-agile seamlessly, and you don’t need a separate set of tools for both. Agile has taken some very good software engineering practices we’ve had for years and expanded on them.”
Feature-based project management: “We need to change our thinking about project management,” said Hanna. “We’ve been treating requirements management as managing tasks and resources, but a project should really be managed based on features, which are the most important factors of any product: what we’re delivering to customers. In feature-based project management, we focus on managing who’s assigned a specific feature and who’s designing, coding and testing that feature.”
Traceability: “The whole reason ALM came about was to help us ensure the traceability that single-solution tools do not have: backward and forward traceability between every artifact of an application,” said Hanna. “A critical component of ALM is one single repository where all artifacts are stored to pull any report to link all these pieces together.”
QA and testing: “ALM tools must document on the fly in an agile project,” said Hanna. “If I have a QA team performing some kind of exploratory or ad hoc test (I call it on-the-fly testing), I should have any easy way to document an idea very fast with one line.”
Versioning support: “ALM needs the support of versioning, but when we moved to agile, many forgot about versioning,” said Hanna. “An ALM tool needs to support versioning of not just user stories but all the testing artifacts to allow for change management.”
Don’t be reliant on requirements: “We should never be relying on requirements or user stories for development and testing,” said Hanna. “No one can write good requirements. So if you have poorly written requirements, you will have poorly written code. Developers must think in scenarios. What kinds of use cases could possibly occur in production? The code we write will only handle 20% to 30% of what will happen in the field, so we give the users tools. Doing it right the first time means an ALM tool supports an ALM methodology. A tool without a methodology is nothing.”