September 15th, 2022 by Adam Sandman
We are excited about the upcoming release of SpiraPlan 7.2 next month. It will have many enhancements, security fixes (following our most recent pen-test), and two major planned new features - product/project custom properties and an integrated spreadsheet editor. This article discusses the new project/product custom properties and how to use them for project portfolio management (PPM).
Overview of the Functionality
The new functionality (available only in SpiraPlan, not SpiraTest or SpiraTeam) will allow administrators to define custom properties and associated custom lists on SpiraPlan products (aka projects). To access this new feature, you go to the main system administration menu and look under the Custom Properties section:
This is separate from the existing custom properties that are defined for product templates. Those let you define custom properties for artifacts in the product (e.g., requirements, test cases, etc.). These new custom properties are defined for the product workspace itself. In the future, we will be extending the functionality to provide custom properties on other workspaces such as programs and portfolios as well as on users and resources.
Once you click on the ‘Product Definitions’ option, you will see all of the custom properties defined for products:
In this example, we have the sample set of custom properties only. They include text, numeric, date, and list custom properties. They show how you can use the custom properties to add useful meta-data about a project (e.g., the Vision, Stakeholders, etc.) as well to allow us to categorize projects in different ways. For example, if you click 'Edit Definition' on one of the properties, you will see how to change the name, type, description, and position of a custom property.
For the list-based custom properties (both single-select and multi-select), you can map the custom property to a centralized list of system-wide custom lists. This lets you reuse the same list of values for multiple custom properties, as well as allowing us in the future to use the same list for programs, portfolios, and users.
Each custom list can contain a set of values that would be useful to categorize a project with. In the example below, we’ve created a custom list to denote the technologies that a particular product is using.
Another example would be to categorize and prioritize the various projects based on a numeric scale (similar to how we can prioritize requirements or incidents). To achieve that, you can create a simple list of priority values that can then be used as a product custom property:
You can then do the same thing with other key project/product metrics such as the database platforms being used (Oracle, SQL Server, MySQL, etc.), skills that people need, etc.
Once that is done, you can then create custom properties that map to these custom list values:
In the example list above, we have some fields that will be useful to display on each product (Goals, Assumptions, Constraints, Vision) and other fields that are more useful when comparing, sorting, and filtering the list of projects. The product's custom properties are useful for both of these use cases.
Using for Project Portfolio Management
Project Portfolio Management (PPM) software is a business solution for managing projects at scale. Project portfolio software makes it easier for you to understand the resources, timelines, and overall business goals at a higher-level scope. It helps coordinate current projects while simultaneously planning for future projects. With the new product custom properties functionality, SpiraPlan can now provide you the means to assign timelines, goals, priorities, budgets, and other attributes to your projects so that you can manage them as a whole.
To access the new functionality, you simply need to choose a program from the SpiraPlan workspace selector (e.g., “Sample Program”) and then click on the new "Products” menu entry that is now available under the program “Artifacts" menu.
That will display the new Program > Product list page. This displays all of the active products in the current program:
This list view lets you see all of the products/projects together with their key configuration settings and any defined custom properties. In the example above, we're displaying the list of products, including the budget, next milestone review date, technologies used, database platform, and business importance rating. You can, of course, sort and/or filter by any of the displayed fields.
Furthermore, when you click on one of the items, SpiraPlan will display the details page for that product:
On this page, you can see all of the standard product fields (name, description, website, program, template), any of the key product settings (baselining enabled, etc.), and any of the custom properties grouped by the same headings as you would see on a typical artifact page (requirements, test cases, etc.). On this page, you can edit any of these fields, both standard and custom properties:
Back on the main list page, you can also show/hide different fields to customize your view. For example, during a planning/budgeting phase, you may want to show priority, budget, and milestones, whereas, in a meeting concerning technologies and asset management, you may want to organize the products by platform and database to understand which products your team(s) are using.
Finally, we are exposing the same data to the reporting system so that you can create custom reports that display the products and their associated custom properties:
Similarly, you might want to graph the number of products using each technology stack and/or database by priority:
The ESQL custom query for this graph would be:
select G.NAME as PRIORITY, count(R.PROJECT_ID) as COUNT from SpiraTestEntities.R_Projects as R
inner join SpiraTestEntities.R_GlobalCustomListValues as G on G.CUSTOM_PROPERTY_VALUE_ID = cast (R.CUST_08 as Int32)
group by G.NAME
What About Other Artifacts?
This is just the first phase in the planned program and portfolio management capabilities. The next step will be to extend this functionality to other workspaces such as programs and portfolios and also to users so that we can have the same slicing and dicing functionality available when viewing people and resources.