Why my project failed.January 13th, 2010
Last year I worked on a project called weproudlypresent. Below is the story of how it came about and why it failed. I will talk about the lessons I learned.
Origins
I have been a member of a variety of forums over the past few years and quite a few people have me on their list of contacts. I first heard about this project by someone asking me if I was interested in working on a project. I never commit to anything immediately and instead sought some more information.
The project was to create a music site for unsigned bands. We would showcase their music, allow them to market their music, create and sell merchandise and generally build up a fan base. I thought this had some potential, especially if marketed correctly so I agreed to come on board.
The Problems
There were a number of problems to begin with. The person who came up with the idea had contacted a lot of people through various instant messengers. Some were simply not up to task. I do not mind working in a large team of skilled people but there is little point in working within a team largely unskilled. To better understand this, their are professionals, hobbiests and people who know a bit of HTML and call themselves a designer. We had quite a few of the latter. In a long e-mail I explained why the project would be better off without these people and the first problem was solved. Our team of 11 dropped to a skilled team of 4.
The second problem was the brief. We all had grand ideas and the brief grew very big. It was a massive list of wants. This was one of the problems that we struggled and ultimately didn’t solve. We didn’t want to scrap any features as they were all good. At the same time we knew version 1.0 couldn’t have all of these features. Half would have been a good achievement. As we never all agreed on a 1.o brief there was no defined end point and this was a problem.
The third problem and by far the biggest was the lack of management. If you want to get a side project done you cannot treat it like a side project. You need to set time aside each day to work on it. This will ensure the project gets the proper attention it deserves and actually gets done. This philosophy didn’t exist in the beginning and the general consensus was ‘if we say we will do it, it will eventually get done’. The person in charge did not set goals, instead he set vague aims and kept pointing towards the launch date. If a person has 4 months to do something where is the urgency? The lack of management also meant some poorly scheduled and controlled meetings which lead to half our time waiting for everyone to attend and the rest of our time getting off track and everyone leaving none the wiser.
I did eventually solve this management problem but it was probably a little too late. I took over the project. I set a weekly meeting time. With each meeting I listed the things we needed to resolve in advance so everyone came prepared. I set everyone a task with a deadline. These tasks were just small sections of programming and design that needed to be done. Slowly the project started to grind into action.
Then it failed. The final nail in the coffin was a lack of motivation by 2 team members. There is a very big difference between wanting to do something, saying you will do something and actually doing it. They talked a good game and there were a lot of promises but when week after week they had nothing to show it got a bit tiring and leached the motivation of other team members. This was ultimately the reason why the project failed.
Lessons
The lessons learnt are as follow.
- Creating an ultimate feature list is fine but the most important thing is to create an achievable v1.0 feature list.
- Make sure you have the right team together, if someone isn’t up to it, let them go. It will be better in the long run.
- If someone cannot manage very well, spot it immediately then help or take over. A successful project is a well managed one.
- Ensure that everyone knows that while the project is built in their own time, they need to set time aside each day to work on it. If they cannot agree to this then you are going to have problems.
- From day one look at creating a very limited Alpha. You then will have something to show for the hours invested.
I haven’t been put off working on projects and I hope to work on some more this year.
If you have been working on any projects that haven’t quite panned out feel free to post why.
Posted in General, Observations, Web Development | 2 Comments »
2010 – My Year in a blog postJanuary 1st, 2010
2009 was a year of 2 halves. The first half of the year was hectic, disorganised and I would very much like those 6 months back. The second half of the year was brilliant. I am determined to ensure that 2010 follows on from how 2009 finished off. This post covers some of my goals for 2010. As with last year these goals are all achievable and are all on-going throughout the year.
Before setting goals I think it is important to ask why I am doing it. The new year is a great marker, its an opportunity to draw a line in the sand, reflect on the previous year and give your life a kick in a slightly different direction. Time flies and it is easy to get consumed by the small day to day emergencies and lose sight of the big picture. Each new year I zoom out slightly, survey the landscape ahead and think about the following 3 questions.
- Am I happy where I am now or is there somewhere I would rather be?
- Is there anything that I should be doing but am not?
- Is there anything that I would like to achieve this year which I need to plan for.
The answers to these questions usually define my goals. These goals then become things that I try to tackle throughout the year. These are the things I have come up with. (All goals are techie based, I have separate personal goals such as go to a music festival, sky dive and perhaps finally propose to my girlfriend on a separate list.)
Release Software:
In Q1 of this year I would like to release some software. I have been working on a framework for a little while now and I would like to make this freely available. It is easy to extend and a great starting point for small projects or for people looking to build their own. It is reaching the point where I am building a website with it, locating niggles, adding missing functionality and rewriting core code every other day.
I simply feel it is time that my name went on something open source and freely available. I feel that late Q1 / early Q2 is a realistic and achievable release date.
Publish Blog Posts on other websites:
This was a goal in the final part of 2009 but I didn’t get round to it. In 2010 I am setting the rather lofty goal of writing 12 posts. That is one a month. I do not expect this to be difficult, it simply requires a small amount of organisation to find time to work on these posts. These posts should be a step toward defining myself as knowledgeable in certain web related fields.
Redo Stanley Web Design
Stanley Web Design is nice but it is a year old and has a few small things which are bugging me. I will be creating something simple which better carries the brand message and is easier to extend than my current website. I hope to have this launched in the first half of the year. I plan to build the website with the framework mentioned above. With these working in tandem I expect them both to be completed around the same time.
Improve my blog
I do not mind if someone reads what I write or not. I blog so I can keep a written record of what I was doing or thinking about at a specific time. In a few years time I can then look back and see what I was up to work wise at the time.
This said I want to improve the design, coding standards and javascript magic on the website. I feel that I can still improve the readability and aesthetic look of the website and this is what I hope to do. I also plan to post more.
Learning
The world of technology moves forward so quickly. It is important to keep up and this year I have set 3 goals to stay on top of things.
Goal 1 is to take my PHP skills up a notch. I am very good with PHP but there are still things that I am not great on. Things like SOAP, working with images and getting to grips with some of the PHP5 features are all things I could and will work on.
Goal 2 is to further my JavaScript and Ajax skills. I know enough to use JQuery well and can edit almost any level of JS. However, I would like to write better JS and better understand AJAX. This will be the year it happens.
Goal 3 is to do with PDO, Doctrine and Security. I will be covering these in later blog posts.
Photography / Art
I have a £700 camera which is gathering dust. I have a numerous ‘unsketched’ sketch pads. 2010 will be the year I finally learn what the buttons do on my camera and take some pictures. I am looking to take a picture a day and sketch something once a week. To ensure this is achieved, an event will be added to iCal. This I hope will help fuel my creativity and pull me away from my TV and xbox in my free time.
That is about it. These goals will punt my life a few degrees to the left and push me more towards being an expert than a jack of all trades. If you would like to comment on my goals or add your own, as always, feel free.
Posted in Uncategorized | No Comments »
RaTM get to XMAS no1December 20th, 2009
I brought the Rage Against the Machine (RAtM) single on Monday. I had watched the X Factor and enjoyed it for the past month or two and this post is a brief update on why I brought the RAtM single and why RAtM being number 1 this year matters.
Firstly, my problem with X Factor is the judges. I like Joe, I enjoy the X Factor TV show. However, the judges (Louis and Simon in particular) appear so up themselves its ridiculous. Each week they tell a contestant that they will be in the final. During the final they say that the contestant will be number 1 this Christmas. The arrogance of it is infuriating. This was why I purchased the RAtM single.
I don’t think that anyone should assume that they will get to number 1 and this shows what you happens when you do.
I have nothing against Joe, I think he can sing very well. I think ‘the Climb’ is bland and boring and a terrible choice for a single. Of course I am sure that there are many preteens who would disagree. Joe will almost certainly get to number 1 next week. This will have no baring on his future. If anything Simon Cowell has learnt a lesson.
As for RaTM, they are giving much of the proceeds to charity, they got to number 1 thanks to a Facebook movement. (Something never done before and something that will probably be copied for years to come.) The Facebook group made this weeks chart an event and it made people feel like they were participating in something. For no cost, a few people got together around 800,000 more people to buy a single at a specific time. Meanwhile, SyCo + Sony spent goodness knows how much money making singles, organising press events and promoting Joe’s single. Its great stuff.
Its been a fantastic week and has once again showcased the power of social media. Congrats goes to RaTM and everyone that brought the single
Posted in General | No Comments »
Personal ProjectsDecember 8th, 2009
In my opinion for a developer there are few things that are more important than working on personal projects. Personal projects typically do not matter whether they succeed or fail. They give you an opportunity to go in your own direction and perhaps most importantly, experiment with new technologies you would otherwise not use.
While many of my personal projects never see the light of day, – This is something I would like to rectify – I certainly enjoy doing them. Where client work can be stressful and limiting, personal projects can be liberating and help a developer re-find some lost inspiration.
My Personal Design Projects
I have 2 examples. This website and Wordpress SOS. I own both, to be honest, for the better part of a year both sites have been somewhat inactive. I decided both needed a face lift. I located 2 old designs which I made years ago and had a race against the clock to convert them into Wordpress templates. I set aside an hour for each website.
This website was sliced and erected in just under an hour. It isn’t perfect, comments especially look acceptable but under styled. I am sure that some browsers may look a little rough. This all said it was fun. I wrote the vast majority of the stylesheet without testing until the very end. Then, with minutes left, I touched up the numerous little issues. I even had a few people watching me do it which was interesting and they gave feedback throughout. A client would have never OKed this work, especially not on a live website. However, this is a personal project and I wanted to see what I could do.
Wordpress SOS did not fair as well, I ran into some issues. (I lost the admin account) and the result was that the fresh install ate up about 25 minutes of my design time. The result of this is a header! More is styled but it certainly isn’t ready to be displayed. If I did this with a client site I am fairly sure I would get a slap. As a personal project though it is an interesting experiment.
My Development Project
I am a CodeIgniter developer, I have been for years. I know it pretty much inside out and I enjoy using it. However, I used it for so long that the boring parts of coding that it protects me from have become a little interesting. Things like database abstraction layers, validation classes which I haven’t written in ages interest me. As a result I have started messing around with my own framework. Will it ever be released? NO! Will it ever be used on a live site? I REALLY DOUBT IT!
However, while it is in mind a dead end project, it is also making me a better developer. I am looking more into the architecture of applications. – Something that I haven’t done in a while – I am playing around with namespaces and inheritance and seeing what I come up with. Client work would never let me do this. However, in my own time, its interesting and somewhat freeing. What I learn in this project will no doubt be used in part on future projects.
My Client Management Application
Something that I have been wanting to have for a while now is a client management application. The features of the application are as follows.
- Clients can register
- Clients can view on going projects
- Clients can request a quote
- Clients can view milestones
- Clients can download finished work at any time
- Clients have a standarized way of messaging me
While I know that there are applications around that can do this and much more. I have been unconvinced or disappointed with either what they do or the way they do it. I plan to come up with something and either release it as open source or charge a nominal one off fee.
As for what I will use to build it. I keep jumping around. First of all I was going to use CodeIgniter, then I was going to use the framework mentioned above. Now I think I will use Solar. While it is still in alpha it looks very interesting and I always enjoy playing with new tools. I will also be writing about my experience’s with Solar as I go so stayed tuned.
Posted in Uncategorized | No Comments »
A lesson in OutsourcingNovember 26th, 2009
I have a problem, in scheduling my work I have shot myself in the foot and put two complicated projects on top of one another. I have a choice, I can have a week of late nights to make up the time or I can find a web developer to pick up some of the load. I decide to go fishing for someone to build a Wordpress plugin.
The Assumptions
- Everyone bidding for this project will be capable of completing the project
- The worst a person can do is provide me working – but substandard – work
My Goals
- Get the lowest price possible to keep up my margins
- Find someone who can turn around this project in 2 days
The Reality
- Not everyone bidding for the project was actually capable of doing this project
- The worst I could get was something that didn’t meet the very specific brief and didn’t work.
- The person I picked cannot speak English and is only familiar with canned answers.
In my rush to secure the lowest price and fastest turn around I didn’t properly vet the person I selected. I gave them the work and left him to it. 2 days later I am sent something that I didn’t expect. The developer copied and pasted the functionality of as many video plugins he could find into one single plugin. He didn’t include any code to let Wordpress recognise the plugin. Even more worryingly. On closer inspection, in the 1800 line plugin he sent me. 0 lines would have achieved the goal I set him.
I figured that considering the tight deadline and low budget the developer would send me some working, ugly, ‘hacked together’ code. I could then spend a few hours on it to tidy it up and get it up to the standard that my clients expected. Unfortunately this assumption was wrong. I got my money back from the developer. Gave him a bad a review and stayed up very late writing it myself.
Funnily enough a week later I had another project to post. The same developer got in touch promising results, promising to make up for what had happened. I am fairly sure he still doesn’t understand what Wordpress is.
The lessons I learnt.
- Ask the person lots of questions to fully gauge their English skills
- Examine their portfolio more closely to determine whether the work is actually theirs or a copy and paste job
- Approach people that work weekends with caution
What is your experience with outsourcing? Do you do it? Have you learnt any lessons from hiring outsiders?
Posted in General | No Comments »