There are many ways to budget and estimate the cost of new software.
In a previous blog post, we covered some of the most common approaches to estimating the cost of software without using algorithms to come up with the numbers. Such approaches are usually used by the SME sector, startups, and agile teams. Though they are not always consistently accurate, the estimations provide an acceptable idea of the cost.
However, for more complex projects, like those at an enterprise level, such estimations may not hold up to the expectations of the managing directors or stakeholders. The bigger the budget, the higher the accuracy and predictability expected from cost estimations. This is when we turn to the methodologies that respond to higher standards.
In this post we will talk about COSMIC, which is endorsed as an ISO/IEC 19761:2011 standard.
COSMIC stands for Common Software Measurement International Consortium, the not for profit organisation that governs the standard for a functional size of a piece of software.
The COMSIC method dates back to the 90’s, when the first version was introduced. As I write this article, we are on version 5.0. The idea behind the method was to find a way to size any kind of software, whether it’s in its design stage or already exists. The method is considered appropriate for various types of software applications, including business applications, real time applications, and more.
COSMIC sizes software by using Functional Points (FP), a unit of measure. FP is an abstract value and every methodology defines it differently. We will talk about Functional Points more in the next blog post.
While the Expert Judgement or Story Points estimation methods rely on the expert’s “feeling” to determine how long it would take to deliver a particular requirement, COSMIC uses a more standardised way to describe the size of the software. The idea behind COSMIC is that no matter who performs the estimation, the result will always be the same. To achieve that, a framework has been developed.
This framework describes the whole estimation process and the convention of names, rules and principles on how to approach measuring the size of the software and ultimately – the cost of building it. The result of the measurement process is an amount of COSMIC Functional Points (CFP).
A CFP is defined as one unit of “data movement” which can be one of the following:
The basic idea behind the COSMIC method is to identify all data movements, classify them as one of the above types, then add them up to calculate the size of the software and its components. Translating this to software requirements, each requirement has at least two points – Entry and Exit.
While adding up the identified points is relatively easy, the bigger challenge is to unify the requirements in a way that enables you to label every data movement.
Even if you are not planning to use COSMIC, it’s worth learning more about how it works. It can help you improve your current approach to estimating the cost of software.
You can find extensive information on COSMIC’s official website: https://cosmic-sizing.org/. I would recommend starting by reading the Measurement Manual at https://cosmic-sizing.org/measurement-manual/. With that information and this blog post, you will start developing a good understanding of the method.
The Measurement Manual linked above describes the whole method in detail. It consists of three books.
The first part briefly introduces the naming convention and principles of measurement that rule the COSMIC Method. This is a good starting point for getting a better understanding of how the method works. However, the content may be hard to get through as it consists of many definitions, but they are essential to understanding the method.
This section provides a walkthrough of the process in more detail. Don’t be tempted to skip to this part without fully reading Part 1!
This last part enables you to start applying the COSMIC method. It’s structured in a way that describes all stages of the method and provides examples per stage, rather than walking through a particular example from A to Z.
Note that on the COSMIC website you can find translations of these Manuals, but beware that those are probably translating previous versions of the manual, while the latest (as per time of writing this article) is version 5.0 issued in May 2020. Previous versions are still valid, as the method has not changed, but you may not find all parts of the manual translated. I recommend sticking to the latest English version to avoid ambiguity and confusion.
To get started, I recommend reading each manual once and then following each COSMIC phase using all three documents at once. Use Part 1 to get a quick overview of the COSMIC process; then refer to Part 2 for a detailed description of the particular step you’re at; finally look at the descriptions with examples from Part 3. Personally, I’ve been learning COSMIC by having all three documents open next to each other:
If you would like to validate your knowledge in sizing software, or you see a career opportunity in this area, the COSMIC organisation offers two types of certification:
COSMIC Foundation Level: A certification that verifies the candidate’s knowledge about the basic principles of Functional Size Measurement, the COSMIC Method, and the Measurement Process.
Early & Quick Size Estimating: This certification verifies the knowledge and ability to use COSMIC to size a software project at an early stage of software development.
But even if you are not looking to apply COSMIC to your projects, I think it’s worth it to at least learn the basics. It standardises the approach to cost estimation and will allow you to prepare the project documentation in a way that is easier to process in terms of sizing the project.