Categories
Semester 4 Unidash

The Dark Side of Function Points

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.

“Fear leads to anger. Anger leads to hate. Hate leads to suffering”

Yoda

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.

“Do or do not. There is no try.”

Yoda

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:

CanteenCountWeightFunction PointsDETRETFTR
Inputs1SimpleSelect DayCalendar
Outputs1SimpleTable of MealsMeals
Inquiries2Simple22,1Profile, Table of ContentUserDB, MealsCanteen Plan
Files2SimpleLocal Table, DBCalendar, UserDB
Ext. Interface1AverageMensa.orgCalendar, UserDB, Meals
Canteen
LoginCountWeightFunction PointsDETRETFTR
Inputs4AverageUser, PW, Login, Reset PWUserDB, Navigation
Outputs2AverageAuthToken, Reset PageInterface, UserDB, Navigation
Inquiries4Average50,7Auth Inq, Page Inq, ext. Auth Inq, PW en/decryptUserDB, Navigation, ext. AuthLogin
Files1AverageUser ProfileUserDB
Ext. Interface2-xComplexlocal Auth, external Auth sourcesUserDB, ext. Auth
Login
Time ScheduleCountWeightFunction PointsDETRETFTR
Inputs7AverageNext/Prev Week, Next/Prev Month, Detailed View, Link to Course/ProfUserDB, Navigation
Outputs4AverageWeek View, Detailled View, Prof/Course ListUserDB, Navigation, View
Inquiries2Average53,95Profile, CalendarUserDB. CalendarTime Table
Files2AverageProfile, CalendarUserDB. Calendar
Ext. Interface1AverageRaplaext. Interface
Time Schedule
ChatCountWeightFunction PointsDETRETFTR
Inputs5AverageType Field, Send, Chats, Scroll, Open Chat ProfileNavigation, Input, UserDB, View
Outputs6AverageChat Window, New Chat Window, List of Chat Partners, Name of Chat Partner, Message, Profile of UserNavigation, UserDB, View
Inquiries3Complex63,7Message send, Message receive, ProfileView, Chat, UserDBChat
Files3AverageChatlog, Profile, Profile Chat PartnerUserDB
Ext. Interface0Simple
Chat
BetsCountWeightFunction PointsDETRETFTR
Inputs16AverageCreate 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
Outputs5AverageAmount Credits, Bet List, Detailled Bet, Bet Options, Bet OwnerBetLog, UserDBTake Bet
Inquiries3Average85,15Place Bet, Show Bet, Profile,BetLog, UserDBPlace Bet
Files2ComplexBets, ProfilesBetLog, UserDB
Ext. Interface0Simple
Bets
Train ScheduleCountWeightFunction PointsDETRETFTR
Inputs8SimplePick To/From DH, Pick Time, Arrival/Take Off, Submit, Scroll, Detailled ViewBahn, Navigation
Outputs2AverageList, Detailed ViewNavigation, View
Inquiries1Complex39Bahn DataBahnTrain Schedule
Files1AverageProfileUserDB
Ext. Interface1ComplexBahn APIBahn
Train Schedule

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 CaseTime Spent
in Hours
Function
Points
Login3050.70
Time Schedule1053.95
Canteen3822.10
Chat463.70
Bets1285.00
Train1239.00
Please notice: As we just finished one use case, we needed 2 additional points to show the estimated time line. The lowest and highest of the blue points are just helping marks.

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.

“Quicker, easier, more seductive”

Yoda

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

Leave a Reply

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