Page 1 of 1

[RANT WARNING] Should I stay or should I go?

Posted: Wed Dec 06, 2006 5:18 am
by Skittlewidth
I'd appreciate anyone's thoughts on this matter cos its driving me absolutely mad.

Further to my "I don't think I want to be a web developer anymore" comment in viewtopic.php?p=336381#336381 I've realised 90% of the reason I want to jack it all in is because of one particluar client. I may have mentioned them before.

6 months ago three guys approached us about an ebay style venture for the scaffolding industry (!), coupled with a jobs/recruitment site for construction companies to hire workers through. By the time they'd spoken to the company I work for however, they'd bought two $50 php scripts, one set for an auction site, one for a job listing site and they'd hired someone to try and tie them together to make one wonderful site. At first I didn't understand why the first developer quit (actually, he/she didn't officially quit, I think they just gave up responding to the client until they decided to move the job elsewhere) but now I definately do!

First of all, the two off the shelf systems do nothing like what the clients really want. They don't want an auction, they want a classified ads system, so a few modifications later and thats what we've made the auction script do, (but remember, underneath its still an auction script). The jobs site is diabolical. Submitting a CV should be just a question of uploading a text file surely, but I've just spent half an hour going through a 6 screen process of writing a resume, with many redundant fields that were compulsory to the system but irrelevant to a scaffolder. Although the auction script uses an array of strings to switch between languages, the job script does not, and I keep finding hardcoded sections of english that don't make sense! The system also expected employers to "pre-pay" to use the site - i.e they put £10 into their account and then spend it on posting ads, rather than "pay as you post", so that took a bit of reworking.

Anyway, back in June I had a week to investigate the system before meeting with the client. I advised my boss who advised the clients that the whole thing was best custom built from scratch as it didn't meet their needs. The clients responded with "no lets continue tweaking these two scripts until its completely working". I spoke to my boss privately and expressed my concerns that the system would never completely work. The original scripts were badly written ; the modifcations the first developer tried to make had made the system even more unstable.

2 months into my involvment with the project, at my appraisal I was asked if there was anything I was unhappy about regarding my work for the company. I said this project, because the client was essentially flogging a dead horse. I would be embarrassed to let the public loose on the site, especially as the clients planned to make it a subscription service. My boss replied that although he agreed, it was a good little earner for the company, because the client would keep pouring their money into getting me to tweak it further and further. I meanwhile get to become more and more frustrated with them.

So here we are 6 months later. The site is a year over due (The clients first tried to launch it in Jan 2005 prior to our involvement) and surprise surprise it they're still finding problems with it! Astonishingly they're still finding new problems in places they hadn't even asked me to work on yet, which means its either down to the original code or tweaks from the first developer. The clients have probably spent enough for me to have rebuilt half of the system properly from scratch.

Don't get me wrong, I haven't worked solidly on this all that time, but its like a black cloud hanging over me. Its never going to be signed off and complete because it was designed wrong in the first place. It's making me depressed. I have considered resigning over this because leaving my job is the only way to be rid of the client!!! Am I being melodramatic?
I want to take pride in the work that I do and all this does is get me frustrated and takes me away from more important projects.

So what do I do? My boss isn't going to take the project away from me. As the sole web developer here theres no one to give it to! (a whole different reason for me wanting to leave) Should I look for a new job?

BTW: I was working on the site yesterday and saw that the client plans to charge users £120 a year to use it!!!

Posted: Wed Dec 06, 2006 5:50 am
by CoderGoblin
First off I sympathize. Many of us I am sure have been in a similar position although in my past it has been a salesman in the middle selling something while we were expected to get it to work (salesman got the commission, we had to handle the angry customer).

Things which spring to mind..

1) What is your personal contact like with the client. Do they blame you or do they appreciate your contributions. Getting the client to trust you is very important but you should never "criticise" past work your company has done. It's often a thin line you have to walk.

2) It is very important to manage the clients expectations and deliver to those expectations. If you are the only person the customer has contact with this is more easy than if they talk to several people in your company. If they do you need to ensure a common list of expectations is being set and they are not being promised something by a manager which you know will not be working within the time alloted (the comment good little earner from managment fills me with dread :wink: ).

3) You should have a requirements specification and a technical specification and should concentrate on fulfilling these and getting them signed off first. Any additions once these are signed off need to be approved by both parties.

4) Do you have development milestones ? If not set some and use these these to manage the client expectations ! Open ended things drag everyone down. Getting just one part of the system signed off can be a morale booster for everyone.

5) Make sure you have minutes for meetings with the client and have them "signed off" by all parties. If they need to do something by a certain date (such as test this part) this is then documented.

6) You must realise that no job is ever plain sailing and this sort of thing happens, I think, on a fairly regular basis.

I apologise if you find these comments to be condescending but I found the points useful when I was doing consultancy.

Posted: Wed Dec 06, 2006 6:48 am
by Skittlewidth
Thanks CoderGoblin. No, your comments aren't condescending at all, I appreciate any advice.

Deep down I know that moving job is only going to be a short term solution, and won't avoid the possiblity of such a dilemma occuring again! I do have other reasons for wanting a change - I've been the sole full time developer here for 18 months, and a critisism leveled at me by management recently was that I haven't improved my knowledge as fast as they feel I could have done. I actually agree about this, and I really want to learn more stuff and do things better but the environment isn't particularly conducive to it! I have no-one to bounce ideas off, and the speed at which I'm required to churn things out means I'm sometimes guilty of doing things in a way I know will work and get the job done quickly, rather than making things top notch and tidy from a coders perspective - and I honestly don't want to be coding stuff like those $50 scripts!!!
So anyway, it would be nice to move to a job where I'm in more of an experienced team.

I think the clients trust me, and I don't think they blame me for the state of affairs, infact I think they realise they should have taken our advice but won't admit it. Almost the reverse of what you said in point 2 is the case: There are 3 of them, they don't actually work in the same company and don't seem to communicate well between each other (as a recent email I was copied in on would suggest!) So whilst I am their main point of contact, there can be 3 of them saying conflicting things. Plus as this is a "3 guys had an idea in a pub" type project we've only ever met twice, once with two of them, once with the 3rd guy and all correspondance is via email, because they can't call me during their real job's work hours and they don't want to take time off to come in and discuss things properly. The first meeting we had in the office was at 8pm til 10pm - and I don't get overtime.

Lately I've been doing what they've been asking to the letter, nothing more, nothing less, so I can usually say I am uptodate on whatever task they've got me on.... until the next email rolls in. My boss did contact them last week asking them to lay out more detailed specs in future so we all know where we stand. This has resulted in every email I receive now containing the line "I believe this was in the original spec" (which means "we don't want to be charged more money for this next tweak" lol!)

Well I think I'll have a go at documenting everything I do a little better, and just keep chipping away at it I guess!

Posted: Wed Dec 06, 2006 7:06 am
by CoderGoblin
Skittlewidth wrote:Lately I've been doing what they've been asking to the letter, nothing more, nothing less, so I can usually say I am uptodate on whatever task they've got me on.... until the next email rolls in. My boss did contact them last week asking them to lay out more detailed specs in future so we all know where we stand. This has resulted in every email I receive now containing the line "I believe this was in the original spec" (which means "we don't want to be charged more money for this next tweak" lol!)
I guess now is the time to halt everything. Produce the "original spec" even if it is brand new and get it signed off by all parties. Get your management involved if possible so they can "argue" with the client about what was/wasn't in the original spec, leaving you out of any arguments. You need to make sure you communicate effectively with him/her in terms of making sure things are possible however. In my opinion this is part of the managers job and should have been done at the start. Let the manager be the "bad guy" as far as the client is concerned. After the sign off, at least you have the baseline document to work from to produce milestones.

If it is not possible to produce the "original spec" for the complete system try to produce specs for any "component parts".

Posted: Wed Dec 06, 2006 12:58 pm
by RobertGonzalez
Part of me wants to tell you to go with your gut and keep standing up against the idiotic nature of your clients. But the less emotional part of me is telling you to continue to deliver what the client wants. They get what they pay for, and the pay for what they ask for. Let them keep paying you and you keep documenting your objections to their requests so come review time you can tell your superior that you have 100% delivered on what the clients has demanded, even though you objected.

It's in my nature to take charge.

Posted: Sun Dec 10, 2006 8:02 am
by swiftouch
You do realize this is your own fault. You KNEW from the beginning that the project needed a complete overhaul/rewrite. Therefore you should have stressed adamently from the
beginning that it would be an overhaul or not at all.

That being said, you would have faced the problem when it came to light because you did the right thing at the right time by opposing the rework.
Now, 6 months down the road having not done the right thing at the right time, your misery is prolonged because you didn't step up at beginning.

I would tell my boss exactly what I think. "It's a complete overhaul/rewrite" as I suggested 6 months ago or I'm leaving my job. Sometimes you gotta say it how it is because no one else understands the gravity of the situation.

Re: It's in my nature to take charge.

Posted: Sun Dec 10, 2006 8:23 am
by Chris Corbyn
swiftouch wrote:You do realize this is your own fault. You KNEW from the beginning that the project needed a complete overhaul/rewrite. Therefore you should have stressed adamently from the
beginning that it would be an overhaul or not at all.
I think that's a little unfair. If this was his own company then yes, fine. But when you're effectively "code monkey" and somebody else has the final say on the matter (i.e. his boss) you can't be too abrupt about it. You can voice your concerns but if they are not heard then you're stuck.

Clients I can (mostly) deal with :) I have seriously almost got up and walked out of my job on the spur of the moment a handful of times because of my boss' attitude though. My boss isn't a developer. He just runs the business side of the project and actually has absolutely no idea what we (the developers) do. The problem here is that he keeps promising paying clients that we will give them new features by a certain date without actually consulting with us to be sure we can do it in time. As a result we have two huge whiteboards full of overdue work and the boss keeps telling us that we're not working fast enough because all he sees is the pretty front-end. There's two developers and we both are stressed out at work. I'd never leave this work field though... I'd just work for somebody else :)

Posted: Sun Dec 10, 2006 9:55 am
by RobertGonzalez
You know, it is kinda like that for me at work. I took the job I am in September. This was about three months after the initial spec for the project I am on was written... by a different department. Our IS department has been essentially given the task of a massive Phase 1 release of the company's new enterprise application for the web by a deadline that IS had nothing to do with. There are several features that the core development team feels should either not be in the initial release or should be limited in scope in the initial release. But the originating department feels that there should be no limitation as to what we offer in the release. It is a little tough, knowing that some corners are being cut or things are happening that, if it were my project, would be done totally different.

But the fact remains that I am the code monkey they hired to put their dreams into a working reality, so I am giving them exactly what their spec calls for. If I object and they push back, then I give them what they want until it breaks, then fix it later with a small 'I thought this would happen' to remind them that I am not some dork with a computer that codes a few hours a night. I am a professional that sometimes knows what I am doing. :wink: