Function Points

The topic of the Blogpost for this week is the calculation of Function Points for past and future use cases.
Function points are a measurement unit for software components. It is possible to evaluate the complexity of a chunk of software with them. If you want to learn more details about function points and how to calculate them then we can recommend the following YouTube channel:
https://www.youtube.com/user/functionpoints

Here you can see an example of our calculations:

You can find these calculations in every use case document of our project.
Here is a link to the example above:
https://gitlab.maphynn.de/maphynn/maphynn/-/blob/master/uc_documents/UC_Register.md

All our calculations are also collected in the following Google sheet:
https://docs.google.com/spreadsheets/d/1OzQiNqI7TsXGBPpmqOgo2JN-4pYjRQ1Ihxfl0vGNjc4/edit?usp=sharing

But what do you do after collecting all this data? We used the function points to improve our time estimations for future use cases. To accomplish this we created the following graph based on the table below:

Time spent per Function Point
Function Points table

Detailed view:
https://drive.google.com/file/d/1g_NpCGTHKUJMujEwyipfvr1aCTgT0jE7/view?usp=sharing

Based on the use cases from last semester we estimated a trendline that correlates the calculated function points with the spent time. Based on that we can now approximate the time needed for future use cases. As you can see some of the blue points are very far away from the trendline, like the use cases “Login” (Log), “Register” (Reg). We needed more time to complete these use cases because they were the ones we started to work on first. At this time we had zero to no experience in working with these technologies. Thats why we needed longer to complete them. “Add/Remove Friend” (ARF) on the other hand took less time, relative to the other use cases. This was the case because we were able to copy some things from past use cases and didn’t have to figure everything out from scratch. One of theses things was, how to send an http-request in Dart and how to work with the received answer, for example.

With the estimated time and the data from the last semester we are now able to estimate the time we have to invest in our project this semester, if we want to fulfill our goals we set.
You can see our spent time per workflow in the picture below. In an earlier blogpost we explained what these workflows are. The yellow area is our spent time on implementing our practical use cases. We marked the end of the first semester with the black arrow. There you can see that we spent around 40% of our time on implementing features. Because we also did much setup work, which is now already done, we expect to spend 50% of our time implementing in the future.

Here is also a link to our chart in YouTrack.
https://youtrack.maphynn.de/reports/cumulativeFlow/133-2

Thanks for reading this blogpost. We would really appreciate if we would get feedback from you.

Based on that we get an estimate of about 60 workhours needed for implementation and if we double this do we get an estimation of 120h that we will have to invest. This seems to be a managable amount and we will see if this is how the reality looks like.

With best regards,
the MAPHYNN team

4 Replies to “Function Points”

  1. Hello Maphynn team,

    I am really impressed by your detailed function point calculations and the really accurate estimation you got from that.

    There are some things I can complain about:

    The first image is very small and not really readable, but since you linked the original, there are no further problems with that.

    It is unfortunate that you used abbreviations for your use cases. I can not guess what these use cases are. With the full title I could easily get an overview about how complicated the use case is.
    Especially in the table there is enough space to write the full title.

    Another point is the cumulative flow chart where you show the time you spent for implementing features. It would be nice if you place a link to the YouTrack report.

    But I really like the short descriptions and explanations for every outlier. It totally makes sense to me.

    Good job overall,
    Jan from Clairvoyance

    1. Thanks for your detailed feedback. You are right, a link to our workflow chart on YouTrack would be nice. I will add this.

      And we are of course not GameBase 😀 Thanks for pointing this out

  2. Hey Team Maphynn,

    I have to agree with Jan in that i’m also impressed how detailed you laid out everything.

    You explained briefly what each Graph is about and linked to the more detailed version, which i really liked. Outliers in the “Time spent per Function Point” are explained. The only critique i see here is that you could have included the full names of the use caes directly in the post and not just in the excel sheet, but thats a really minor complaint.
    All in all very well done and i believe you that you can manage the estimated remaining workload.

    Hannes,
    Team Cozy

Leave a Reply