Joel Spolsky: The Day My Industry Died
inc.com
inc.com
What about CityDesk? Wasn't that your first product? Did you really go straight from consulting to a successful product, or did you have a second false start? How'd you guys navigate that?
I know the Inc. audience probably doesn't need the details, but I'd be interested in them.
From http://www.joelonsoftware.com/articles/fog0000000009.html (October 2001):
"I've been rather quiet lately on this weblog -- mainly because we've been working so hard at Fog Creek getting ready for the beta of CityDesk, our flagship product."
I have been reading Joel on software for quite a long time, I remember reading that fogbugz was just their home-grown brug tracking system, not intended to be a real "product" at the beggining.
I also remember how Joel used to argue that citydesk would win because no one would like to write a blog using a web interface...
Version history (http://en.wikipedia.org/wiki/FogBugz#Version_History)
Version 2.0 - March, 2001
Version 3.0 - November, 2002
Version 3.1 - February, 2003
Version 4.0 - December, 2004
Version 5.0 - March, 2006
Version 6.0 - August, 2007
Version 7.0 - July, 2009
The truth is it's so big now that it (sadly) manages to sustain a fairly significant underbelly of complete incompetents along with all the qualified people.
Folks who don't understand a new field will throw money at it because they want a serious professional to hold their hand. As the old 80s aphorism put it, "nobody ever got fired for buying IBM"; an executive at an FT100 company, dabbling in the web for the first time, would expect to spend lots of money at the steep start of the learning curve. But once they began to get a clue about how difficult (or easy) the job really was, they'd start to play hardball.
And that's what the early web consultancies didn't understand: they were living on borrowed time, and basing their growth on a commodity that could only scale linearly (web developer/programmer hours).
There's no lack of hype in the current web, but that first bubble was really something to see :)
That is the industry that went away. A few of the little guys (myself included) survived the Mass Extinction, much in the same way that proto-mice survived the alien first strike that killed the dinosaurs.
10 years later, we still aren't seeing any of those giant Consultancies emerging again (at least not onshore). It's just a big mess of little shops. And many of us have product lines to smooth out the revenue curve.
His response? "At least it's a meritocracy!"
Not a bad answer, really. I am glad to have participated in that time (1998-2000) + place (Boston).
One of my favorite stories from those days.
When CS grads can't even program for years after graduation, the solution is not to bring in people with even less training.
While majoring in CS correlates with previous programming experience, it isn't an absolute indicator. College is probably too late to learn the fundamental techniques and mindset of programming, anyway.
* Inasmuch as anybody can really know C++...
[Edit] Anyway, I think that depends on whether said CS major applied himself in college, don't you? I do have friends who graduated out of CS (well, actually we were in CE, but it's close enough) without knowing, or later forgetting, the difference between a class and a function (true story, that. he asked me that question about a year after working in the industry as a "consultant". the bugger works in a big IT consulting firm you've probably heard of). On the other hand, I discovered programming in university, got interested, and kept pushing. I don't claim to be a programming god or anything, but I do at least know how to do fizzbuzz. :)
It also depends on what sort of programming you're doing. If you're talking about typical web apps, then yes, I would agree with you that experience rules. Knowledge of the tools used in that trade are more important than anything a CS course could teach you. However, let's say you do crypto, or write 3D animation software, or any serious number-crunching/algorithmic app. That's an entirely different ball game. I'm sure there are hackers out there who are autodidacts in advanced algorithms, but CS training helps.
Should have made this shorter. In summary, it's never too late and formal CS training helps (if you have interest).
Hmmm, I got nothing. That was perfectly said; I agree completely. I am actually a huge proponent of a CS degree simply for the algorithms and data structures courses. You don't want to know how many times I have seen people doing linear search on a large set of sorted data because they were never paying attention when they got taught binary search.
I am actually a CS/physics major, so I would say that a degree is extremely useful for many of the things that I've seen. One of my projects was writing an elementary OpenGL physics engine that offloaded most of its processing to the graphics card. I can't tell you how much my computer architecture and physics modeling courses helped with this.
Unless you really think it is too late for someone to learn programming starting at the college level. People can learn quantum/high energy/particle/etc. physics or <choose your own advanced field> starting at the college level with no previous experience. Is programming really that hard or is it more a matter of time needed to be invested studying/working becoming better?
It's really a matter of time invested. I should probably take that back about self-trained programmers being better. Instead, what I should say is that self trained programmers are "usually" more interested in programming, which is why they started teaching themselves. If you like programming you will do it a lot, especially outside of class, and that will give you a lot more experience very quickly. On the other hand, I have a number of friends who just started programming in college. Some of these quickly became enamored and did as much outside of class as I do. Although they started behind, I have no qualms that they are as good in a couple years as those who taught themselves. Also, be careful with my statement -- I never said that those who started programming in college will never be as good as those didn't. Instead, my point was that, right out of college, many people will only have 4 years experience (mostly in classwork). In contrast, I am one of a group of people that I know that had contributed to a number of large open source projects and other things (like kernel hacking) before college even started. I'm sure that the smart people who major in CS will have no trouble with doing that in a couple years time, but I'm hesitant to say that 4 years of teaching assignments actually prepare you for programming in industry.
If it's anything beyond the sheer amount of time, it's that 1) people who don't teach themselves will probably be at a disadvantage given how much new material regularly needs to be learned, and 2) there is likely a window during which time picking up new skills is easier. Learning programming is probably analogous to learning a musical instrument, a new language, etc., in that people seem to pick things up more quickly if they start while fairly young. While learning a new API or something once you've been programming for a while is largely a matter of time, but there are Big Ideas that need to be learned upfront. I didn't mean to imply that it's impossible to learn them, just that it's harder.
That said, my main disagreement was with your comment, College is probably too late to learn the fundamental techniques and mindset of programming - this was very reminiscent of the dialogue many religious groups will say about instilling church fundamentals, hence the reason I used the word 'indoctrinated', along with its connotations. As for the mindset of programming, there are many fields who are surprisingly close to the needed mindset, and still, it may be largely a personal matter in as much as some person will have the needed mindset no matter the field they choose.
I certainly have no argument over the amount of time needed to learn programming, and definitely agree that starting in college is much more difficult. It is just that I have been impressed by late learners to programming who came from other fields (mathematics/physics/economics being some of the best to draw from), and as such I can not underestimate the ability of another who came to programming later in life.
Have a nice weekend.
Same here. I would definitely count you as one of the people who worked really hard for a long time. That was my main point -- if you love programming and have an interest in it, then you will develop those ten years of experience easily. However, most people have nowhere near that amount of experience, including CS majors. The one insurance point that a CS degree gives you is that you've been exposed to programming for at least 4 years. In fact, coming out of college, I would put self-trained programmers (like you and me), regardless of degree, above any CS major who just started programming in college. I think CS teaches you a lot of useful things (I regret nothing from my CS theory courses), but when it comes to actually developing applications, experience rules all.
The dot-com boom was a goldrush, and if you look back to the Klondike goldrush 100 years previous you can notice a pattern. There were two groups of individuals who got rich back then: The guys that got there first, and the guys that sold shovels to everybody else.
It's hard to be that First Guy, but it's easy to notice him and set up a shovel stand.
Sadly, we're in exactly the same situation right now: after almost 2 years of exsiting life of self-funded young company in NYC, suddenly most of our customers did not renew, our recurring revenue is being consumed by medical insurance and rent and we're brainstorming on new business ideas... This piece gives me hope, because living off your savings in NYC is scary-scary! :)
BTW if someone is working on something cool in NYC let me know [see my profile].
It's interesting the idea is sort of making a comeback with QR codes and cell phone readers. Perhaps CueCat was just far ahead of it's time (and flawed by not being portable)
From what I recall, that was the primary product and FogBugz was an in-house tool used to track it.
At least it wasn't as mindbogglingly stupid as Dave Winer's MacOS/Win32 desktop/server programming-language/blogging-platform/outliner floor-wax/desert-topping
What IS interesting though is his mention of the Startup.com documentary. If you haven't seen it, and have any kind of passing interest in the startup space or starting your own web company, I strongly suggest you check it out. It's fantastic.
"Typically, self-plagiarism is only considered to be a serious ethical issue in settings where a publication is asserted to consist of new material, such as in academic publishing or educational assignments [13]. It does not apply (except in the legal sense) to public-interest texts, such as social, professional, and cultural opinions usually published in newspapers and magazines."
The Founders at Work interview is at http://www.foundersatwork.com/joel-spolksy.html . The Inc article is not a copy and paste, but it triggered the "seen this before" meter.
I'm pretty sure programmers don't want to hear "you need to be writing functional specs" [http://joelonsoftware.com/articles/fog0000000036.html], "you don't know enough about Unicode" [http://joelonsoftware.com/articles/Unicode.html], "if you don't 'get' pointers and recursion, you just ain't cut out to be a programmer" [http://joelonsoftware.com/articles/ThePerilsofJavaSchools.ht...], or "you should never scrap a working codebase and start all over" [http://joelonsoftware.com/articles/fog0000000069.html]
I thought the trouble was that they were hiring so many people that they couldn't keep the same company culture and in the end the software devs became outsourceable?
To keep all those people busy, and in an attempt to shift from a services company to a product company, a "core engineering" team was created with the task of rewriting the ACS in Java. This further exacerbated the revenue stream problems, because the version of the software we used for client projects was now stagnant, making it harder to get or keep contracts.
In the end the rewrite was never finished before the money ran out, although I think it did live on for a while as some sort of RedHat offering. (The "assets" of the company were bought by RH in the end.)
All they do is spurge illogical capitalist business nonsense for the sake of making a few pounds/dollars/yen etc. The blog is a marketing medium for their products and their mindset. They constantly contradict (think Joel on simplicity a while back).
What about people who do this because they like it and want to help people. What about those people and their motivations. The altruistic nature surrounding these people is far more important than the self-important blog pimps.
And yes CityDesk and FogBugz are crap. CityDesk is a chunk of jumk reminiscent of MCMS 2002. FogBugz is FlySpray with some tartyness and some cost added. So whoopee doo.