I am intending on writing a small application over the next day or two that will help me understand, at a reasonable level, some interesting technologies.
The software will be a fictional Football Club organisation application; that is Football
, the game where you kick the round ball with your feet
, not whatever this soccer
thing is, never seen someone playing a football game in their socks
That can be used to manage club members, teams, management staff, fixtures and whatever else comes up along the way.
The reason for doing this is to delve into some of the technologies that I have been meaning to learn for some time. After reading through documentation, articles, blog posts, tutorials and whatever text I could get my hands on, I am ready to start attempting to implement something. If anyone does find this series then be warned, it is more of a learning experience than a manual. Something that I say/do in the first post may later be ripped out and done in a different way later on. Also if you spot something that isn’t right, let me know, that’s what comments are there for.
So lets get going then. The first thing we need is a set of requirements. I am going to use a style that might be similar in style to BDD requirements, although I’ve never really done any BDD before.
Requirements gathering can be quite boring, so I’m going to tell a story.
I set off in search of some people with a vested interest in the software. The first person I meet is the club owner.
- As a club owner, I want my club to be well organised, so that we run efficiently.
That’s it, that is the only requirement he has, after that he gets on his phone and I leave quietly. Don’t you just love requirements. Ok, lets try and get some more out of the people at the club. I will assume that they have agreed that a software solution will be created that has some sort of data storage ability. I’m certainly not going to go through this exercise and tell them to go and buy everyone their own leather bound diary!
I find the club secretary who is responsible for looking after the smooth running and organisation of the club.
- As club secretary, I want to be able to know who the members of the club are, so that I can contact them when I need to.
- As club secretary, I want to be able to control which managers have access to which teams through the system, so that they are not overwhelmed by the amount of information.
- As club secretary, I want to be able to send emails to our members, so that I can send out reminders or newsletters.
Wandering around the club offices I find the treasurer, who is responsible for the finances of the club. Far too busy to talk I only get a few requirements.
- As club treasurer, I want to be able to keep track of membership fees, so that I can balance the books.
- As club treasurer, I want to be able to keep track of any fines awarded to players or staff, so that we can ensure they are paid in time.
Later on I manage to get a meeting with a few of the team managers associated with the club. Ok, so all I managed to do was catch up with a manager during half time at a game.
- As a team manager, I want to know who is available to me for selection, so that I can pick the best team.
- As a team manager, I want to know which members of the club’s ‘back room’ staff have been assigned to my team, so that I can make sure the players are well looked after.
- As a team manager, I want to be able to access my fixture list whenever I need to, so that I can make sure everyone knows who we are playing next.
While I’m at the game, I decided to talk to some of the substitutes, they had some requirements too.
- As a player, I want to be able to access the fixtures, because the manager sometimes forgets.
- As a player, I want to be able to let the manger know when I am on holiday, so that he doesn’t put me in the team.
- As a player, I want my personal information to be secure, so that I don’t wake up to find someone has stolen my identity.
As I am thanking the players and setting off to get back to work, (doesn’t everyone work on a Saturday evening?), one of the team’s
fanatics fans confronts me. “You making a website for this lot? Well I got things I want on it too!”
Oh well, might as well humour him.
- As a fan, I want to be able to see the fixtures, so that I don’t miss a game.
- As a fan, I want to be able to see the results of the games, so when I miss one I know what the score was.
- As a fan, I want to be able to read news stories about the team, so that I am never out of the loop.
- As a fan, I want to be able to talk on the internet with other fans, so that we can make up new chants.
After that I switched off and drew fluffy clouds all over my notes.
Overall I think that we have a good enough set of feature requests to get us going. As everyone in the club is too busy to talk to us now, we are going to have to work out priorities by ourselves. We have a
week day to get something together to show the club owner. The intention of the software is to help organise the club, so the fan’s website requirements can probably be put deep into the product backlog!
Now that you have some background to what I am trying to do, the next post will hopefully start getting into some technology.