Hey guys,
As already mentioned by @profberk, this week’s blog post is gonna be the most exhausting in all of the semesters we had and will have concerning Software Engineering. And hell, yes it was. So, let’s get started.
By the way, happy international Star Wars Day tomorrow. Maybe you already noticed the theme of our blog post this week. Have fun reading and May, the 4th, be with you.
As we wanted to give you the opportunity to look more precisely into our plans and progress, we wanted to ensure our forecast and set up a priority list powered by Function Points™.
As we do not have finished many use cases yet, most of the following is speculative. Also please notice that there might be several methods in working with Function Points (FP). That’s what we found out by looking for a Best Practice online, so our result might differ from the other ones.
Just saying.
First things first, we took the use cases we already prepared for last week’s blog post and analyzed them step by step, concerning the 5 properties we had in lectern: inputs, outputs, inquiries, files, and external interfaces.
We e.g. thought about every possible input a user could make while being on one of our particular pages, which mostly represents our use cases.
The overwhelming effort that was necessarily made us uncertain in the results we might get, so if you see some mistakes, we made just let us know in the comments below. We appreciate your help. Thanks.
Let’s stay on the light side together.
As we write down every possible value of the 5 properties, we looked for a Best Practice how we should categorize them into the DET/RET/FTR columns and which are now responsible for the count of the property.
We found a solution, where every little thing that belongs to the property, e.g. input, needs to be listed into the DET sector and will increase the count. That may differ from what we heard in lectern but was the better way of analyzing the outlay of our work. Maybe the DET column appears to be crowded but also helps us define the result we want to help.
Every little DET entry now can be technically summed up by a RET category. These categories now split the entries into technical sites like frontend, backend, and so on. We need that for us to evaluate effort by the department later on as we split our team into frontend, backend, and managing/documenting instances. Also, that helps us to prepare sprints and tasks for the upcoming weeks due to our created prioioty list and a rough calculation of time necessary.
Usually, you analyze large software packages by function points, so the FTR column contains the single-use cases/user-relevant functions that result from DETs and RETs. In our case, our use cases are so small that there won’t be many different entries in the FTR column.
Here you can see some examples we created:
Canteen | Count | Weight | Function Points | DET | RET | FTR |
---|---|---|---|---|---|---|
Inputs | 1 | Simple | Select Day | Calendar | ||
Outputs | 1 | Simple | Table of Meals | Meals | ||
Inquiries | 2 | Simple | 22,1 | Profile, Table of Content | UserDB, Meals | Canteen Plan |
Files | 2 | Simple | Local Table, DB | Calendar, UserDB | ||
Ext. Interface | 1 | Average | Mensa.org | Calendar, UserDB, Meals |
Login | Count | Weight | Function Points | DET | RET | FTR |
---|---|---|---|---|---|---|
Inputs | 4 | Average | User, PW, Login, Reset PW | UserDB, Navigation | ||
Outputs | 2 | Average | AuthToken, Reset Page | Interface, UserDB, Navigation | ||
Inquiries | 4 | Average | 50,7 | Auth Inq, Page Inq, ext. Auth Inq, PW en/decrypt | UserDB, Navigation, ext. Auth | Login |
Files | 1 | Average | User Profile | UserDB | ||
Ext. Interface | 2-x | Complex | local Auth, external Auth sources | UserDB, ext. Auth |
Time Schedule | Count | Weight | Function Points | DET | RET | FTR |
---|---|---|---|---|---|---|
Inputs | 7 | Average | Next/Prev Week, Next/Prev Month, Detailed View, Link to Course/Prof | UserDB, Navigation | ||
Outputs | 4 | Average | Week View, Detailled View, Prof/Course List | UserDB, Navigation, View | ||
Inquiries | 2 | Average | 53,95 | Profile, Calendar | UserDB. Calendar | Time Table |
Files | 2 | Average | Profile, Calendar | UserDB. Calendar | ||
Ext. Interface | 1 | Average | Rapla | ext. Interface |
Chat | Count | Weight | Function Points | DET | RET | FTR |
---|---|---|---|---|---|---|
Inputs | 5 | Average | Type Field, Send, Chats, Scroll, Open Chat Profile | Navigation, Input, UserDB, View | ||
Outputs | 6 | Average | Chat Window, New Chat Window, List of Chat Partners, Name of Chat Partner, Message, Profile of User | Navigation, UserDB, View | ||
Inquiries | 3 | Complex | 63,7 | Message send, Message receive, Profile | View, Chat, UserDB | Chat |
Files | 3 | Average | Chatlog, Profile, Profile Chat Partner | UserDB | ||
Ext. Interface | 0 | Simple | – | – |
Bets | Count | Weight | Function Points | DET | RET | FTR |
---|---|---|---|---|---|---|
Inputs | 16 | Average | Create Bet, Input Bet, Input Answer 1/2, Additional Option, Input Additional Option, Submit, Select Option, Input Bet Amount, Submit, Resolve Bet, Select Correct Option, View Old Bets, Details Bet, Profile Owner, Profile Competitor, All Bets | BetLog, UserDB | ||
Outputs | 5 | Average | Amount Credits, Bet List, Detailled Bet, Bet Options, Bet Owner | BetLog, UserDB | Take Bet | |
Inquiries | 3 | Average | 85,15 | Place Bet, Show Bet, Profile, | BetLog, UserDB | Place Bet |
Files | 2 | Complex | Bets, Profiles | BetLog, UserDB | ||
Ext. Interface | 0 | Simple | – | – |
Train Schedule | Count | Weight | Function Points | DET | RET | FTR |
---|---|---|---|---|---|---|
Inputs | 8 | Simple | Pick To/From DH, Pick Time, Arrival/Take Off, Submit, Scroll, Detailled View | Bahn, Navigation | ||
Outputs | 2 | Average | List, Detailed View | Navigation, View | ||
Inquiries | 1 | Complex | 39 | Bahn Data | Bahn | Train Schedule |
Files | 1 | Average | Profile | UserDB | ||
Ext. Interface | 1 | Complex | Bahn API | Bahn |
In addition, we created a graph which shows our time spent in comparison to function points. Please remember that most of the states are WIP.
Time Estimation
Use Case | Time Spent in Hours | Function Points |
---|---|---|
Login | 30 | 50.70 |
Time Schedule | 10 | 53.95 |
Canteen | 38 | 22.10 |
Chat | 4 | 63.70 |
Bets | 12 | 85.00 |
Train | 12 | 39.00 |
As you can see, our calculations are not proper because we are still working on almost every use case.
That’s what we did for this week, but we also found some alternative methods that we can’t wait to share with you. Maybe those will help you also.
The time we spent on research, work, and creating these sheets we approximately needed like 10-12 hours which is a huge amount of time. If you imagine doing this for a really big project like an AAA-game title, this might escalate really quickly. So, we found an alternative way of creating a rating in effort you have within your project.
The so-called Story Points need less information and so it is handled more easily with a similar outcome for your project. You just watch pages/use cases and evaluate effort, risk/uncertainty and complexity in comparison to your other use cases.
Here’s an example: If you create a page with two input fields and your second page has 100 input fields, the amount of effort on the second page is higher but risk/uncertainty and complexity stays the same as you have no different things to do on the second one.
You also get some points out of it so you can prioritize and calculate time. That might be the way to the dark side as this is a “lazier” way, but maybe, that way suits you more.
That’s it for this week. Thanks for your attention and please let us know your thoughts in the comments below.
Have a nice one,
Cheers,
-RawBean-
and may the force be with you and guide you to an awesome grade
2 replies on “The Dark Side of Function Points”
Hey Foodies,
Your blogpost looks amazing. Your function Points look very accurate and your graph is easy to understand. Maybe you could add your Compelxity Adjustement Table to let us see how you calculated your function points
We can see that you spent a lot time on this weeks blogpost and the calculation of the function points. Keep on with this amazing work!
Regards,
AniflixApp-Team
Hey Foodies,
your blogbost looks very good. I really like the functions points you guys came up with and although i didn’t understand every detail of it, you can cleary see that you put alot of effort and thought into them.
We are looking forward to your further progress and keep up the good work!
Best regards,
Team Cozy