Fog Creek Software
Discussion Board




Significance of the Quark Fiasco

Surely the significance of the Quark fiasco, raised by King David in a previous thread, is that it's one of the few offshored projects where the results are visible. In fact, the work process is visible too.

A problem with the outsourcer approach to software development is the view that it's a factory process, typified by Indian firms's dependence on CMM-5. The fact is there's a lot more to hiring good developers and developing good software than just hiring 12 CS grads.

I think the factory view of software ties in with Indian caste cultures too.

analyst
Sunday, November 16, 2003

If you judge its visibility by the number of inane questions on mailing lists, shouldn't successful projects be less visible in this way?

Did the US dotcom boom carry no inane queries?  Won't it take time for Indian programming culture to mature?

Are they dependent on CMM or is it just a useful marketing differentiator?

All these questions quickly come to mind.  Do you have the answers to them?

anonymous
Sunday, November 16, 2003

US Dotcom boom - typified by poor management.

Failed offshored projects - typified by poor management.

US Small Business successes - typified by good management.

Successful offshored projects - typified by good management.

Hmmm...

Philo

Philo.
Sunday, November 16, 2003

Philo,

According to your theory, and in contrast to the OP, Good Management + Bad Developers = Success.

I dispute your implied claim that good management can overcome the effects of bad developers. And if you are saying that good management by definition hires good developers, I can point you to numerous successful projects in which good developers have offset the effect of bad management, disproving your claim.

Despite Joel's recent claims, there have been studies done of projects success with relevant results. One result is that good developers are the #1 predictor of project success.

King David
Sunday, November 16, 2003

Good managers don't hire bad developers and if they inherit them they get rid of them.

The decision to fire the original developers and hire all new ones is a sure recipe for disaster.

To send a MacOS port off to a country where almost nobody has used a Mac is even more asinine.

The stupidest manager I have ever met was an American - he was a walking advert for the vegetative nervous system. His assistant, who was highly competent and hard working was an Indian. One day we were talkng about his immediate boss, and he took me to task - the really stupid people he said where the Saudis who hired him in the first place.

I've got three or four workers moving a door from where it was to further down the wall. A short job but if they make a mess of it, (and they aren't) it would be my fault for hiring incompetent builders instead of competent ones. I certainly would not make any generalizations about Sri Lankan builders being good or bad on the basis of that one job anyway.

Incidentally the Quark fiasco is not the first case of messy software coming from India - Oracle Developer 2000 was developed in India, I'm told, and it sucks.

However there are other companies that are satisfied that what they are getting from India is OK.

Stephen Jones
Sunday, November 16, 2003

I think the significance is as follows.

1) The new owners of Quark clearly held developers and the development process in utter contempt, the managerial culture "computer work is filthy" mentality at work. It doesn't matter that their core product is software, they saw it as generic production work that "could be done anywhere."

2) These executives, being greedy and stupid (a typical combination) believed that they could get high quality brainwork for almost nothing. They looked for someone who would dance when they shot at their feet. They found them.

3) I suspect that a cultural bias in favor of servility (exemplified in #2) was at work too. Managers utterly despise backtalk from "their" people, even when the dispute is coming from someone who is well educated and highly experienced. Very few top-notch American developers will kiss anyone's ass. I think that waving a bunch of US greenbacks at workers who would otherwise be paid a few dollars a day in menial jobs in their home country must be part of the feeling of power that the jackasses at Quark must have sought. Or at least it helped cement the decision.

The biggest sin I see in this picture is gross failure to exercise due diligence. Instead of "best" Quark shopped for "cheapest".

Bored Bystander
Sunday, November 16, 2003

King David,

The book Joel just recommended has this for its very first point: "The most important factor in software work is the quality of the programmers".

Scot Doyle
Sunday, November 16, 2003

Yea, Bored Bystander has got it dead right.

And of course the Indian developers are too far away from management to complain anyway - although apparent conformity is possibly more of an Indian "virtue" than a western one.

And don't ignore the linguistic factor.Often people say "Everything's OK" because trying to give a more detailed view inovolves a lot of overhead in a foreign language.

Stephen Jones
Sunday, November 16, 2003

Scot,

Thanks for the correction.

King David
Sunday, November 16, 2003

Bored,

Do you think that one of the advantages of American developers is that they are "unlikely to kiss anyone's ass"? In otherwords, will a team of competant but uppity and troublesome developers produce better reselts than compenant but servile and unquestioning developers?

If yes, then a followup question would be is a willingness to talk back, thereaten to resign, and refuse to follow idiotic commands from management through subterfuge a necessary element of being a compentant developer?

King David
Sunday, November 16, 2003

"Will a team of competant but uppity and troublesome developers produce better reselts than compenant but servile and unquestioning developers?"

One man's 'uppity and troublesome' is another man's 'honest and outspoken'. Yes, developers who are well trained and willing to stand their ground when it's appropriate WILL produce better code than "competent" door mats (a trait combination I doubt is even appropriate, but it was your straw man).

Brad Wilson (dotnetguy.techieswithcats.com)
Sunday, November 16, 2003

I'm honest and outspoken myself, but I also am aware how this valuable and critical contribution to project success is viewed.

King David
Sunday, November 16, 2003

You asked about project success, not about popularity contests.

Brad Wilson (dotnetguy.techieswithcats.com)
Sunday, November 16, 2003

My two cents:

Cent #1: Being based in India, I know some people who worked at Quark, India and hence have some idea of how Quark India was run. The general impression was that the entire emphasis was on running on low-cost operationa and for this they hired low-cost (even by Indian standards) fresh graduates out of B-grade colleges and did not bother to hire any experienced talent. They also opened their software centers away from cities into weird locations where most self-respecting developers will not relocate.
IMHO, you can get pretty good (of the same quality as US or better) developers in India at about half the cost but Quark (and many other companies) try to run their Indian operations at about 1/10th cost. (just comparing Quark salaries to what they are at my establishment).

Cent #2: IMNSHO, I have seen American developer kissing asses and taking shit from their managers much more frequently than in India. I think it has to do with how easy to fire someone in US compared to India. (In India, it is almost impossible to fire *anyone* in a large operation. Labor laws here are still socialist. So, in many organizations it is the other way around. Managers take shit from their workers just to get the work done).

Tarun Upadhyay
Sunday, November 16, 2003

I want to first state that I am somewhat uncomfortable with my #3 characterization (above) since it appears to disparage Indians. I'd pull it out or rephrase it if I could. But I do think that inequality of economic power is "useful" by some people's philosophy of management.

>> Do you think that one of the advantages of American developers is that they are "unlikely to kiss anyone's ass"? In otherwords, will a team of competant but uppity and troublesome developers produce better reselts than compenant but servile and unquestioning developers?

I think there is a "Socratic tradition" in any team based professional work that must occur if you're going to produce a quality product. If you stifle this process, you'll produce crap, because it's basically saying that part of the vital communication channel is missing. (To which the typical asshole executive type would respond that it's not necessary to hear from developers until they're "done.")

>> If yes, then a followup question would be is a willingness to talk back, thereaten to resign, and refuse to follow idiotic commands from management through subterfuge a necessary element of being a compentant developer?

I think having subordinates who use their power moderately and selectively imposes a degree of outer bounding discipline in most organizations, even the military. "I only followed orders" is always a pretty lame excuse.

Bored Bystander
Sunday, November 16, 2003

Thanks Tarun,

Sounds like the docile foreigner theory we hear a lot about is a nonstarter. I think you're right that not standing up for oneself is a problem here, and it can be partly attributed to the labor laws - even professors don't get tenure anymore (rarely at least) and thus even in academia we are seeing PhDs scared to speak out against obviously bad ideas for fear of losing their jobs.

Extremely interesting point about the quark team and glad to see the rule of thumb on relative developer costs.

King David
Sunday, November 16, 2003

Philo said:
"US Dotcom boom - typified by poor management.

Failed offshored projects - typified by poor management.

US Small Business successes - typified by good management.

Successful offshored projects - typified by good management."


King David countered:

"And if you are saying that good management by definition hires good developers, I can point you to numerous successful projects in which good developers have offset the effect of bad management, disproving your claim."

King David needs to take a few logic courses. Then we'll talk.

Philo

Philo.
Sunday, November 16, 2003

I do have a few data points on imported developers from the aforementioned country.

I worked with one fellow whose manager (the latter a REAL c*ckmaster) would absolutely not allow this guy to take his scheduled vacations - the project was always more important. The poor kid hadn't seen his family in India for about 4 years. I considered this absolutely outrageous.

Also worked around several tech leads with this background who seemed to do nothing but parrot upper management's party line to the "T". Even if someone *has* to follow their orders I tend to respect those who indicate some degree of cynicism with respect to the absurd.

And worked around another such fellow who rose quickly through the management ranks and eventually became a key exploiter himself of the low-salary flyover country aspect  of this area.

Indians I've worked around have tended to either be really obnoxious, really docile, or really controlling. Not much gradation in style. And this proves absolutely nothing....

Bored Bystander
Sunday, November 16, 2003

Bored,

Thanks - great point on communication. Important to have freedom of speech in companies, cultures and countries, or really dumb ideas will get pushed through. Fortunately in a larger society with many companies competing, this will favor the organizations that have a culture of allowing questioning. I am reminded of Bill Gates habit of frequently telling people "That's the stupidest thing I've even heard" and encouraging his subordinates to say the same thing back to him when appropriate.

Regarding your #3, I think it's an important point and to run opened my eyes as to a key point of it. If we allow 'culture' not to be east vs west, but rather Authoritarian organizations vs Nonauthoritarian, then it becomes a valuable thing. Personally, I think of india as being rather western in many ways as far as individuality and questioning goes, say compared to japan. India has a very long tradition of questioning everything and expecting well thought out answers -- this is one reason for example why western missionaries (as one example) with shallow understandings of mystical subjects find it very difficult to be taken seriously by Indians who have a lot more experience seeing many sides of a subject and exploring it in depth.

Of course, getting back to the questioning thing, poor developers can have an 'attitude' as well, but their main problem is with being a poor developer. Every team (I think) in ALL fields (academia, religion, government, development) needs people who will push back and continually and intelligently question the status quo -- this is the basic advantage of a free society.

Many corporate environments, like many countries in history, 'evolve' to become totalitarian authoritarian regimes at which point all scientific advancement comes to a screeching standstill due to the lack of communication, as you pointed out.  These regimes are destined to become irrelevant provided there exists an outside world to escape to.

The use of questioning and challenge, as in the Socratic method, yields very important advantage in all fields.

King David
Sunday, November 16, 2003

Philo, are you not saying that the key predictor of project success is the quality of management and not the quality of developers? It sure sounds to me like you said that is the case. I know of NO projects in which bad developers and good managers gave success and I know of many projects in which good developers were ablee to overcome the obstacles of bad management and deliver success.

King David
Sunday, November 16, 2003

Since he slammed me, I will mentoin that I found the celebrated decisions of Philo on the Camel project to be questionable for reasons we are discussing here. I propose that if Philo was a good developer, he would have pushed back at incompetant management. His addiction to the idea that developer skills are irrelevant to project success compared to management skills are evidence of his general pattern of abandoning projects headed by bad management rather than trying to buy management a clue and deliver success, as any good developer would do. Philo's pattern of blaming others rather than identifying his own failures to provide solutions identify him as a toxic developer who brings failure to projects through his apathy.

Bad management, unfortunately, is endemic. If you run away from bad management, you will leave behind a string of failed projects. This leaves you as a bad developer. A good developer is able to succeed despite the ubiquitous bad management.

King David
Sunday, November 16, 2003

King David & Philo...

I agree with what BOTH of you are saying but in a certain context in each case. 

King David: "And if you are saying that good management by definition hires good developers, I can point you to numerous successful projects in which good developers have offset the effect of bad management, disproving your claim."

I think this is only valid in considering the success or viability of any particular project itself. I think the hierarchical nature of organizations tends to win out over the longer run.

IE: yes, of course, some good people with common sense can sometimes create an enclave and can have a success.  But one project does not "make" an entire company. If the management is bad or rapacious, the success of one enclave of goodness within a sea of badness isn't going to make much difference at all.

In a broader view, I agree much more with Philo: good management will eventually influence hiring of the right implementors in a concerted way.  Bad management will acquire good implementors only through chance and will tend to drive out good people because bad management will eventually drive those people *nuts*.

With regard to King David's assertions re: the Camel Project, I'd say that there really and truly is only *so* much that a developer can do politically, especially someone who is a contractor. In most companies, even an FTE is fortunate to not be booted out for contradicting management, and the opinions of people beneath the level of architects and designers is generally considered irrelevant "noise".

In summary: I do believe in revolution from the bottom-up (I grew up in the 60s so it's "ingrained"), but doing so requires *so* much tenacity and so much risk-taking that most people don't find it worthwhile. In other words, it's a great idea, but almost impossible to implement. The owners and managers of companies have dominance over cultural aspects as well as organizational quality.

Bored Bystander
Sunday, November 16, 2003

The thing about this Quark project, and I'm sure a lot more like it, is that "India" and "outsourcing" have become a cover for cost-reduction measures that no-one in their right mind would consider otherwise.

No-one would take a high profile, high expertise product and shift it in America to a team of cheap B-graders. But put "India" in the equation, and assessment of quality seems to fly out the window.

I'm sure this will correct itself after a few years. But plenty of time for CEO's to do more damage.

analyst
Sunday, November 16, 2003

It's true that good management can engender long term success... by hiring good developers, compensating them well so they stay, and giving them ownership of their projects. But the key to it all is still the good developers. Without them, success is impossible. Good developers are necessary. Good managers are a great thing to have, but are not necessary.

Regarding Camel, I assume Philo is extremely technically well-qualified, and I believe he is. Yes this is not sufficient to be a top developer. I read his blog and was eagerly awaiting Philo's showdown. Instead, Philo posted how dumb and clueless management was week after week, apparently too scared to lay it on the line for management that the project was doomed. He had no qualms in telling the rest of the world though. In the end, he was fired for not working enough hours. Wouldn't it have been better to be fired for telling the management he truth? Being fired for taking too many hours off is just lame. Being fired for standing up to incompetant management at least proves you have some balls and care about project success. Philo's attitude is exactly like some Latin American buraeucrat -- content to let the powers that be deliver failed results while he sits back and smartly complains about how hopeless it all is.

Is it any of my business? Yes it is because the project was paid for with the taxpayers money -- that is to say with MY money. And I resent the fact that Philo just cashed those paychecks I paid for while the project went to hell and he didn't do a damn thing to stop it.

King David
Sunday, November 16, 2003

"Philo, are you not saying that the key predictor of project success is the quality of management and not the quality of developers?"

umm...yes...

you are a little slow, so Ill take you through the logic gently...

Obviously if the management is totally incompetent there is at least a _chance_ that they will (accidentally) hire good developers.
_if_ they do that, there is also at least a chance that they will _not_ sabotage said good developers....
If both those chances come up, then we still have to bet on the managers _not_ stuffing up the marketing, the distribution decisions, etc etc etc...

so, incompetent manager == very very very small chance of project success

OTOH
a competent manager is _very_ likely to hire competent developers, or if not then they are _very_ likely to recognise the fact and fire them again pretty quickly.
They are also _very_ likely to get everything else right.

so, overall...if a particularly project is a resounding success I would bet an awful lot that it had a competent manager (and therefore competent developers, competent salesmen, competent distributors etc etc)

If the project is a resounding failure, obviously its very likely indeed that the manager was incompetent (and therefore made other incompetent decisions and hired or failed to fire other incompetent staff)

management _is_ the key predictor of a projects success.

"I know of NO projects in which bad developers and good managers gave success and ..."

here we are clearly arguing over the definition of a 'good' manager.
IMO a 'good' manager would _not_ attempt to complete a project with clearly bad developers..that would be _stupid_

"I know of many projects in which good developers were able to overcome the obstacles of bad management and deliver success."

indeed, its possible of course (but the odds are against it).
but even once the developer 'delivered success' how did the marketing go? the distribution? the schedule? the costs? how about the other myraid details that a manager takes good care of?

If I were going to place a bet, Id bet on the managers in this case actually being _good_ managers (despite the developers opinions to the contrary).
But even if they actually _were_ bad managers, we are only talking odds, and obviously sometimes it will happen.

FullNameRequired
Sunday, November 16, 2003

"I propose that if Philo was a good developer, he would have pushed back at incompetant management. "

I did. A lot. An embarrassing amount, actually. Camel was what, two dozen posts covering 2-3 months of office time ( ~ 320-480 hours)? Suffice to say I did NOT post every single interaction with managment, every single exchange...

I didn't post the half-dozen times I explicitly confronted management with "do you want sloppy by Oct 1, or a good product in the twelve months it will take?" (the standard answer, of course, was 'we want a good product by Oct 1')

I didn't post the two formal emails we sent to project management explicitly expressing our concern with the goals and timeline.

I don't think I posted the several attempts made to split us up and keep us out of decision-making meetings, exactly because we were each being such troublemakers about the schedule.

My apologies for not posting a more complete log. :P

Philo

Philo.
Sunday, November 16, 2003

No, my apologies then - you did what you could and I misunderstood the extent of your pushing back.

King David
Sunday, November 16, 2003

FNR, I get the feeling management is not your forte. Any manager setting up a new project who then has to fire people because they turn out to be no good incompetent.

Management is about recognising fit, and it is also about managing fit.

analyst
Sunday, November 16, 2003

Analyst - pot/kettle/black

If the developer is actually "no good" then a good manager will do the right thing and fire them. If they're simply misplaced, then managing their movement is a management issue. But then they're not "no good" or "incompetent"

Philo

Philo.
Sunday, November 16, 2003

"FNR, I get the feeling management is not your forte. "

<g> if its any consolation I entirely agree...Im a much better programmer than project manager.....unfortunately I have to fake my way though it occasionally.

"Any manager setting up a new project who then has to fire people because they turn out to be no good is incompetent."

:) OTOH any manager who is too scared to fire people when they turn out to be no good in case they look incompetent is....incompetent...

its a lovely little conundrum.

"Management is about recognising fit, and it is also about managing fit."

its also about successfully delivering the project.

_one_ of those 3 things is more important than the other two...see if you can work out which is which :)

Management is about recognising fit during the hiring process, if I stuff that up then as a manager I have to make a decision about that person.
The possibilities are:
(1) they have a weakness that renders them unsuitable for the job I had intended them to do, but will very likely still do well elsewhere
(2) they are just not suitable....for some reason they cannot and will not be able to be fitted anywhere else and I just plain stuffed up.

If (2) has happened then the sooner I recognise that and fire their incompetent ass, the better (even though I made the bed myself, sometimes refusing to lie in it is the best approach)

If (1) has occured then I have to consider other factors....who is already doing that task, is there an opening?  is it even worth the hassle?  (I hire you as a programmer, and then dump you down to testing....will it be worth the effort in retraining?  will you readjust or will you just end up with a bad attitude?)

if I decide its worthwhile then I keep you on, if not I fire you...and better sooner than later.

Overall I would behave different to a new hire and an established employee...but we are discussing new hires here and my attitude to them is pretty harsh...._much_ better overall to make the decision to fire them early rather than late...Ive been bitten before, carrying an incompetent employee is more expensive in every possible way than firing them early and going through the hire process again.

FullNameRequired
Sunday, November 16, 2003

FNR,

I'm just curious -- in your own experience, has this happened a lot? What size teams do you typically manage? What's the largest number of incompetant developers you've had to fire on a given project, and what were their failings?

Usually when someone's not measuring up, I've been able to find something else for them to do that they find more exciting. Such an incident is extremely rare, though that is surely because I have only worked with relatively small teams -- no more than 10 developers.

Dennis Atkins
Sunday, November 16, 2003

I am a developer in Eastern Europe. We are doing a lot of software development, especially for US and French companies.


There is a problem which occurs a lot at the company I work for, and also at other software development companies in the area:

Clients shop for the lowest bidder and pressure us a lot to lower our costs.

So.. for example, when we say we can do a small project for $ 12K, it is ok if the client negotiates for a price of $ 11K.

But, if the client pushes and pushes and pushes and negotiates to $ 4K, and we happen to accept the project (for example, in the summer we are desperate for projects), then that project will get done by an understaffed team, which will, of course, produce bad results.


This is very basic economic thinking, which should be clear to managers: if you push for an extremely low price, then you shall get burned.

For example, if I go to buy myself some shoes, find out that a good pair of shoes costs about 100$, and then I shop for a pair of shoes which cost 15$, and buy them, what do you think will happen?

I tell you: the shoes will be of a very poor quality, and will probably break or wear out very quickly.

This is a very basic economic fact.


So, for managers doing offshore projects, I have this advice:

In order to get a quality product, you have to pay quite a lot.

Don't go for the absolutely low cost, bottom-rock offer. The very lowest bidder is usually desperate, and there's a reason why he is desperate.

When doing offshore software development, your costs can still be lower than the costs in the US, but don't go for the very lowest bidder.

A developer in Eastern Europe
Monday, November 17, 2003

"(In India, it is almost impossible to fire *anyone* in a large operation. Labor laws here are still socialist. So, in many organizations it is the other way around. Managers take shit from their workers just to get the work done)."

So the inmates are running the asylum?

Interaction Architect
Monday, November 17, 2003

The question is are they making a good job of it :)

In any power organization the person who takes shit is the one with least power. Paradoxically the good manager will have to take more. Why? because he's going to hire good people who can get another job easily, and so have the whip hand.

I think the unfortunate phrase "kissing ass" has skewed the argument. However I do find that Indians are often less inclined to question stupid decisions than Westerners; however that may simply be local to the Gulf.

Stephen Jones
Tuesday, November 18, 2003

*  Recent Topics

*  Fog Creek Home