This section is under re-development. It is not finished, and not fully functional. The current
development stage is pre-alpha and as such, not every feature is even implemented yet.
One more step along the road I goHow do I start a post after so long of not posting? Do I bore you with the usual “it’s been a while” and promise not to dissapear again? I’ll save all that and just accept the fact it might happen again. It all depends on how I wish to use this blog from now on. I cannot believe how long it has taken to do the last job. It was the company’s most ambitious job they have taken on so far, and all I can hope is that lessons were learnt across the board. Let’s start with the communication barriers. Take one manager who isn’t, and never has been, a developer. Take a PA who does what she is told very well, and a developer. The process starts.
I’m sure by now you can see the problem. Everyone had different degrees of detail. PHP cannot “smoothly animate images across a page” – Javascript can, but this turned out to be a disaster. Take into account that the Javascript was polling the server every two seconds to see what it needed to do next – on top of that it was supposed to handle animations. By now you should be thinking of Flash, which, if we used it from the start (Which would have been the case if the developers were the ones to actually sit down with the client and find out exactly what she wanted), the project would have been done quicker, and better, because it would have been completely in its own league. Instead, we had a bunch of languages designed to put information on a page, trying to run a game of poker, developed by someone who had never played it poker before. The code we first used was awful. It did the job, but felt like it was written by someone who had just started with PHP, which, if so, would have been an achievement in itself because of the amount of code, working flawlessly. The problem was that variables were given stupid, non-self-explanitory names, the same loops kept appearing in different places (rather than a nice function somewhere), and the general file layout, and “common” tasks to each page were very…shameful. After a few weeks trying to use it, we scrapped it, and I wrote it all from scratch, using an absolutely huge “table” class, which stored an array of “seat” classes. Tasks for the game were broken into steps, and intuitive functions were created to handle each problem during the game. Some of these tasks took far more code than expected, especially working out who won, and with what. The biggest problem in the end turned out to be mostly my lack of understanding of the game. The rules I was basing it off didn’t include “side pots”, and different rulesets would miss out parts of other rulesets. The last couple of weeks were just awful – trying to plug in bits of code to get the class to understand the different rules turned out to be one huge, horrible headache. Every day felt like a drag, as I would spend hours trying to fix one thing, without the help of a debugger other than echoing messages throughout the class, or dumping them to the database and checking the last few hundred records to see what was happening, in which order. The reward for getting that task done, other than a vastly improved understanding of web development, is the next task. One worth £22,000, which is over twice as large as the previous most expensive, ambitious project – which was – you hopefully guessed it, the poker site. Regarding my previous post – I was promoted just before breaking up for Christmas, and have granted the company the ability to take on projects that previously would have been close to impossible for them. They have rewarded me rather well in return too. It requires more responsibility, but has paid off any debt I had before, and then some. I won’t pretend everything is fancy dory though – a full time job doesn’t half take up your time. It would be different if I went home and did something completely different, but programming is my major hobby too. Finding the balance between the programming, and doing something to break it up a bit is a challenge in itself – the simple approach is to not let something dominate your life for too long – break it up, do something different, then dive back in. |