Fog Creek Software
Discussion Board




What do I say to this?

From my boss, on completely rebuilding our core product:

"I also think that, if you had no other projects on the burner, that 45-50 working days would be enough to rebuild almost anything from scratch. This is usually enough time for almost any project. I've personally seen very complex software by some friends and people I know in the biz come out in less time. One eg is the guy who wrote homesite. He completely rewrote that in a different language himself in about 30 days back a few years ago."

My response to this was not at all tactful but then I've been working 15 hour days, I have a cold, and I reply to this at 8:00pm.  I'm hoping to be more tactful...  any thoughts?

Almost Anonymous
Monday, November 24, 2003


Call his bluff. Say "Cool! When do we start?"

anon
Monday, November 24, 2003

Site the netscape re-write, or other.

I've worked on a re-write, and I say it was the right decision, but it took about 2 years to produce.  Fortunately our market could wait that long.

christopher baus (www.baus.net)
Monday, November 24, 2003

He's partially correct.  Since you have existing production code you already know the inputs, the outputs, and the expected user experience. You know the requriements and how the code does and does not meed your needs.  That's a huge head start over a completely new program.

That said, it may be possible to recode the core of your program in 50 days.  But there's the whole nagging question of running it through QA, testing it in parallel on production/real world data, and making sure no features were missed.  That doesn't disappear simply because there's preexisting code.

And that's the part he's probably overlooking.

Lou
Monday, November 24, 2003


While you may be able to simply re-code your existing app in 45-50 days (where does 45 come from?), do you really just want a copy of what you have in a new language?

I mean, I presume there was some reason to consider re-coding the app in the first place, right?

anon
Monday, November 24, 2003

(warnng, anecdotal)

PHP: 464630 lines of C.
Apache 1.3.27: 152783 lines of C

50 days has 200 working hours.
50 days has 12000 working minutes

To rewrite PHP, you'd need to write just under 39 lines of code per minute.
To rewrite Apache, just under 13 lines per minute.

I don't care how well you know the inputs and outputs, I don't think its possible.  *Especially* when you start thinking about the man-month problems, and interaction between the developers, meetings, etc.

Andrew Hurst
Monday, November 24, 2003

I said: "..I don't think its possible"

I should clarify that: for medium to large projects, I don't think its possible.  For small projects, (less than 40k LOC in my definition) it probably is, depending on your design.

Andrew Hurst
Monday, November 24, 2003

Almost Anonymous, your boss is an idiot and a pompous blowhard. He has without doubt never programmed or designed anything significant in his life.

Bored Bystander
Monday, November 24, 2003

Yes, you can rewrite almost anything in that amount of time.  (Given a code conversion tool).

Will it work?  No.

At *BEST*, you'll just be exchanging the existing bugs you know about for all new bugs.

Your boss is an idiot.

Richard Ponton
Monday, November 24, 2003

Thanks for stating teh obvious Andrew, but for the "small project" of 40,000 lines, that's 3.9 LOC/minute, which I'm skeptical of since it's well above all known metrics.

Average in industry right now is 13 LOC a day. High production programmers of commercial projects are said to go at 40 LOC/day. (This is the average over working days, implied is that for a given hour of straight coding the output is much higher.)

Me, as an individual programmer, I've done 30k-40k a year.

(Guys wanting to start the standard obligatory slashdot 'LOC is a stupid metric' thread, kindly start a separate thread for that - we are just looking at general issues. Sure, I know you slashdotters could rewrite apache in 7 days with only 15,000 loc and it would run faster and have more features and better stability.)

Dennis Atkins
Monday, November 24, 2003

If you're an employee... aren't there work laws that prohibit making people work 15 hours/day to begin with?

Frederic Faure
Monday, November 24, 2003

Oops, I don't mean 'static the obvious' in a sarcastic way, even though now that I see it it looks that way - I really do mean to say 'thanks', since I was going to post the same and you beat me to it.

Dennis Atkins
Monday, November 24, 2003

>> He has without doubt never programmed or designed anything significant in his life.

Actually, he probably has. The worse offenders in the 'we can code/recode it in <x> weeks' are the managers who used to be programmers but who haven;t done it in years.

Their distorted perceptions of the way it used to be along with their limited grasp of newer technology combine to make them think that any programming problem isn't that hard.

I've worked for several managers like this and have never been able to convince them otherwise.

RocketJeff
Monday, November 24, 2003

Frederic, in the US there are no laws regulating work hours except for a few categories like airline pilot, truck driver, and emergency room nurse.

And among professional classes, there is no way to require workers are paid a cent for any hours worked over 40. Not talking about getting paid overtime, talking about not getting paid anything at all for the hours worked.

Dennis Atkins
Monday, November 24, 2003

meant to say "no laws regulating work hours for 'professionals'"

Dennis Atkins
Monday, November 24, 2003

Let me just clear a few things up:  The app has existed for 3-4 years.  It's in a bad need of a rewrite (though, not to a new language) because it's being used in situations and loads that far exceed it's original design. 

My boss is non-technical; he's not programmer and has never been one.  The only software management position he's ever had is this one, and as such, I generally get free rein over design and implemention.  He is, however, an expert at UI design and designs pretty much all the UI with feedback from myself.

The largest single installation of the program at a client site (with all client-specific customization) is about 1,100 source files.  The smallest installation about 700 source files.

A rewrite would involve changing the core product and changing the client-specific customization as necessary (if the API changes, it it most certainly will).

Almost Anonymous
Monday, November 24, 2003

"If you're an employee... aren't there work laws that prohibit making people work 15 hours/day to begin with?"

In this case, I got a big bonus for being able to complete a roll out under a very short deadline (a deadline that was known to all parties as being nearly impossible without 15 hour days).

So basically I was paid for my overtime and I agreed to it.

Almost Anonymous
Monday, November 24, 2003

a) The guy who wrote Homesite as probably both a genius and in love with his product.

b) If what you say was true, he was the guy who wrote it in the first place, and he probably had no other responsibilities, and nothing to distract him from his task.

In other words, he was a Homesite expert, knew the requirements like the back of his hand, and probably learned from his mistakes implementing it the first time.

This is very hard to do in a business environment. He probably locked himself in a closet and coded it, the same way Eddie Van Halen locked himself in a closet and taught himself to play guitar.

Netscape is probably a better analogy, though it's not strictly a port, and the requirements were different. On the other hand, it's a different group of people working on it, and it had to be a re-write rather than a straight port.

www.MarkTAW.com
Monday, November 24, 2003

Luckily for you comes this weeks KJR:
http://www.issurvivor.com/

ted
Monday, November 24, 2003

Your boss is an idiot:  [3]

Even managers close to a product really have
no idea about the product itself. Most programmers
have no idea either.

What are the current problems and what is your
strategy for fixing them?
Would you want to rethink the database? Licensing?
Login/authentication? Messaging? The language?
Any 3rd party libraries? Testing methodology?
Architecture? Cross platform? Any of these could be
a week easy.

son of parnas
Monday, November 24, 2003

Any project?  So, Microsoft could rewrite Windows XP if they wanted to in 50 days?  What's taking them so long to come out with Longhorn, then? 

Tell him you've done project design estimates all your life and that if he thinks he can gainsay the opinion of a software professional who actually knows how to write code, based only on the anecdotal knowledge of a completely unrelated project, then he should do the rewrite himself and quit wasting your valuable time.

Alyosha`
Monday, November 24, 2003

"... 1,100 source files..."

I agree with whoever said your boss is an idiot.  Find a new job, fast.

Grumpy Old-Timer
Monday, November 24, 2003

Can you say what the current language is?  I've never seen that many source files in a single project in any laungage except for MUMPS.

Guy Incognito
Monday, November 24, 2003

"Can you say what the current language is?  I've never seen that many source files in a single project in any laungage except for MUMPS."

1 file per class.
1 file per screen.
1 file per function module
(sets of similar purposed functions)
Plus configuration files and other misc stuff

Probably my estimate is a little high because I did include a few inconsequential files (I just used the properties page in explorer to come up with my estimates).

I have a small C++ project for the Symbian smart phone OS and it's 100 files of source/headers and configuration/build files.  This is project I'm working on now is way more than 10 times more complicated than that even if it only has 10 times as many source files.

The number of source files is as good a metric as KLOC's so take it with a grain of salt.  I was just hoping to give a rough estimate.

Almost Anonymous
Monday, November 24, 2003

1100 source files isn't uncommon.

christopher baus (www.baus.net)
Monday, November 24, 2003

45-50 working days to rewrite this product sounds ridiculous.  That's 2-3 months for a software package with 700-1100 source files.  Insane!

However, 45-50 days of refactoring and adding extensive unit tests (refactoring test-first whenever possible) would probably do amazing things for the code base, without requiring a full rewrite and without "breaking" things in the meantime.  See also Joel's article on never rewriting a product from scratch.

OK, let me modulate my first response a bit: I've worked on projects with hundreds of source files that would have only taken a few weeks to rewrite from scratch.  That's because they had a lot of internal cruft relative to their actual user-visible functionality.  The hundreds of source files don't embody hard-earned knowledge as Joel might claim; they embody a bunch of crap written to satisfy an architecture astronaut that contributes nothing to the actual operation of the application.

I've also been in situations where rewriting an application from scratch in Cocoa is easier and faster than porting the existing source code to the Mac.  This is often the case with relatively small applications that use lots of standard user interface elements, and is particularly true if the client only needs to target Panther (Mac OS X 10.3).

Chris Hanson
Monday, November 24, 2003

"My boss is non-technical; he's not programmer and has never been one.  The only software management position he's ever had is this one,"

For not having any formal training, he seems to be quite an 'expert' at defining how long a project should take to complete.  He will probably go very far in this industry (and I don't mean that sarcasticly).  He probably talks this kind of talk to impress his higher ups who are probably less technical then he is.   

I'm curious if this kind of lunacy exists in other fields, i.e.
A construction boss who has no formal trainining in civil engineering, tells his crew, "Yeah, we should be able to tear this bldg down and build it back up in X amount of days, I saw it done on Bob the Builder."
-Or-
The director of a staff of surgeons with no formal training in medicine, "Yeah, we should be able to take an old heart and replace with new transplant, in X amount of hours.  I saw it done on ER".

Why does IT seem to lend it self to this type of management situation?

Cletus
Tuesday, November 25, 2003

... lots of people have used computers.

When was the last time you picked up a scalpel?

Pick Me! Pick Me!
Tuesday, November 25, 2003

"When was the last time you picked up a scalpel?"
High school biology.  I remember disecting a frog and a pig.  I guess that makes me an expert now. 
Plus, I have watched a countless hours of episodes of ER, Chicago Hope, Quincy and Doogie Howser.

Cletus
Tuesday, November 25, 2003

> Why does IT seem to lend it self to this type of management situation?

It's because programmers as a group have not formed a self-protecting group that excludes others via licences and so on. This means programers have no power in decisions affecting their work, since they can't withdraw their labour.

Corporations are scared of this and will be working to prevent it happening.

We're coming
Tuesday, November 25, 2003

Programmers should protect their profession more.

Programmers who work on open-source are the guys pissing in the pool we all are swiming in.

.
Tuesday, November 25, 2003

Sorry "anon", but I think the OP's answer should be "Cool! When do you start?"


Tuesday, November 25, 2003

> PHP: 464630 lines of C.
> Apache 1.3.27: 152783 lines of C
>
> 50 days has 200 working hours.
> 50 days has 12000 working minutes
>
> To rewrite PHP, you'd need to write just under 39 lines of
> code per minute.
> To rewrite Apache, just under 13 lines per minute.

Teoretically a team of developers can do that. Practically an expereinced developer may write about 10-30 lines of code per day. Integration, bug fixing and documentation will take addition time.

Evgeny Gesin /Javadesk/
Tuesday, November 25, 2003

"I quit!"

correct answer
Tuesday, November 25, 2003

"Here's a soft toy monkey, I respectfully suggest it would be better at software management than you. Why don't you go back to alphabeticising the phone directory, or some other task more suited to your intellectual capabilities."

Mr Jack
Tuesday, November 25, 2003

The problem is, most management has no *specialized* skills that can be measured. So you can't challenge him to strip and rebuild his car in 30 days because he'll claim he isn't a domain expert.

It might be better to respectfully disagree, and print/photocopy some of the better literature on the topic and if he isn't the type to get offended, give it to him to peruse at his own leisure.

www.MarkTAW.com
Tuesday, November 25, 2003

Just tell your boss he's a bloody wanker and to piss off. Then head off to the nearest pub, pick up a pretty lass and bang her like there's no tomorrow. Live for the moment, I say.

Faux Englishman
Tuesday, November 25, 2003

*  Recent Topics

*  Fog Creek Home