Musings by Generator

Development, Life and everything else in S.A.

Why a good design is a must !

I am busy trying to wrap up development on PLMS (Prediction League Management System), and all I had to do today was the last configuration screens and the email module, not more than 3 or 4 hours work at most, until I discovered a flaw in my design.

The fix for the flaw was so large that it changed the whole structure of the application, adding in two more base Controls for the screens to work properly. This added about 3 hours development time and I have just finished testing the application from start to finish to see that everything works, thankfully the change went off with no major complications.

I realise that if I had done a decent design session before I had started coding instead of make design decisions as I go, this flaw would have been seen a long time ago and I would have avoided the extra 4 hours of work, and in hindsight, I should have known better considering I develop massive applications for a living.

So my lesson for you in this very short post is this:

No matter how soon the deadline is, you must always do a design session on the application. Make sure you include All areas, UI, Business end (saving, loading etc etc, all the typical backend stuff), How the flow will happen behind the UI (Base classes, common code, constants, enums etc etc), even your database, if you are using one, will benefit from a design session too.

So now, I am going to try and get the work I set out to do today done, hopefully I will not have to make any more design changes.

Predictions Software

I took part in a prediction league with friends during one FA Premier league season a couple of years ago. I didn’t take part in later leagues as I did the admin work, using spreadsheets, and it was a lot of work.

The idea was that every week I would email out a spreadsheet with the fixtures for the week (Friday to Thursday). The spreadsheet would have columns for each person taking part and they would each fill in what they think the result will be for each game. After the last game I would put in the actual result into my master sheet for the week and then allocate points to each person for each game, at the time I think it was 6 points for a home win, 7 points for an away win, 8 points for a draw, also if they got the score right, extra points ( i think 2). At the end of the season, the person with the most points wins the season.

I have been working on an application using C# (DotNet 3.5), and using a database file (mdf) . The premise of the application is that it will allow a person to manage this prediction league. I have been battling on how to automatically work out the fixtures for a season when the user indicates which teams are in the league, so for now I have settled on generating a complete fixture list based on the number of games the user indicates, and when they do the weekly email they will have to select which games will be played in that week.

At the moment, you can set up new leagues/Seasons, create new Teams and Predictors, and Setup fixtures for a season.

Eventually, the user will be able to use this application to email the weekly fixture list out, it will automatically calculate the persons scores from actual results. I have other features in mind, like expanding it to include world cup type formats etc etc, so that it can be used for any sporting event as my friends do really like placing friendly bets with each other, but those will have to wait.

I will try to post screen shots soon of the application, and keep this blog updated with my progress, which is slow at best since I work on it after hours at home and by  the time I get home, the last thing I feel like is doing more work infront of the computer.