Voice Mail: Hello! The person you're trying to reach is not here at the moment.
Spolksy: Not here?
Voice Mail: Please leave your message after the tone.
Spolsky: Voicemail? [tone] Mwahhh... Umm, hi, Jeff. This is Joel calling, and... ah... so... like... ah... what's up? Ah... OK. Bye. How — how do you get voi—voicemail with... with Skype?
Atwood: Hey Joel.
Spolsky: It IS StackOverflowed, episode... Stack Over, Overflow Flowed — let's start again.
Spolsky: BLEH BLEH BLEH BLEH BLEH...
Atwood: Why — uh — ah, you're, you're very excited today about the podcast. I think a little too excited, frankly.
Spolsky: Ah, I just had some coffee. Coffee — YAY!
Atwood: Yes, this is this is episode 28 I do actually know the number this time, I looked it up.
Spolsky: Welcome to stackoverflow episode 28.
Atwood: That's right, me and Joel Spolosky. I just wanted to get my mispronunciation out of the way immediately.
Spolsky: Ok, Mr. Jeee Jeee Jeeeep Jeep?
Atwood: I got an email from somebody on one of the stackoverflow aliases umm challenging me to pronounce his name. I was like, I'm not even going to try because I will fail.
Atwood: I have a challenge... I have a pronunciation related challenge for you.
Atwood: It's not that difficult actually.
Spolsky: Yeah, I can do it, I can do it.
Atwood: The new hotness from the PDC was the whole cloud services thing...
Spolsky: Ah. Azzzsshurree!
Atwood: [laughs] Yeah. I pronounce it Azure. Uh, Joey deVilla, uh, probably mispronouncing his name as well, Joey the accordian guy, I don't know if you've seen his blog, it's really fun, "The Accordian Guy in the 21st Century", he's a really nice guy, he now actually works for Microsoft, he went through a bunch of startups, and uh, he's Canadian -- I don't hold that against him -- and uh, very cool guy, I got to meet him, and one of the first things he asked me sorta on camera, they did a little video clip of me was, you know, how do you pronounce "A Z U R E" ...
Spolsky: Mmmhmm... Well, OK it doesn't matter what the programmers say. Alright, finish the story.
Atwood: [laughs] Well ... now I'm curious about what "doesn't matter what the programmers say"... that's my entire story...
Spolsky: It's a color so the only thing that matters is how the interior designers pronounce it. "It's AZURE darling"... AZURE.
Atwood: Yeah, it's a cool name. You've gotta give Sun credit for actually picking a name that's not stupid, like Enterprise Edition Cloud Services Service Pack 1 or whatever.
Spolsky: Here's my feeling about project managers:
One of the things that is interesting is that project managers, traditionally, are brought on because you have a team of yahoos - and this is just as true in construction, or in building an oil rig, or in any kind of project as it is in the making of anything - making a new car at general motors, or designing the new Boeing 787 dream liner - as it is in the software industry. Project managers are brought in because management says: "Hey, you yahoos! You're just working and working and working and never get the thing done and nobody knows how long it's going to take." If you don't know how long something's going to take and you can't control that a little bit then this really sucks from a business perspective. I mean; if you think of a typical business project - you invest some money and then you make some money back. The money you make back - the return on investment - might be double the amount of money you invest and then it's a good investment. But if the investment doubles because it took you twice as long to do this thing as you thought it would then you've lost all your profit on the thing. So this is bad for businesses to make decisions in the face of poor information about how long the project is going to take and so keeping a project on track and on schedule is really important.
It's so important that they started hiring people to do this and they said: "OK, you're the project manager - make sure that we're on track." These project managers were just bright college kids with spreadsheets and Microsoft project and clipboards. They pretty much had to go around with no authority what so ever and walk around the project and talk to the people and find out where things were up to and they spent all their time creating and maintaining these gigantic gantt charts - which everybody else ignored. So the gantt charts, and the Microsoft project, and all those project schedules, and all that kind of stuff, was an artifact created by a kind of low level person. Although it might be accurate depending on how good that low level person was, but it was still an output only thing from the current project: Where are we up to? What have we done? How much time have we spent? What's left? Who is working on what?
Then, for some reason, these relatively low level people, who were not actually domain experts, (if they were at Boeing they don't know anything about designing planes, if they were on the software team they're not programmers - they're project managers, and they don't know anything about writing code) they start getting blame when things went wrong and they started clamoring for more responsibility, more authority to actually make changes and to actually influence things and say: "Hey, Joe's taking too long here - we should get Mary to do this task, she's not busy." The truth is that they started getting frustrated because they were low level secretarial-like members of their teams and they wanted to move their profession up the scale so they created the project management institute - or whatever it's called - and they created this thing called... ah, I don't even know! But they created a whole professional way to learn to be a professional project manager and they decided to try to make it something a little bit fancier than just the kid with the clipboard that has to maintain these gantt charts all day long. You can tell this is what happened because the first thing project managers will tell you about their profession is that the most important thing is that they have the authority to actually change things and that they are the ones that actually have all the skills that can get a project back on track, or to keep a project on track, and therefore they need to have the authority to exercise these skills otherwise they'll never get anything done, they'll never be able to keep the project on track, they don't just want to be stenographers writing things down.
The trouble is, they don't actually have the domain skills - that's why they are project managers. If you are working on a software project you know how to bring it in on time and you've got to cut features, and you know which features to cut, becuase you understand software intrinsically and you know what things are slow and what things are fast and where you might be able to combine two features into one feature, where you might be able to take a shortcut. That's the stuff a good developer knows, that's not the stuff a project manager knows. In a construction project it's the architects and the head contractors who know where shortcuts can be taken and how to bring a project in on time not the project manager. The project managers don't have any of the right skills to affect the project and so they inevitably get really frustrated and everybody treats them like secretaries, or treats them like 'annoying boy with clipboard', when they really don't have a leadership role in the project - and they're not going to be able to because they don't have the domain expertise. No matter how much they learn about project management, no matter how many books they read, or how many certificates they get, no matter how long they've been doing project management: if they don't know about software, and software development, if they don't have that experience, they are always going to be second class citizens and they're never going to be able to fix a broken project.
Atwood: That's a great summary! Certainly I've had that experience and I think that, as a programmer, we value technical skills and it really is hard to take people seriously who don't even know enough to know if you are telling them complete BS. That's the danger. If you want somebody in that role, that's fine, it has to be someone who has a programming background or can tell when you are telling them crap, or lying to them, or not being straight with them. You just have to have some technical expertise is the key.
Spolsky: That's the most important thing: Every developer figures this out on day number five. All you've got to do if there's a feature that you don't want to do is you have to say that's going to take six years. And if there's a feature you really want to do you have to tell everybody it's going to take two weeks.
Atwood: No no no. Joel, you say it's gonna take six to eight weeks.
Spolsky: Six to eight. Six to eight! You know, we had - I'm almost embarrassed, because I sort of laughed at him, but we had a programmer here at Fog Creek who wanted to rewrite everything in the new programming language. Long story. Basically, he had a sort of plan to reimplement the complete underpinning of Fogbugz, which was basically a complete rewrite of Wasabi to be a .NET language, and porting a bunch of stuff, and I said: "Okay, how long is it gonna take?" And he said, with a straight face: "Two weeks." And I said: "HA!"
Atwood: That's ridiciluous.
Spolsky: "You probably think I was born yesterday!" Ha ha ha.
Spolsky: We did do it. It took six months. It took the whole team six months.