How far ALM solutions can benefit the product owner

Introduction 


Product owners primary responsibility is for communicating with stakeholders across the board, including customers, business managers and the development team to make sure that the goals are clear and the vision is aligned with business objectives. When Transforming customer’s and stakeholder’s ideas into tangible product deliverables, product owner may face to certain challenges. For facing some of the challenges by Product Owner require some soft skills like be a trustable person for  every stakeholders. But he/she can face to other challenges with help of some tools and products. Those challenges are:

Requirements Management

Role of product owner is to take ownership of all the requirements of his project and manage them. Those requirements could be either functional or non-functional requirements. While some of the stakeholders of the project focusing on functional requirements, other may focus on non-functional requirements. Therefore, the Product Owner must ensure that all of the relevant requirements are managed and maintained properly. In reality, a number of challenges arise from this as it can be very difficult for the Product Owner to represent and estimate the requirements for all of the Stakeholders.

When the project become larger, managing requirements become more challenging task for product owner as the number of requirements will not easily fit in the visual dashboards. Nowadays most of the companies are following Agile development as opposed to Waterfall model development. Dynamic nature of these requirements in agile world, increases complexity of the project.

Therefore, it is absolutely necessary to have help of some kind tool to manage these requirements. This is where ALM tools come into play. When the complexity and size of the project increases, the more important it is to have right ALM tool to support requirement management tasks that will handle the scale, complexity, and variables in agile world. Requirement management can even be started using some screen mockups and build through the discussion between customer and Product Owner/Developer on the platform provided by ALM. The tool with advance capabilities assists product owner to do his job successfully.

For large software projects, workflow processes introduced by ALM tools allow Product Owner to manage the creation, review, refinement, approval and scheduling of requirements into releases. Seamless integration of the requirements management tool with email, and optionally, instant messaging or mobile apps can be used to make these workflow processes progress smoothly.

Reporting features of ALM tools, which present requirements generated, approved and scheduled with graphs, charts and dashboards can be used to accelerate software development process and they provide an easy way to keep track of progress.

Planning and Estimation

Planning and estimation is the kick start phase of any project in actual. Proper planning of releases absolutely necessary, because it’s the Product Owner’s job to ensure that the maximum value is delivered as early as possible ensuring better ROI to the customer. Some of the challenges that product owner facing during this phase are, the uncertain gray area of requirements, not splitting bigger tasks, different between Idealistic & optimistic estimation.
               Product owner can inquire customer as much as possible to go deeper to clarify all the requirements and track them on a ticket itself. Developer should create tasks under the requirement/user story and split tasks up to last mile small sub-tasks which will definitely lead to much better estimation. A Bigger task may have 10 sub-tasks inside it for which the cumulative effort may vary significantly. ALM tool lets you estimate these individual technical tasks that are then aggregated back against the original requirements that were specified.

                    source:  www.atlassian.com
Without right ALM tools, Estimation and planning tasks will consume too much effort and the actionable insights identification will be delayed.

Testing and Quality Assurance

Quality checking has become an integral part of the entire product development cycle to better the chances of faster time-to-market and higher ROI. Therefore, testing and maintain quality of each version of software delivering to customer has become another challenge that the product owner is facing.

Most of the ALM tools let you create and manage your test cases in folders, with sorting and filtering capabilities. It enables users to display different columns in their own customized view, and allow the manager to define custom properties and lists that can be used in the project.

Due to large team size and substantial code changes on systems, regression impact risk also becomes higher. Regression Testing should get appropriate focus and full regression testing should be done in an integrated environment at the end of each code drop. In multi-vendor scenario, handling issues effectively becomes more precious issue.

Automation testing offered by ALM tools will play an important role here. As applications become increasingly complex with user interfaces and published APIs to test, with the testing needs covering a wide variety of platforms and technologies (mobile, web, desktop), it is not feasible to manually test everything each time you release a new version or update.


Consolidating the inputs and getting insights at the right time to focus on problem areas become a key requirement. Hence, it is imperative to have daily reports that can be generated automatically and give actionable insight by means of ALM tools.

Deployment or DevOps

Software deployment, including both clean installs and updates, is a crucial activity for all software vendors and it could be more challenging due below reasons.
  1. Managing various version of software for different customers on environments such as Dev, QA, UAT and production.
  2. The product is tightly integrated with other systems.
  3. The product offers various configuration options to support different ways of working.
  4. The product requires a pre-created, complex, real-world data model to be usable.

In order to deploy different versions on different environments for different clients, highly configurable build and deployment management tool is needed. ALM tools play vital role here. They associate requirement/task/issue/feature with code changes and code changes with particular automated build and particular build with the release. You can use ALM to schedule deployment and test sets to run nightly or hourly. It allows your application team to achieve a state of Continuous Delivery, where software can be developed, packaged, deployed, and tested in an automated fashion, resulting in the ability to provide software reliably, efficiently, and with great speed.
            

At the other hand It allows management including product owner to create reports, chats, graph by means of ALM tools to identify the progress of deliverables.           

Maintenance and Support

Doing a maintenance and support of software is a tedious task for the product owner and the team of any of the software development company due various reasons and they are:
  1. Documentation does not exist, or it is poor
  2. Difficulties in understanding code written by someone else.
  3. Programmers that develop software usually are not available to answer questions about software.
  4. Software is not designed to be easily modified.
  5. Maintenance is less attractive than development.

Most of the AML tools have addressed most of above issues in various ways. They provide developers to create wiki pages to documenting each component of application and those wiki pages are integrated with other third party tools to creates charts, graph, diagram such as UML. It is product owner’s responsibility to allocate time for team after having discussion with relevant stakeholders.

Most of the development environments provided by ALM tools have mechanism to do a code review before sending them to QA build and it can be used to maintain proper coding standards and release quality coding to QA at end of the day. Discussions in between developers promote delivery of software component that can be easily modified in future.

At the other hand these tools keep track of the person, who does the code changes, and reason for doing code changes. They can be used at later stage while doing maintenance.

Real-time Planning and Team Communication

Product owners are responsible for communicating with stakeholders across the board, including customers, business managers, and the development team to make sure that the goals are clear and the vision is aligned with business objectives. It is utmost important that the entire development team and stakeholders have sense of ownership, and are equally invested in project success. Therefore, real-time planning and team communication utmost important.
It is highly inefficient to rely on email, text messages or even worse, group meetings, to facilitate the communication of team members in real time. Information may be out of context and afterward, no reliable record of the interchange exists.
Geographically dispersed teams are common in today’s software industry, making strong communication and collaboration tools essential in carrying out real-time communication throughout the application life-cycle.
ALM tools solves these problems by providing instant messengers to let user communicate without any geographical restrictions and RSS feeds keeps other team members alert of the communication.

Conclusion 

Building an app without an ALM plan is like setting sail across the ocean without a compass.  ALM provides clear direction for the team, speeds up development, and helps you to make better decisions over the course of an app’s lifespan. However, all depend on the final goal of your software project. Depending on your software needs, you need to decide whether you should go for ALM tool or not.
Moreover, today, we are in a new world of continuous integration, delivery and deployment. DevOps processes seen as the final realization of the agile movement. Therefore, how far these ALM tools support on DevOps processes is questionable. Because many of the stable ALM tools started to supporting DevOps processes at later stage. Therefore, when selecting right ALM tool, you need to find out, how it supports DevOps processes, if you are interesting on DevOps too.
JIRA + Confluence + Stash + Bamboo from Atlassian, MSTS, Panaya Release Dynamix, Rommana ALM and Spira Team are some of the popular ALM tools. Based on the project’s requirement, the organization needs, costing etc a desired ALM Software can be selected, after going through all the features of the tool and other details.

References

What is Application Lifecycle Management (ALM)?
https://stackify.com/application-lifecycle-management/
Requirements management collaboration with ALM tools
https://searchsoftwarequality.techtarget.com/tip/Requirements-management-collaboration-with-ALM-tools
7 Challenges and Solutions in Managing Large Scale IT projects
https://project-management.com/7-challenges-and-solutions-in-managing-large-scale-it-projects/
The Product Owner’s role and challenges
http://blog.scrumstudy.com/the-product-owners-role-and-challenges/
Software Development Project Estimation – Problems & Solutions
https://www.aapnainfotech.com/software-development-project-estimation-problems-solutions/
Software Deployment Activities and Challenges - A Case Study of Four Software Product Companies
https://ieeexplore.ieee.org/document/5741269
Deploying and Testing your Application in ALM
https://admhelp.microfocus.com/alm/en/12.60/online_help/Content/UG/c_end_to_end_deploy_and_test.htm
Software maintenance support activities: Challenges for very small software companies
https://www.researchgate.net/publication/272292082_Software_maintenance_support_activities_Challenges_for_very_small_software_companies




Comments

Popular posts from this blog

Azure Integration Platform as a Service (iPaas)