Woocommerce Menu

How far ALM solutions can benefit the product owner

Introduction

I believe most challenging role in Agile Software development methodology, is what Product Owner plays. Lets see what Product owner’s primary responsibilities in this role and how far ALM (Application Lifecycle Management) solutions can help in this challenging role.

  1. 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
  2. Transforming customer’s ideas into tangible product deliverables and prioritizing features.
  3. Articulating the customer’s requirements and project goal to the team.
  4. Understands and supports the needs and interests of all stakeholders, while also understanding the needs and workings behavior of the Scrum Team.
  5. Ensures clear communication of product or service functionality requirements to the Scrum Team and maintains a dual view.
  6. Interaction with the Program Product Owner and the Portfolio Product Owner to ensure that the project aligns with direction provided by senior management.
  7. Focusing on value creation and overall Return on Investment (ROI) and assesses the viability and ensures the delivery of the product or service.
  8. Plan release and sprints to deliver maximum value at the earliest.
  9. The balancing act between the Scrum Team and the Customer.
  10. Prioritized Product Backlog Items, creates Release Planning Schedule.
  11. Create User Stories, defines Acceptance Criteria for every User Story, approves User Stories.
  12. Facilitates Scrum Team and commit User Stories, explains User Stories to the Scrum Team while creating the Task List.
  13. Provides guidance and clarification to the Scrum Team in estimating effort for tasks.
  14. Updates Release Plan and Prioritized Product Backlog.
  15. Product Owner needs to be in control and trusted by the stakeholders to effectively play his role.
  16. The team may be in a different location and may be far remote from the users/customers. Therefore product owner must be equipped with proper software development platform including various tools such as communication tools.
  17. Provide timely and constructive feedback to the team to improve quality of deliverable: Honest and transparent feedback is necessary but may not be always convenient to give.
  18. Testing and maintain quality of each version of software delivering to customer.

Executing all these tasks by single person is really challenging and at the same time it is hart of Agile development practice. When agile team is growing and requirements are getting complex, it is absolutely necessary to have Product Owner role in place. If that role is not in place, these primary responsibilities may be handled by Project Manager/ Solution Architect/ Team Lead/QA Lead. But how far these responsibilities can be handled, while focusing on their individual primary responsibilities, is questionable.

In order to facilitates all these primary responsibilities by Product Owner, help of ALM solutions is vital. But of cause ALM cannot give solutions/ help/ support all of above primary responsibilities. But most of the cases it supports directly or indirectly. Lets see how it can support.

I have grouped all these primary responsibilities into few areas, so we can evaluate how ALM solutions can help in that regard.

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.


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.

source: www.atlassian.com

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

                    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.

source: www.atlassian.com

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.

source: www.atlassian.com

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.

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 and complexity of the project, 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 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, Azure DevOPs from Microsoft, 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 with all the features available within the tool.

References

https://stackify.com/application-lifecycle-management

What is Application Lifecycle Management (ALM)?

https://searchsoftwarequality.techtarget.com/tip/Requirements-management-collaboration-with-ALM-tools

Requirements management collaboration with ALM tools

https://project-management.com/7-challenges-and-solutions-in-managing-large-scale-it-projects/s

7 Challenges and Solutions in Managing Large Scale IT projects

http://blog.scrumstudy.com/the-product-owners-role-and-challenges

The Product Owner’s role and challenges

https://ieeexplore.ieee.org/document/5741269/

Software Deployment Activities and Challenges – A Case Study of Four Software Product Companies

https://www.aapnainfotech.com/software-development-project-estimation-problems-solutions/

Software Development Project Estimation – Problems & Solutions

https://admhelp.microfocus.com/alm/en/12.60/online_help/Content/UG/c_end_to_end_deploy_and_test.htm

Deploying and Testing your Application in ALM

https://www.researchgate.net/publication/272292082_Software_maintenance_support_activities_Challenges_for_very_small_software_companies

Software maintenance support activities: Challenges for very small software companies

Leave a Reply

Your email address will not be published. Required fields are marked *