×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

How To Make Software Projects Fail

timothy posted more than 12 years ago | from the excessive-capitalization-is-a-start dept.

Programming 905

Bob Abooey writes: "SoftwareMarketSolution has an interesting interview of Joel Spolsky, of Joel on Software fame. Joel, a former programmer at Microsoft, discusses some of the reasons he thinks some very popular software companies or projects fail, including Netscape, Lotus 123, Borland, etc." This interview brings out some mild boiler-room stories which sound like they could be the basis of a good book, along the lines of Soul of a New Machine .

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

905 comments

ep (-1, Offtopic)

Anonymous Coward | more than 12 years ago | (#2657461)

This first post for Ida!

the hell? (0, Offtopic)

Wakko Warner (324) | more than 12 years ago | (#2657463)

people tell stories in boiler rooms?

Re:the hell? (1, Offtopic)

Skyshadow (508) | more than 12 years ago | (#2657532)

It's also an excellent place to dispose of the bodies of the consultants your boss hired 'cause he thinks you're a peabrain (hey, he could be right; you're working there, aren't you?).

first fuck (-1, Offtopic)

Anonymous Coward | more than 12 years ago | (#2657466)

up the arse

Not First Post (-1, Offtopic)

Anonymous Coward | more than 12 years ago | (#2657477)

This is not the first post so you may ignore it.

How to make projects fail (-1, Funny)

Anonymous Coward | more than 12 years ago | (#2657480)

Well, you can spend most of your time reading /.

oh, and FP!!!

How to make it fail? (-1, Flamebait)

Anonymous Coward | more than 12 years ago | (#2657482)

Run it on Linux

Taking lessons from (-1, Offtopic)

Anonymous Coward | more than 12 years ago | (#2657484)

...a programmer that didn't check whether his ftp library can do passive ftp.

Re:Taking lessons from...Better Yet Check this one (2, Insightful)

darkPHi3er (215047) | more than 12 years ago | (#2657606)

"Joel: Don't get me started! If you're a software company, there are lots of great business reasons to love bloatware. For one, if programmers don't have to worry about how large their code is, they can ship it sooner. And that means you get more features, and features make users' lives better (if they use them) and don't usually hurt (if they don't). As a user, if your software vendor stops, before shipping, and spends two months squeezing the code down to make it 50% smaller, the net benefit to you is going to be imperceptible, but you went for two months without new features that you needed, and THAT hurt."

Can you spot the "seat of the pants/never piss of the installed base"-oriented design fallicies just in that one paragraph:

1. More features are always better features

2. Coders are not responsible for optimization

3. Hardware vendors must not change h/w designs that would break installed base, even to improve their architecture

4. Your s/w is SOOOO... important that shipping delays for optimization/tuning/additional debugging are not to be accepted

further from the rest of the interview;

6. There's never a reason to rewrite extent code, EVER...(here's my nominee for that reason -- Microsoft Outlook)

7. Architecture is secondary to UI, maintanence of the UI experience is the MOST important standard

8. Any problems caused by #7 above should never be fixed by redesign, but instead should be prioritized and patched by response to User problems.

i could go on, but i think i've gotten the highlights, did i miss any???

Gee, can anybody figure out a s/w product(s) family that seems to be a living demo of (my phrase) "Design By Release Date, Redesign by User Complaints" School of coding????

i'll even agree with Joel that you should be very careful with "scratch" redesigns, and too many people would rather rewrite viable code than fix it....

BUT JEEZ, should you hold on to a payroll system written in FORTRAN69 (or LISP or ALGOL or FORTH...), just because it works, even if you have NO OTHER apps in FORTRAN and don't have one single FORTRAN programmer working for you????
.....

Programmer?! (-1, Offtopic)

Anonymous Coward | more than 12 years ago | (#2657615)

He's not a programmer, just a marketing weenie who knows C.

we already know... (0)

Anonymous Coward | more than 12 years ago | (#2657485)

Microsoft comes up with some similar product, markets it, and all the world's joe q zombies follow along and MS ends up driving the original vendor out of biz

Isn't it obvious? (2, Flamebait)

smileyy (11535) | more than 12 years ago | (#2657487)

Joel, a former programmer at Microsoft, discusses some of the reasons he thinks some very popular software companies or projects fail, including Netscape, Lotus 123, Borland, etc

I imagine the interview goes something like:

Joel: We drove them all out of business.

Re:Isn't it obvious? (4, Insightful)

tshak (173364) | more than 12 years ago | (#2657550)

Actually, reading this interview shows how there where serious blunders performed by NS, Borland, etc. In each case, while MS improved their software, the other companies rewrote their software.

Re:Isn't it obvious? (4, Insightful)

Alpha State (89105) | more than 12 years ago | (#2657570)

It is funny how every company he talks about lost to MS. Seriously though, one of the things he does say is:

Fortunately for Microsoft, they did this with parallel teams, and had never stopped working on the old code base, so they had something to ship, making it merely a financial disaster, not a strategic one.

IOW, have more money than God and throw it at any problem you're having trouble with. The minnows in the pond get beaten up by the 800lb gorilla (or something).

Perhaps you should read the article (5, Insightful)

Skim123 (3322) | more than 12 years ago | (#2657604)

Before you jump to false conclusions. A lot of companies that Microsoft "drove out of business" were driven out of business because they made stupid mistakes. Yes, MS's money and marketing helped, but some of the stupid things these companies do is their own damned fault.

You may want to check out this article by Robert Cringely: Microsoft's C# Language Might Be the Death of Java, but Sun's the One to Blame [pbs.org].

A lot of truth in that...

Religion and Hygeine (-1)

Roto-Rooter Man (520267) | more than 12 years ago | (#2657489)

Dear al-Roto,

My husband is a Muslim man...He washes every time that he uses the "facilities", and requires that I do the same. I have no problem with this. I find that I like it. However, he now is insisting that I "douche" every night before bed... I am uncomfortable with this practice, and have read much against it... He claims that his Mother and sisters do, and that it is my duty to him, to remain as clean as possible... Please help me. I want to please my husband, but I don't want to risk my health doing it. Is there a solution?"

-Fishy in Fredericksburg

Dear Fishy,

Washing after using the "facilities" is a part of the Islamic law. However, "douching" before retiring for the day, it may be a personal preference, is not a requirement of the Islamic law. If you do not feel comfortable with it, then I would suggest that you communicate your feelings to your husband. Trying to "remain as clean as possible" is no-doubt a great virtue. Whether or not regular "douching" entails a health hazard is a question that should be addressed to refrain from it, irrespective of your husbands preferences. The solution, in the light of the above explanation, is that it is your personal choice to carry on the practice or to discontinue douche it.

OFFTOPIC: Help me please (-1, Offtopic)

Anonymous Coward | more than 12 years ago | (#2657490)

I'm new to linux. I've downloaded staroffice. It is a .bin file. I'm trying to do a network install for multiple users. The manual says to run setup /net. All i have is the .bin file. If i launch it with double click, it launches teh installer, but without the /net arguement. I can't seem to launch it from the command line, even though i've changed the permissions to executable. Anyone know what i'm doing wrong?

Re:OFFTOPIC: Help me please (-1)

Roto-Rooter Man (520267) | more than 12 years ago | (#2657503)

Anyone know what i'm doing wrong?

Using Linux.

Re:OFFTOPIC: Help me please (-1, Offtopic)

Anonymous Coward | more than 12 years ago | (#2657518)

Very witty. Actually, i'm quite happy with everything. This is the first real problem i've had. everything else was straight forward.

Re:OFFTOPIC: Help me please (-1, Offtopic)

Anonymous Coward | more than 12 years ago | (#2657510)

Try typing ./ in front of the file name (with no spaces between the ./ and the file name) This will tell the shell to look in the current directory. This is normally turned off for security reasons. (Like say putting a trojan called ls in a directory you know someone will type ls in.)

Re:OFFTOPIC: Help me please (-1, Offtopic)

Anonymous Coward | more than 12 years ago | (#2657537)

That was it. Thanks. I went to /. and the answer was ./

Re:OFFTOPIC: Help me please (-1, Offtopic)

Anonymous Coward | more than 12 years ago | (#2657586)

You might want to email the owner of the installation manual with your advice so other users don't have the same problem :)

9th post!!! (-1, Offtopic)

Anonymous Coward | more than 12 years ago | (#2657492)

Woo hoo!!!!! It's mine!

Good point (5, Insightful)

Bandito (134369) | more than 12 years ago | (#2657494)

He says:

"My theory is that this happens because it's harder to read code than to write it."

He couldn't be more right. I've recently been asked to port some code from another group in the company. Upon first reading it, I found global variables being referenced from everywhere, and it looked terrible.

The more I looked at it though, the easier it got to read, and having an existing code base to work from made things much easier.

Plus, when I have problems with it, I can blame it on a "design error" by the previous programmers!

Re:Good point (5, Insightful)

Skyshadow (508) | more than 12 years ago | (#2657542)

This is why it's important to force your developers to (gasp) comment their code. Of course, 99 times out of 100, this won't happen because either (1) the boss thinks that'll slow you down and you'll miss your release date or (2) your boss has never written a line of code in his life and doesn't even know you can comment on that computer codes thing.

Re:Good point (2, Insightful)

czardonic (526710) | more than 12 years ago | (#2657580)

Commenting poorly written code won't help you worth a damn. Plus, why assume that someone who writes bad code will write good comments? Good code speaks for itself.

or (3).. (4, Insightful)

rho (6063) | more than 12 years ago | (#2657592)

or (3), incessantly repeated nerdisms such as "if it was hard to write it should be hard to read" instill an improper sense into young, impressionable programmers.

Re:Good point (5, Insightful)

StaticEngine (135635) | more than 12 years ago | (#2657658)

Good code is not just code that compiles and runs efficiently. Good code also has the following properties:
  • Clear, Consistant Formatting - This code complies with the company standard for writing code. Indents are properly nested, Functions are named consistantly, variables use Hungarian Notation or some other standard. Any programmer should be able to look at code by another programmer and pick up on it very quickly, without shaking their head and saying "What the hell were they thinking?"
  • Copious Comments - Lots of comments, clearly written and explanatory. What does this function do? Put a block at the beginning explaining it. How does this algorithm work briefly? Write a paragraph if you have to. The best comment I heard was from a friend about a former coworkers code: "It's English with some C++ thrown inbetween the comments."
  • Documentation - Anyone who shrugs this off is an idiot. You always have time for documentation. And it's not just for the instance where a programmer gets "hit by a bus." It's for people who leave behind code when they quit, or go to a new project. It's for the new hires, so they can understand and study and learn good design, good techniques, and developer rationale. It forces developers to explain themselves. And it allows non-techies to understand what they're doing. Imagine you had to get through 12 years of grade school with no books. Pretty frightening, eh? Documentation is good. Write it.
Coders who follow these rules truly are an asset to their company. Geeks who hack, write unreadable code, and utter geek credos about enforcing obfuscation and being purposefully vague have no place in a business environment.

Nut in my drawers (-1, Offtopic)

Anonymous Coward | more than 12 years ago | (#2657511)

I had a boner, so I spanked it right here. Now my boxers are soggy with ejaculate.

Obligatory Dolphin Post (-1, Offtopic)

Anonymous Coward | more than 12 years ago | (#2657513)

Humans rule, Dolphins can suck it!

How to make a good software project / product fail (1)

Twilight1 (17879) | more than 12 years ago | (#2657514)

1. Come up with a really cool and useful idea.

2. Implement said idea, and tell others about it.

3. Build a solid piece of software and test it.

4. When Microsoft notices, refuse to sell out to them.

5. Be crushed under the weight of a mighty monopoly when they throw their machine at you and give away a product that does the same thing as yours for free.

6. Try to play the "release often" game against Microsoft.

Repeat steps five and six until desired failure is achieved, or until your stockholders turn into an angry mob, whichever happens first.

Wheee! :)

-- Twilight1

Re:How to make a good software project / product f (1, Interesting)

Anonymous Coward | more than 12 years ago | (#2657561)

Joel's company goal is to be bought out by Microsoft. No, I don't know this for sure. But when writing that much it's hard to hide your opinions.

Re:How to make a good software project / product f (0)

Anonymous Coward | more than 12 years ago | (#2657568)

Don't forget:

7. Rewrite your codebase from scratch and disappear from the market for 3 years

8. Beg the "open source" community to do your coding for you.

How To Make Software Projects Fail: (5, Funny)

Skyshadow (508) | more than 12 years ago | (#2657515)

Step 1: Hire my boss (God, please hire him away!).
Step 2: Put him in charge of software development.
Step 3: Do nothing as priorities change weekly and deadlines slip away.
Step 4: Do nothing to stem exodus of clued-in employees to less-screwed companies.
Step 5: Force remaining employees to work 15 hour days. Provide subtle reminders that there's a recession out there.
Step 6: Do nothing as even non-clued-in employees flee.
Step 7: Hire a sweatshop in China to crank out code; present this sound like a good idea.

There, that was pretty easy. And, to be honest, everything beyond Step 1 pretty much happens on its own.

Soul of a New Machine (slightly OT) (3)

Omerna (241397) | more than 12 years ago | (#2657516)

I'd HIGHLY suggest reading a SoaNM. One of my favorite books (fiction or non).

next week? (1, Flamebait)

scaryjohn (120394) | more than 12 years ago | (#2657538)

So, will it make the main page next week when he talks about how "bad" Linux and Mozilla are? As the backseat editors like to say, "Rob, start spell-checking that title now; you know it's coming."


For that matter, i wonder what he'll have to say about Linux. Ten years and they're still on version 2.[4,5]. That might actually make him happy.

The moral of the story: maintenance is king! (-1, Flamebait)

Anonymous Coward | more than 12 years ago | (#2657543)

This is gonna piss off a lot of those whiny engineers that only want to craft new code.

problem = clueless management/directors/execs etc. (5, Interesting)

Sonicboom (141577) | more than 12 years ago | (#2657548)

Alot of .com's I've worked at in the past 2-3 years always wanted to "lowball" developers and engineers, while lining the pockets of resource managers, implementation managers, marketing people, etc.

Then a skilled/talented developer and/or engineer wants more money. The employer does nothing to retain them - thus the skilled/talented employee leaves.

Now who maintains the code?

The other problem is bringing in short term consultants for long term projects. The non-technical people who make these executive decisions don't seem to see the feasability of KEEPING their code maintained by the talented/skilled person who BEGAN the development on it.

I know alot of consultants read /. - so I'll probably take a big hit on the karma - but I just was the casualty of another dotcom failure - and this was a seriousl problem.

Another problem is hiring non-technical managers to manage technical people. At my last job we had a manager off of an automobile manufacturing production line quit his job at the auto company to take a job as the manager of a group of Unix admins. This "bumper jockey" had NO CLUE what we did for a living, and treated us like a bunch of unionized UAW slobs, and not like professionals.

How can a non-technical boss effectively manage technical people???

Also - how about all the Ceo, Cio, Cto, eieio - types with their big salaries, catered lunches, etc... Alot of them have NO programming or hands-on technical experience. Hell - I've had the CTO come up to me and tell me that "The Internet was broken" when he knocked the dongle out of the side of his laptop - severing the network connection. And this guy is our Chief Technology Officer???? *lmao*

I'm not saying that only technological people can make technology companies work - but I do feel that managers should take some sort of hands-on classes to learn some basic programming and internet skills so they have SOME SORT OF CLUE about what WE all do for a living!

Re:problem = clueless management/directors/execs e (0)

Anonymous Coward | more than 12 years ago | (#2657598)

I do feel that managers should take some sort of hands-on classes to learn some basic programming and internet skills so they have SOME SORT OF CLUE about what WE all do for a living

Yeah, and you should take some sort of hands-on classes to learn some basic business management and finance skills so you have SOME SORT OF CLUE about HOW the rest of the world works.

Re:problem = clueless management/directors/execs e (1)

version3 (522445) | more than 12 years ago | (#2657667)

Actually, as long as the non-business engineer does his job he's a lot less dangerous than the business people who refuse/ are unable to understand the limitations in engineering. Unless, of course, the engineer is *shudder* in charge of schedules or budgets.

Death by Engineers (5, Insightful)

Skyshadow (508) | more than 12 years ago | (#2657617)

I'm in the alternate situation: Too many of my execs (except, for some reason, the VP of Development) are engineers.

This leads to a whole host of problems:

Many of them tend think they're smarter than people in non-engineering roles.

Pursuant to this, they don't think PR and marketing and sales are "hard" or really even "important".

Again after #1, they're always right when in disagreement with marketing or sales guys.

Most of them haven't developed in a decade+, so now they know just enough to be dangerous -- make micromanaging decisions about detailed subjects things they don't understand well enough, chase unnecessarily after bleeding edge tech, etc.

Fail to understand that not everyone wants to always work 14 hours a day.

Laugh off meetings, so that eventually nobody in the company knows whats going on.

As a result, nobody's heard of us (no marketing budget, no trade shows, no nothing) and nobody's buying our products (engineers tend to make lousy sales guys; despite what they might believe, nobody wants to listen to a 3-hour ridiculously detailed presentation on your product).

There's got to be a happy medium someplace.

I'm a little confused.. (1, Insightful)

Anonymous Coward | more than 12 years ago | (#2657549)

I wasn't aware that Borland -was- failing. They do have a cross-platform language that's on par with Visual Basic in the ease of use department, that's more than Microsoft's done. In fact they're one of the only companies that -support- cross-platform development with both of their products, and they're the only company that's actually responsive to the community that uses their software for development.

Rewrite vs compatability (4, Interesting)

Iamthefallen (523816) | more than 12 years ago | (#2657553)

Joel: Hmm. That reminds me that Microsoft learned the "no rewrite" lesson the hard way.

Obviously, MS biggest problem though is that they don't know when to give up and actually rewrite. For instance, it seems that the windows series of operating systems are all made with the intent of being backwards compatible and reusing core parts back to early DOS systems. Backwards compatability and code reuse is nice and all, but there is a limit to it and a time to give up.

It will however be interesting to see what comes out of the "total rewrite" of IIS.

Re:Rewrite vs compatability (1)

czardonic (526710) | more than 12 years ago | (#2657614)

Obviously, MS biggest problem though is that they don't know when to give up and actually rewrite.

Actually, thier biggest problem is finding places to stash the money they are making hand-over-fist selling their wildly popular software.

For instance, it seems that the windows series of operating systems are all made with the intent of being backwards compatible and reusing core parts back to early DOS systems.

True, unless you count Windows 2000 and Windows XP.

What? (0, Offtopic)

Anonymous Coward | more than 12 years ago | (#2657559)

Bob Abooey is getting stories posted on Slashdot?

Now I've seen everything.

--perdida

Re:What? (0, Troll)

Bob Abooey (224634) | more than 12 years ago | (#2657645)

You have to admit that it's an interesting interview. I don't agree with everything he says, but he is a well thought out and knowledgable person.

And, just because I have a somewhat mis-understood past doesn't mean I can't change and start using my powers for good instead of evil...:)

"never a good idea to do a complete rewrite" (4, Troll)

paulbd (118132) | more than 12 years ago | (#2657564)

ahem. what was NT for? sometimes, you just have to come to terms with the fact that as tested, bug-fixed and studied as a chunk of code may be, it was developed as part of a misconceived model of either visible functionality or internal architecture or both. DOS and its progeny like win32 were clearly cases of this, and MS weathered a complete rewrite c/o cutler and co. quite happily. the fact that there are examples of disastrous complete rewrites doesn't mean that the examples that worked are meaningless.

Re:"never a good idea to do a complete rewrite" (1)

BrynM (217883) | more than 12 years ago | (#2657618)

NT wasn't actually a re-write. The 16bit portions got replaced chunk by chunk between 3.0 and 4.0, but there were revisions that had both (3.51). Further, some 32bit portions of 3.51 eventually became Windows 95.

Ah, back to the days when some apps were made for 95/NT3.51... Thank god things changed!

Re:"never a good idea to do a complete rewrite" (0)

Anonymous Coward | more than 12 years ago | (#2657622)

WinNT was not really a re-write of Win31, though. It was an offshoot of OS/2, which itself was a brand new product.

Reimplementing something that already works costs a lot of money, hence the Win95/98/ME line. Writing brand new software costs a lot too, but that effort is going into building something that doesn't already exist.

Backwards compatibility doesn't enter into any part of this equation except that engineers working off an existing project gain backwards compatibility at no cost.

Re:"never a good idea to do a complete rewrite" (1)

beanyk (230597) | more than 12 years ago | (#2657632)

True, but at least Microsoft were *still* churning out Win 95/98, and developing for it. So they hadn't burned their bridges. As mentioned a bit later on int he interview, the fatal thing to do is *abandon* the original product to work on the new version.

Re:"never a good idea to do a complete rewrite" (3, Interesting)

os2fan (254461) | more than 12 years ago | (#2657646)

Ahem NT is a rehash of OS/2. I mean, the reason they support OS/2 in NT in the first place is that the kernal runs it directly. NT3.1 actually uses an OS/2 boot sector, and NTFS is a hacked version of HPFS with the same drive type.

The reason they they need to go for a 32-bit system is that the hacks built into DOS was just not enough for their (then) expanding programs. Put simply, they exhausted DOS and were looking for help to get 32-bits under way. Hence the MS-IBM cooperation on OS/2, and NT from MS's fragment of it. FAT32 is another extention of the fs to allow the use of fat ideas into larger disks.

The original name of NT was "OS/2 NT". It's just an evolution of an IBM product that they had code sharing rights for. Ironically, the first version of NT [ie 3.1] is correct: version 1 and 2 were the common OS/2 base.

Apparently the one true MS invention was MS BOB. It has a massive entry in technet. Enough said.

Re:"never a good idea to do a complete rewrite" (0)

Anonymous Coward | more than 12 years ago | (#2657656)

Now are you going to begrudge a company whose best talent is in embracing and extending rather than creating? It would seem that companies ought to focus on what they do best.

Re:"never a good idea to do a complete rewrite" (1, Informative)

Anonymous Coward | more than 12 years ago | (#2657651)

As the article says, Microsoft has the money to keep two projects going at the same time.. the rules don't really apply to them.

They might have had two code bases but they weren't stepping on each other's feet.

Re:"never a good idea to do a complete rewrite" (2)

paulbd (118132) | more than 12 years ago | (#2657663)

several people have claimed that NT wasn't a rewrite and that it was based on OS/2. this is false. MS hired dave cutler from DEC, cutler picked a team of programmers, and they wrote "NT" (which stands for "New Technology" [sic]) from scratch. it was not derived from OS/2, though it may borrow ideas from it. it borrows as much from VMS as it does from OS/2. readers may be confusing the NT kernel (which i was referring to) with the NT UI (which i was not referring to.

Here's an article... (0)

Anonymous Coward | more than 12 years ago | (#2657567)

Rather then discuss it on a direct finance approach, this article [teamfallout.net] discusses the merits of finance as a regard of speed of production, as well as ease of use.

The truth: the other apps sucked (0)

Anonymous Coward | more than 12 years ago | (#2657569)

Joel didn't mention it, but a big reason that MS ate everybody's lunch (in the early 90's, anyway) was that the other products totally sucked. Excel rocked, and 123 for Windows was late, buggy and difficult to use. Ditto for WordPerfect for Windows. Ami Pro was about the best word processor - except for Word.

Just so's that we don't forget the good ol' days...

Not sure how to take Joel and the MS experience... (1)

RFC959 (121594) | more than 12 years ago | (#2657571)

I've been a fan of Joel's work for a while now, and he seems like a smart guy who believes in DTRT. It's hard to believe people like that work at MS, given the quality of most of MS's output. But I know another MS programmer, and he too is a very smart guy with a sense of morals and a sense of the Right Thing. So where's all the evil come from? Or is there something I'm missing in all this?

Re:Not sure how to take Joel and the MS experience (0)

Anonymous Coward | more than 12 years ago | (#2657657)

The evil comes from the top, not the guys who are hacking out the code. Those guys are not the problem , it's the bloodthirsty evil bastards who run the company that we hate.

How to make a software project fail ... (0)

Anonymous Coward | more than 12 years ago | (#2657572)

Use VB

Schedules down to the hour ... yeah right (0)

Anonymous Coward | more than 12 years ago | (#2657574)

This is just more idiocy. What a ridiculous waste of time. I haven't figured out the optimum solution to the problem. I have to roll it around in my head and then come up with a High-level design doc but you want schedules down to the hour level... yeah right.

Before everyone points at Microsoft ..... (4, Interesting)

reaper20 (23396) | more than 12 years ago | (#2657578)

True, MS's monopolistic policies notwithstanding:

"Everyone thinks, poor Netscape, they were a victim of MS practices" - yes, they were, and yes, they innovated, but come to think of it, NS4 was crappy software that sucked.

"Poor Real Networks, MS is integrating all that stuff into the OS." - Good riddance ... IMO anything Real makes has never made it out of Beta, and naturally, don't unload the stupid System Tray icon that leaks memory like a sieve, because "you could lose some key features and performance benefits."

We blame Microsoft because their software sucks, and their practices suck ... but come to think of it, the only people to blame is Microsoft's competition, with their heads up their asses who can't put out decent software that works. Windows 95 didn't become the standard because it was great software, Win95 became the standard because OS/2 was marketed improperly, and IBM didn't work hard enough with OEMs. (that's gonna bring on flamage, so go ahead)

Only now, with Linux and Open Source, can WE the users contribute to what we want, not what some guys proposed business model wants. I mean seriously ... I hate Microsoft as much as the next guy, having to put up with their software, but then again, I don't see many other "competitors" really trying ...

ICQ pioneered instant messaging, but give me a break, the things been in beta for years and uses up more memory than most anything.

My note to all burgeoning software companies - Make me something that doesn't suck,and I'll pay for it, don't force me to upgrade every 20 minutes to a more bloated piece of crap that is nothing more than a "portal" for all those neat advertising engines you've snuck in there....and I swear, if I hear someone say "monetize the desktop" .... heh...

Re:Before everyone points at Microsoft ..... (0)

Anonymous Coward | more than 12 years ago | (#2657640)

OS/2 was marketed improperly


Any proof of this? Last I checked, OS/2 failed because of Microsoft's exclusive OS licensing provisions. IBM itself was forced to unbundle OS/2 from its PC's so as to have the same favourable licensing terms as its competitors. Back in 94/95 when OS/2 use was peaking, there was HUGE interest in it, but that interest was never met because PC manufacturers couldn't (or wouldn't) take the hit.

Re:Before everyone points at Microsoft ..... (3, Interesting)

man_of_mr_e (217855) | more than 12 years ago | (#2657664)

Last you checked, you weren't thinking about the real problem. The problem was not MS's OS licensing provisions. This was *BEFORE* all that. The problem was that IBM was a competitor to all the major OEM's, and none of them wanted to line their competitors pocket and be dependant upon them for their livelyhood.

Microsoft was OEM agnostic, IBM was not. That's what doomed OS/2.

Re:Before everyone points at Microsoft ..... (3, Interesting)

0WaitState (231806) | more than 12 years ago | (#2657675)

Its not a level playing field. Blaming Microsoft competitors for releasing crappy software on windows ignores the significantly higher development costs incurred by orgs that don't have access to the real APIs, don't have advance knowledge of OS changes, don't have the ability to specify OS or API tweaks that will benefit their designs. Oh, and Microsoft app developers have a relatively lower risk that Microsoft will change the OS deliberately to break their app ("DOS ain't done til Lotus won't run").

Think about it--can you name a non-microsoft app using OLE that actually works well? They can't *all* be fragile pieces of shit due to implementation incompetence.

I disagree (0)

Anonymous Coward | more than 12 years ago | (#2657583)

Firstly, that code is harder to read than write.
Writing code takes heaps long than reading code, and how can you write code if you arent capable of reading code fluently.

Secondly, if a program gets really old then rewritting the code can improve quality heaps... patches are just that patches.. the rewrite should include the patches.

Thirdly, this guy used to work for microsoft, what would he know about writting quality code ?

Trying to hire female and minorities as a quota! (-1, Troll)

Anonymous Coward | more than 12 years ago | (#2657589)

Trying to hire female and minorities as a quota in a large rapidly growing software company is a sure way to doom a company.

Instead of merit or intelligence, to limit the number of asian men and white men, quotas are used.

The result.... some of the absolute most horrible coders imaginable are hired and cause much to grind team spirit to a halt and then into negagive land as all the gurus start to flee the company to consult or start their own startups.

No one left is capable of properly hiring any more guru-level candidates.

Eventually the average IQ starts to drop for the entire engineering department.

I have seen it at many companies that self destructed rapidly.

This white-guilt thing is ridiculous.

Re:Trying to hire female and minorities as a quota (-1, Flamebait)

Anonymous Coward | more than 12 years ago | (#2657660)

Shut up you racist bastard. Everyone knows that black people have an average IQ of 105 while people have an average IQ 100. And Asians and Spics only got an IQ of 85. The reason Asians do so well in school is because they have lots of money and pay off the schools.

Re:Trying to hire female and minorities as a quota (1, Flamebait)

Skyshadow (508) | more than 12 years ago | (#2657661)

I think you sound like a bit of an idiot with your little rant, but it did help me come up with one:

- Hire a bunch of people who don't share fluency any one language in common. Throw them all together and make no provisions to improve communication.

This is happening at my comany -- we're roughly 50% Chinese and 50% Americans/Canadians (not all white, but all native english speakers). We can't communicate very easily because the Chinese don't speak much english and the rest of the company doesn't speak much Chinese.

So, we end up just trying to work around each other -- since we only have two people who speak both languages fluently, we have to pick and choose how we use 'em. Pretty dumb.

Re:Trying to hire female and minorities as a quota (0)

Anonymous Coward | more than 12 years ago | (#2657680)

Asians can be good coders. They are like worker ants in that respect. But I would not rely on an Asian to come up with a creative design or great product idea. Their minds don't work like that.

He certanly is into lunch, isn't he? (2, Interesting)

jorbettis (113413) | more than 12 years ago | (#2657594)

If he said "Microsoft ate their lunch" one more time, I was gong to puke my lunch all over my keyboard.

Anyhow, I think he speaks horrible advice from a computer science standpoint. "It dosen't matter how bad, buggy, cludgy, and crufty a code base is, never ever rewrite it". If you don't understand what the code is, if it's impossible to read, don't worry! that's the sign of good code!

It speaks alot of Microsoft's tactics, do whatever it is that takes the absolute least effort possible, and charge as much as you possibly can for it. All of those other companies failed because they were focused on quality, whilst they were focused on nothing the bottom line.

Here's what I think is the worst software sin: writting shitty code and pretending it's not shitty. Regardless of how much gloss you put on it, bad code is rotten to the core, and it reflects that in stability and security. Why on earth do you think Microsoft falls flat on its face in those areas?

I remember a story about JD Rockefeller. He was touring one of his oil works, and he saw someone soldering the oil cans shut. He asked him how much solder he uses on each can. The man told him, something like 48. Rockefeller said "from now on, use 36". That's exactly the type of cutting corners companies like Microsoft do. THat's not good for the customers, it's not good for society, and it's not good capatilism.

Re:He certanly is into lunch, isn't he? (0)

Anonymous Coward | more than 12 years ago | (#2657650)

Well, you see, there is this thing called money. Microsoft, and several other "companies" are good at "getting money"

Re:He certanly is into lunch, isn't he? (0)

Anonymous Coward | more than 12 years ago | (#2657681)

"soldering the oil cans shut?"

Why would you do that? Isn't there a risk of explosion and death and flames the the burning. But how else would you do it.

what a load of crap (2, Insightful)

gmack (197796) | more than 12 years ago | (#2657601)

Old code does indeed age.. what happens when you tweak a program to do something you hadn't thought of when you designed it?

What happens when you cludge it a coupple more times?

Eventually you need to go back and redesign the section you are working on from the ground up with all of your goals in mind.

This is not throwing out the old knowlege it's learning from it and there are plenty of examples where it's worked out for the best.

What was spelled out in the interview was a recipy for a buggy mess.

Code rewrite (3, Informative)

Dominic_Mazzoni (125164) | more than 12 years ago | (#2657603)

A lot of the article is about whether or not you should ever rewrite code.

SMS: Joel, what, in your opinion, is the single greatest development sin a software company can commit?

Joel: Deciding to completely rewrite your product from scratch, on the theory that all your code is messy and bug prone and is bloated and needs to be completely rethought and rebuild from ground zero.

SMS: Uh, what's wrong with that?

Joel: Because it's almost never true. It's not like code rusts if it's not used. The idea that new code is better than old is patently absurd. Old code has been used. It has been tested. Lots of bugs have been found, and they've been fixed. There's nothing wrong with it.

Joel blasts rewriting code some more, but doesn't really get into alternatives. Instead he talks about forcing programmers to get with the program, and if they don't, fire them.

Isn't there sometimes a happy medium between completely rewriting the whole codebase and continuing to hack it up? For example, maybe you can identify certain modules that can be isolated and rewritten, then tested rigorously against the old code to make sure they're functionally identical. Or you could separate the old code into a library that just does the computational part of a program, and then write a new GUI around it from scratch.

He takes Netscape as an example, saying the worst mistake they made was to rewrite it from scratch.

I admit that it would have been nice if they released the source code to Netscape 4.x, and not just Mozilla. Even if the code was the most gawd-awful thing in the world, in the years since Mozilla started don't you think we (the open-source community) could have at least fixed some of the more annoying bugs in Netscape?

Re:Code rewrite (1)

jmay (128189) | more than 12 years ago | (#2657682)

Yes, there is often a happy medium between completely rewriting the whole codebase and continuing to hack it up. There have always been disciplined ways to steadily improve existing code over time.

The latest buzzword for this is Refactoring. There are some excellent published materials on this topic. We've finally reached a stage where verbal discussion of good software engineering techniques have reached a point where we can write intelligently about the topic using common terminology. See refactoring.com [refactoring.com] and The First Wiki [c2.com] for some good online starting-points.

He's only partly correct about the rewrite thing (3, Insightful)

Bwah (3970) | more than 12 years ago | (#2657605)

With your average application from scratch rewites are probably UnCool for the reasons mentioned in the article.

For other kinds of systems I'm going to have to argue that rewites can be very beneficial.

For systems where the development team has access to a regression test suite and the old (working) code at the same time rewrites are much more easily done. You simply treat the existing code like a prototype. Something that captures all of your requirements, but maybe not using a design that ended up working out (read as: turned into a freaking hairball as time passed!) You work through the old code, understand it, and then build up a new design that works out cleanly in all of the places where the old code was a hack.

When you are all done (or as you are working), you hit it with the test suite. This works out best if your process requires that all of those pesky little bugs found in the old code had to have test cases to reproduce them. (Obvisouly there are limits to this ... the infamous 1 in a million "random" crash, etc.)

Anyway, I think Joel's statement was just a little to broad. He's correct in some cases, but not all. Of course maybe I'm just one of those overly confident coder types ...

why are we listening to this guy? (5, Funny)

deander2 (26173) | more than 12 years ago | (#2657611)



Hold on, this man worked at Microsoft from 1991 to 1994. He led the Excel team. He led the VB team. This was win16. Excel is great now, but do you remember how much it sucked before office 95? And who the heck used VB for 3.1?

Even better! he wrote the Juno e-mail application. Believe me, this was no fine engineering here. Why does he know better then anyone other Tom, Dick or Harry what makes software project tick?

Re:why are we listening to this guy? (1)

gmack (197796) | more than 12 years ago | (#2657648)

Agreed especially about the juno part. Juno is enough of a pig to bring even a reasonably modern budget PC to a slow crawl.

Not "fron scratch" (4, Insightful)

Brian Kendig (1959) | more than 12 years ago | (#2657619)

Just a correction to a point raised in the interview:

Netscape made the "single worst strategic mistake that any software company can make" by deciding to rewrite their code from scratch.

Netscape didn't rewrite the browser from scratch. Back in April 1998, Communicator 4 was the current version; to get from there to the open-source Mozilla browser, everything that couldn't be distributed (code from other companies, and security code with export restrictions) was stripped out of the source code. What was left was made available as the start of Mozilla. It didn't even compile at first, but Mozilla didn't start from scratch.

Admittedly, the fact that this next-generation browser hardly worked at all for more than three years did keep Netscape from capturing any market share, but the browser had already been commoditized, and the battle had already been lost.

I think that the real browser battle is yet to come -- when the bulletproof and iron-clad Mozilla, carefully fine-tuned to scratch every developer's personal itch, is finally ready sometime next year to take on whatever Microsoft has got. I think that's when the real interesting things will happen -- not just on the technical and marketing fronts, but also on the legal front, as Microsoft finds ways to make sure Mozilla isn't a threat...

Projects Failing (1)

Silverwolf0 (471272) | more than 12 years ago | (#2657621)

Projects fail because people have good Ideas but can't ever get them on the market because either, people can't accept it because it is above their head, or it wasn't practicle.

Hindsight alert, hindsight alert! (1)

hansk (107187) | more than 12 years ago | (#2657623)

Granted, Joel has written some interesting articles in the past but this interview screams of hindsight.

How about something new and interesting?

Sure-fire way of making a software project fail: (4, Insightful)

kcbrown (7426) | more than 12 years ago | (#2657626)

  1. Act like a cheezy salesdroid. Promise to implement everything the "customer" (usually some other department of the company) requests and tell them that it will be done in a very short period of time like, say, a month or two. Mutually exclusive features are really good here. Say and do whatever it takes to "sell" them on the project.
  2. Talk with the "customer" on a regular basis. Promise to make all changes that they request, especially the ones that would normally be far outside of the scope of the project -- the ones that any sane engineer would insist requires a redesign. Promise that it won't be a problem to make these changes and that it'll only take a couple of weeks at most.
  3. Push your developers hard. I mean really hard. They'll have to work 20 hour days for weeks at a stretch in order to meet the design goals and the target release date, after all, and they do work for you, after all, and you did promise the "customer" it would be done on time, after all. When the project gets behind schedule, fire the team lead(s) to provide "motivation" for the rest of the developers and to show everyone that you mean business. They were just getting in the way anyway. It doesn't matter that they had the most knowledge about the project, because we all know that software is easy.
  4. When you near completion of the project (assuming your developers haven't bailed out on you already, but hey, the economy sucks right now so they'll be happy to be your bitches), hold another meeting with the "customer". You're almost sure to discover that they didn't really need what you're building that much anyway. Oh, well, at least it was good exercise for your developers! At least, for those that are still around. Hold a meeting with your developers, declare victory, and retreat (um, I mean "advance in the opposite direction").

No, I'm not cynical. Honest.

Program Manager != Programmer (4, Interesting)

Osty (16825) | more than 12 years ago | (#2657629)

From the interview's lead-in material:

As a Program Manager on the Microsoft Excel team, Joel designed Excel Basic and drove Microsoft's Visual Basic for Applications strategy.

At Microsoft, the job title of Program Manager is given to the people that design the software. They dream it up, write the specs, hold countless meetings, and basically lay the path for the developers to follow. The developers (Software Design Engineer) are tasked with actually programming that software (and thus would be considered "programmers"). Just to round out the roster, the Software Design Engineers in Test (SDET) write the testing suites used by the test teams, and the Software Test Engineers apply those suites to the code following a test plan that they create. In that heirarchy, only the SDE and SDET jobs could be accurately described as "programmers".


Note that this is actually not so cut and dried, wherein SDEs often do design work and test work, and SDETs often do the work of SDTs. PMs don't program, however (well, aside from javascript&html prototypes, anyway).


The point? Calling this Joel an ex-Microsoft programmer is misleading, because he was not. However, the position he held at Microsoft actually lends more credence to his views on design than if he were actually an ex-programmer, as part of the job description of a program manager is doing software design.


(Brief descriptions of all these job titles can be found at Microsoft's college site [microsoft.com].)

Microsoft's Competitor's Incompetence? (1)

Donut (128871) | more than 12 years ago | (#2657630)

Hmmm....one interesting thread in his article was that Microsoft was able to beat their competitors (in the application space) not with any evil, monopolistic scheme. Instead, Microsoft's software development was less incompetent than their competitors. The two greatest words in the English language! De Fault!

Well, I guess the more-incompetent competitors can always "buy" a nice government lawsuit. That'll make it even.

-Donut

This guy is a turd! (5, Interesting)

king_ramen (537239) | more than 12 years ago | (#2657637)

Ok, I give him points for pragmatism. I don't think anybody in their right mind will criticize Microsoft for failing to capture market share.

However, I feel slimy for just reading that stuff. Here is what I got:

1. Bugs are fine if they get your product delivered.
2. Load in useless features to drive sales, knowing that your code will suck.
3. Once you have gobs of crap code and a large user base, there will never exist the possibility of re-designing things (eg, WinXP) since it doesn't matter that code sucks (see point 1) and all that counts is revenue.
4. Being efficient is a waste of time. Let the hardware catch up with the crap code.
5. The customer never has valid input anyway.
6. Do it fast and furious, even if January 1900 is broken. Consumers are idiots anyway.

These may be great for sales, but ultimately you will build crap. Garbage in, garbage out. I would rather design good software that was well designed and efficient than vomit up mounds of bloat that will ultimately topple under its own weight.

Software built poorly will never hold up over time. If you look at how little UNIX has had to change over the past 30 years to keep up with "The Internet Age" versus the amount of work done to get XP "working", the future looks bleak for Microsoft. In 20 years, their OS need 25GB of RAM simply to boot up. Of course, this seems not to concern them.

Another interesting read... (4, Interesting)

Skim123 (3322) | more than 12 years ago | (#2657643)

From Robert Cringely: Microsoft's C# Language Might Be the Death of Java, but Sun's the One to Blame [pbs.org]

Yes, there are a lot of companies who have been squashed (or, as Joel would say, "Had their lunch eaten") by Microsoft in large part because of Microsoft's money/marketing, but there are also a lot of companies that nose dived into failure because of their own ignorant business and technology decisions.

While Microsoft may not like the costs and annoyance of court cases and DOJ action, it must give them some satisfaction because most of those companies bringing suit against Microsoft are doing so because they think that's their best option. I would argue that for these plantiffs making better products would be a "better option."

Hmmmm (0)

Anonymous Coward | more than 12 years ago | (#2657655)

How To Make Software Projects Fail?

How about asking Microsoft. They seem to do this every chance they get.
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...