Making Changes to an IT Business? 47
everythingeverything asks: "Recently the IT development company I work for has undergone many changes, mostly focused on the streamlining of the development teams. Three people have recently been laid off, and massive pressure is being exerted on myself and my colleagues to develop more efficiently and delivery bug-free code. This is great - very positive changes. However it's blatantly obvious to many of my workmates that the sales and accounts team are not meeting their end of the bargain. They consistently oversell our services, write incomplete and inaccurate project specifications, set deadlines and budgets without consulting a TA or a developer, and frequently give in to clients when they want to change the spec halfway through. Management have agreed that there are problems and we have given them detailed research and documented solutions, but nothing happens. How have other employees in similar organisations brought about an effective, non-hostile and mutually beneficial resolution to the problem?"
Old Fashioned (Score:3, Insightful)
Perhaps the best model for an IT company is an old fashioned one -- Start small, don't spend money you don't have, and try to keep your customers happy. If you try to go at breakneck development speeds on a skeleton crew, you wind up overextending the company, becoming unstable, and then falling apart after a few bad quarters.
Slow and low -- that is the tempo.
Fire the salesmen. (Score:3, Insightful)
The only reason they get away with this is the the uppermanagement has let this happen. Your boss should be standing up for you, your projects, and your teams outlook. If you have problems with the salesmen the way you say, you should get them all in a room with everyone involved and figure out who is saying "you guys do this". Why on earth would uppermanagement want to saddle down the salemen, when they sell something and you guys are on salary? If you don't get overtime and someone is making unrealistic goals for you who cares. Not uppermanagement, they are all for the slave labor bit. Sounds to me your in a job that is taking advantage of you, get a backbone, get gone, or bring it to boil. People use people because they don't say anything or standup for themselves. Your scared you might be over payed, or would have trouble finding a job if you got fired. Figure out which it is, face it, and move on.
I say this as a spinless jellyfish that is in the same boat. I recently got a backbone, had it snapped and handed back to me.
Re:Fire the salesmen. (Score:1)
Re:Fire the salesmen. (Score:2)
change the spec halfway through (Score:5, Interesting)
want to change the spec halfway through.
If they are smart they have a clause in the contract for a "change order"
and bill for it.
When I was freelancer , a poorly written spec and a change order clause
was like the client forcing you to take extra money.
Re:change the spec halfway through (Score:3, Informative)
Re:change the spec halfway through (Score:2)
What you want it something like this.
1. Wewill do the work specified by the date specified for the amount
specified.
2. If you change the specifications of the work, or the schedule, we will
change the price on a time and materials basis.
3. stuff happens ( because the spec was bad, and the spec is always
bad, or there is a management change at the client, or they just change
their mind, or their competition does something and they need to respond
4. Profit !!!!!
4. Profit !!!!!
Re:change the spec halfway through (Score:2)
"Wewill" get an extra "4. Profit !!!!!" I guess
Hmm...
Re:change the spec halfway through (Score:2)
If your goal is to profit off your client's stupidity... that's easy. Long-term relationships require profiting off of meeting their needs!
Scary? (Score:1)
Re:change the spec halfway through (Score:2)
And there was an attempt to grossly simplify the whole idea.
But mostly it was a reaction the the comment it was commenting on, which had a link to an example contract that was more or less the opposite of what I had in mind.
The smart contractor frames the whole exercise as bending over backwards to accommodate the customer, thereby saving the customer's ass, and only asking for reasonable compensation for the time the contractor is taking away from other billable projects.
This gets you a steady stream of jobs, because you are flexible, reasonable, and can get the job done, even if you have to make a lot of changes.
I should also point out that usually the person I was dealing with had had the changes dumped on them by their boss.
The subtle form of "you can make changes in the middle of the project work to your benefit" didn't seem to get the point across.
A simple "changes will be billed on a time and materials basis" buried in the bid is all you need, and it doesn't scare anybody.
Actually , that protects the client more than it protects the contractor who could otherwise renegotiate the entire job if the changes are big enough.
Oh, and one more thing, don't get conned into writing the spec yourself.
A few suggestions (Score:2, Interesting)
Have you considered that "give in to clients when they want to change the spec halfway through" may be part of their sales tactic, and that major changes is already in the budget for the project?
In any case the best you can do personally is keep track of the resources spent implementing a project. This will enable the sales persons to better estimate how much a project should cost. It also enables you to provide much better estimates for future projects.
This will of course not help right now, and it could be a bit delicate to point out that they have problems keeping the customers in line. Do you eat with them at lunchtime? If you do then drop a line like "uhhh... that new feature X in project X will take some time to implement"
Do we work in the same office? (Score:3, Funny)
I feel for ya, man. I really do.
Out of anonymity (Score:2)
Seriously, though, there are days when I feel like Dilbert.
In my experience... (Score:1)
In my experience, management fires the techies who speak up the most, leaving nothing but a week-knee'd devel department who cave in to the endless demands of the Marketing department.
See? No conflict!
Re:In my experience... (Score:2)
Engineers are the key (Score:1)
At my company, (granted, we're smaller than you appear to be...), our engineers deal with their engineers. No salespeople to get in the way, and it works very well.
Re:Sharpen the Resume (Score:3, Insightful)
If you like your job enough and the people you work with, my advice is to try to make things better.
Re:Sharpen the Resume (Score:2)
You are not beholden to the company or the industry. Do what's best for you and your common man. That is never wasting time and money on a sinking ship.
Re:Sharpen the Resume (Score:2)
And, as far as my thoughts go re: not jumping ship -- if everyone who can see failures in business processes jumps ship without making some attempt at fixing the problems, you end up with an industry with a poor repuation for company viability, an industry marred by wasted venture capital, an industry that makes people nervous when considering investment. Turnover rate and rate of improvement within a company are inversely related...the higher the rate of turnover, the lower the likelihood that there are enough employees with enough history with projects/business process to improve them. I am certainly NOT blaming all dot-bombs on employee exodus, but it does not help.
Bottom line, if you personally are unhappy, by all means, get out. There's nothing worse than toiling away at a job that you hate. BUT, just because you can see problems does not make you unhappy. It just makes you insightful and a useful tool to your company's management. If/how you decide to present yourself in that manner is up to you.
Re:Sharpen the Resume (Score:2)
I forgot to address this. Yes, I understand where you are coming from 100%. I have been there. It is extremely frustrating. And, if that is really the case, then again, by all means, get out. I just don't think that just because a company has problems with its business process, it means that the company is a lost cause. There are lots of reasons companies can have problems with its business processes...not all are unrepairable. And not all managers are unwilling to consider suggestions from those of us who are in the trenches. If, in your opinion, what is necessary to fix your problems runs counter to corporate culture, then you're screwed. But, if it is just not a part of your corporate culture, then there is hope.
In our company's case, we had the salesperson overselling issue too. We eventually came to the understanding that, for all "large" projects, the company's "Ace" Development Team would be involved from day 1...involved in all conversations with the client...and responsible for educating client and salesperson alike about the technical hurdles their project creates. Do we still have the overselling issue? Occasionally...but it's nowhere near the problem that it used to be. Probably because it only happens on the smaller projects (when it happens) and the scope makes it easier to deal with, usually.
Re:Sharpen the Resume (Score:2)
Replace the MBAs. (Score:2)
The only thing that really works is to cut the problem off at the the root. Get rid of the preppy Ivy-league MBAs who don't know anything about building real software. A lot them are probably hold overs from the
Replace them with seasoned sales/marketing folks who've been burned by over promising before. Best situation is to get some former engineers into the business side who are willing to push back against the unrealistic.
The market ought to be full of good people these days, the trick is to have some software experts on the interview panel, rather than accepting blind recommendations from someone's rich parents' friend (unless you're interviewing prospective US Presidents, rich parents are apparently enough).
Incomplete spec issues... (Score:1)
'course, in our company, the project managers are highly involved with sales, and it's worked well. I don't think we have a full time salesman that isn't our CEO.
here's what i did... (Score:4, Interesting)
i actually really liked the consultant... probably because he ended up telling the owners what I'd been telling them for months (the obvious problems mentioned above). everyone was pretty pumped up for a change.
three days later we were all called to a meeting where it was explained to us that "now that all our past problems have been solved...". i was baffled... we hadn't actually implemented anything the consultant had proposed, we merely talked about it. i stood up and said "I don't understand. What have we done to fix the stuff we've been talking about?" to which I got stares and bewilderment. Everyone was thinking the same thing (several folks told me afterwards), but I was the only one with the balls to actually say it.
I was fired within a week for my "attitude problem".
my point is -- real change is hard; 90% of folks would rather just talk about hard stuff than actually do it to improve their situation. don't settle for any Mickey Mouse shit. good luck! :)
The solution... (Score:1)
Easy (Score:2)
This will be perceived as hostile by the sales team but upper management should be fine with it provided you guys keep good documentation.
The flip side is that if you do sign off on something and slip up the sales team will be all over your ass.
After a few months or a year the good sales people will have straightened themselves up and the dead wood will have left voluntarily.
Good luck!
P.S. This is generally easier to implement if you guys have some skin in the game too... Work out a per-project percentage-of-profit (or gross, profit figures are easy to manipulate) for you as well.
You must be new... (Score:1)
SALES drives the company, you can't change that, get over it. Execution is everything, and we (IT) wind up with our asses cashing sales' checks... thats just the way it works in this fast paced industry.
You have to find a balance and a system, if they are cutting back on people then you will have a tough time, but for developers you ABSLOUTLY MUST have 1 dedicated person for QA. I have tried and seen developers "test" their own code....we try, but we subconciously can't catch the easy stuff.
Here is how it breaks down:
Developer is hired by the company.
Developer maintains legacy code left by previous employee.
Developer gets ancy and an opportunity to perform new development.
The new project is released.
Developer has to maintain "his" project for sales while performing other duties to bring in money and gets burned out.
Developer finds another company, and the whole cycle starts over again for both parties.
It doesn't just apply to the tech sector. (Score:1)
The Scotty solution (Score:2, Funny)
Multiply all work estimates by a factor of 4, then tell them it's 'iffy'.
Ignore their spec, write your own as generic as possible. When they change it 1/2 way through, you bitch and moan, then write the gui that will give them what they want.
Re:The Scotty solution (Score:1)
The problem is that they will not believe you. A realistic estimate sounds horrendous enough. If you multiply it by four, it simply will not be approved.
Ignore their spec, write your own as generic as possible. When they change it 1/2 way through, you bitch and moan, then write the gui that will give them what they want
I actually tried this, except I didn't bitch and moan. Let me tell you, they were really impressed when I used the last month just pulling extensions out of the sleeves, and implementing things they were only dreaming about. I told them about the lazy programmer, and they just kept repeating: "not lazy! smart!".
Technical Involvement in *ALL* Stages of Design (Score:4, Insightful)
You've already got 1/2 the answer there yourself. You've got a good idea of the things that typically go wrong. Now, what can you do to make them typically go right? Of course, there are ALWAYS going to be cases where the client is just a "bad client". You may be making profit on those clients in your books...but it may be "bad profit". Consider not doing work with them again if you (collectively) have made every effort to reign them in. And *always always always* have "post-mortem" team discussions at the close of *ALL* projects to discuss successes, failures, and areas of mediocrity. Again, don't focus on the individuals that failed, if at all possible...focus on the process that failed.
And finally, you think upper management only cares about $$$'s? You're right. So put it into terms they can understand. While they probably aren't as technically adept as you would want, they're also probably not TOTALLY clueless. If you can show, on their terms, where your business process needs help, you've crossed the first hurdle. Show them specifically how much money they lost in cases where salespeople oversold, or were unable to filter unreasonable changes mid-way through the development process. Just don't start such a conversation without also having some ideas on how to fix things.
Make sales to choose an option... (Score:1, Insightful)
When things get busy where I work (2 developers) and they come in and ask for more or changes or this or that or the other thing we tell them how long it will take and point to a board with a list of all the other things they said they wanted and make them decide where to put it.
This makes them realize that this new request of theirs is going to push out someone else's request (or even one of their own).
Balance of power (Score:2)
The best balance of power setup I've seen is part of Extreme Programming [extremeprogramming.org]. In XP, the suits can ask for whatever they want, and they can change their mind every week. The developers get the final say on estimates, and the suits can only order as much work for the next week as was done last week. The developers deliver a new version every week, so everybody can see exactly how the project is going.
This sounds too simple, but it works really well. Every week, the businessfolk are forced to balance their desires with the reality of the development situation. With only a week between data points, nothing can get too far out of whack.
Of course, some bosses are just unwilling to face the fact that for X dollars, they can only get Y features; they will refuse to implement any system that makes that clear. But most people just want to get good software, so they will come around if you put it to them properly.
Preach it brother! (Score:1)
The VP of sales (co-owner) and the vp of engineering (not a co-owner) almost came to blows.
Adobe eventually bought us out and said VP was gone in a remarkably short amount of time.
No one missed him much.
Thats more a war-story than advice... advice... hmmm.
Try to get the sales guys and eng in a boxing match? Heh.
Seriously though. We actually managed to get the prez (the other owner) to read Rapid Development by Steve McConnell (though there are several books that cover similar territory, I personally swear by anything McConnell writes). Half the 'bad examples' in that book should sound Very Familiar to you and yours.
The problem has been identified. RD contains numerous suggestions on how to make fixes. Then it's "just" a matter of putting those processes into place.
Heh.
What you describe..... (Score:1)
Sales Process 101 (Score:1)
It is necessary to train the sales force as to what is actually achiveable - this can be difficult. You are helped greatly by the simple fact that if the product is not on time, or stable, the salesperson looks bad too.
The single hardest thing to do is to find out what the customer really *needs*. To define it correctly, both you and the salesperson have to meet with the customer. This can be a three step:
1) Decide with the sales person what is the information that is needed from the customer meeting. The customer will have a whole bunch of wants, but he will not articulate his needs at all well. You will have to coax it out of him. The summary of this premeeting will be a table - features -> benefits to the customer -> costs. While you are with the salesperson, ask him what he feels will be the next step in increasing his business in the account. This is an unusual question from a techie, and should score you business points which you can negotiate with, later.
2)The customer meeting, itself. Have a presentation as to what areas are do-able, and a relative idea of the costs ( especially elapsed time). If possible, try to block the project up into smaller deliverables, so that there is continued involvement with the customer. At this point you are negotiating what gets built, when. Add feedback loops and kill points so that the risky items are clearly marked out. Don't ever commit to calendar time at this point - the analysis is not done, yet. Formally, this is scoping the project, and is an important part of success in project management.
3) Post meeting: document early and often, and now let the salesperson earn his keep by keeping close to the customer. The salesperson is your interrupt mask - make sure that he is the point man for the effort. Appreciate him, preferably in front of his boss. Sales is a people job.
Most of the grief I have been witness to has been squarly the problem of poor project manangement, unstructured, unprepared meetings, and general cluelessness. You can mitigate cluelessness, and the other things are either under your control, or can be influenced by encouraging the right questions to be asked, or asking them yourself.Hope this helps. It's my personal opinion that the developers should not live in a cave, but should rub elbows with the outside world, from time to time. Large organizations have special people to act as technical bridges, but in a small company, you get to do this yourself...I like small companies for that reason.