New York City gets a Software Engineering High School
This fall New York City will open The Academy for Software Engineering, the citys first public high school that will actually train kids to develop software. The project has been a long time dream of Mike Zamansky, the highly-regarded CS teacher at New Yorks elite Stuyvesant public high school. It was jump started when Fred Wilson, a VC at Union Square Ventures, promised to get the tech community to help with knowledge, advice, and money.
Im on the board of advisors of the new school, which plans to accept ninth graders for fall of 2012. Heres why Im excited about this new school:
1. Its a limited, unscreened school. Thats Board of Ed jargon. It means that any student who is interested can applytheir grades and attendence record are not taken into account in deciding whether or not to admit them, only their interest. I think this is the best thing about the school. A lot of kids are just not interested enough in other academic subjects to get good grades, but they would make great software engineers. A lot of immigrants (especially in New York) are not yet proficient enough in English to get good grades in all their subjects, but theyre going to make great software engineers, too. And in my humble opinion, a school that accepts a cross-section of students is bound to be more enriching than a school that only accepts academic superstars.
2. OMG do we ever need more software engineers. The US post-secondary education system is massively failing us: its not producing even remotely enough programmers to meet the hiring needs of the technology industry. Not even remotely enough. Starting salaries for smart programmers from top schools are flirting with the $100,000 mark. Supply isnt even close to meeting demand. This school is going to be pretty small (in the 400-500 student range) but the Board of Ed has promised that if its successful itll be used as a template for more schools or for special programs inside larger schools. I predict that they will be overwhelmed with applicants and this will be the most popular new school in New York City in years.
3. And we need more diversity, too. One of the reasons the elite US colleges seem to turn out so few computer science majors every year is that they are only drawing from a narrow pool of mostly white and asian males. Minorities and women are embarrassingly under-represented. Hopefully an unscreened school in New York City can pump a lot more diversity into the pool.
4. Its not a vocational school. Unlike traditional vocational schools, this new school will have a rigorous academic component and will prepare students for college. But college is not for everyonemany of the best programmers I know were just not interested enough in a general four year degree and went straight into jobs programming.
Im pleased to be involved in this project, but it needs more help: theyre still looking for qualified computer science teachers and a principal. If youre interested drop me an email and Ill make sure it gets through to the right people.
Need to hire a really great programmer? Want a job that doesn't drive you crazy? Visit the Joel on Software Job Board: Great software jobs, great people.
How Trello is different
Just a few months ago, we launched Trello, a super simple, web-based team coordination system. The feedback has been overwhelmingly positive and adoption has been very strong, even in its early, 1.0 state.

Trello is new kind of development project for Fog Creek. Its 100% hosted; there will never be an installed software version of Trello. That allowed us to modernize many aspects of our development process; I am happy to announce that there is absolutely no Visual Basic code involved in any part of Trello. Whats next, flying cars?
The biggest difference youll notice (compared to our previous products pitched solely at software developers) is that Trello is a totally horizontal product.
Horizontal means that it can be used by people from all walks of life. Word processors and web browsers are horizontal. The software your dentist uses to torture you with drills is vertical.
Vertical software is much easier to pull off and make money with, and its a good choice for your first startup. Here are two key reasons:
- Its easier to find customers. If you make dentist software, you know which conventions to go to and which magazines to advertise in. All you have to do is find dentists.
- The margins are better. Your users are professionals at work and it makes sense for them to give you money if you can solve their problems.
Making a major horizontal product thats useful in any walk of life is almost impossible to pull off. You cant charge very much, because youre competing with other horizontal products that can amortize their development costs across a huge number of users. Its high risk, high reward: not suitable for a young bootstrapped startup, but not a bad idea for a second or third product from a mature and stable company like Fog Creek.
Forgive me if I now divert into telling you a quick story about my time spent on the Microsoft Excel team way back in 1991. (Yes, I know you were not born yet, but I assure you that computers had been invented. Just hop up here on my knee and shut up.)
Everybody thought of Excel as a financial modeling application. It was used for creating calculation models with formulas and stuff. You would put in your assumptions and then calculate things like if interest rates go up by 0.00001% next year, what percentage of Las Vegas homeowners will plunge into bankruptcy? For example.
Round about 1993 a couple of us went on customer visits to see how people were using Excel.
We found a fellow whose entire job consisted of maintaining the number of injuries this week spreadsheet for a large, highly-regulated utility.
Once a week, he opened an Excel spreadsheet which listed ten facilities, containing the name of the facilities and the number 0, which indicated that were 0 injuries that week. (They never had injuries).
He typed the current date in the top of the spreadsheet, printed a copy, put it in a three-ring binder, and that was pretty much his whole, entire job. It was kind of sad. He took two lunch breaks a day. I would too, if that was my whole job.
Over the next two weeks we visited dozens of Excel customers, and did not see anyone using Excel to actually perform what you would call calculations. Almost all of them were using Excel because it was a convenient way to create a table.
(Irrelevant sidenote: the few customers we could find who were doing calculations were banks, devising explosive devices called derivatives. They used Excel to maximize the bankers bonuses on nine out of ten years, and to cause western civilization to nearly collapse every tenth year. Something about black swans. Probably just a floating point rounding error.)
What was I talking about? Oh yeah... most people just used Excel to make lists. Suddenly we understood why Lotus Improv, which was this fancy futuristic spreadsheet that was going to make Excel obsolete, had failed completely: because it was great at calculations, but terrible at creating tables, and everyone was using Excel for tables, not calculations.
Bing! A light went off in my head.
The great horizontal killer applications are actually just fancy data structures.
Spreadsheets are not just tools for doing what-if analysis. They provide a specific data structure: a table. Most Excel users never enter a formula. They use Excel when they need a table. The gridlines are the most important feature of Excel, not recalc.
Word processors are not just tools for writing books, reports, and letters. They provide a specific data structure: lines of text which automatically wrap and split into pages.
PowerPoint is not just a tool for making boring meetings. It provides a specific data structure: an array of full-screen images.
Some people saw Trello and said, oh, its Kanban boards. For developing software the agile way. Yeah, its that, but its also for planning a wedding, for making a list of potential vacation spots to share with your family, for keeping track of applicants to open job positions, and for a billion other things. In fact Trello is for anything where you want to maintain a list of lists with a group of people.
There are millions of things that need that kind of data structure, and there hasnt been a great list-of-list app before Trello. (There have been outliners, but outlines are, IMHO, one of the great dead ends in UI design: so appealing to programmers, yet so useless to civilians).
Once you get into Trello, youll use it for everything. I use about thirty Trello boards regularly, and I use them with everyone in my life, from the APs (Aged Parents), with whom I plan vacations, with every team at work, and just about every project Im involved in.
So, ok, that was the first big difference with Trello: horizonal, not vertical. But there are a bunch of other differences:
Its delivered continuously. Rather than having major and minor releases, we pretty much just continuously push out new features from development to customers. A feature that you built and tested, but didnt deliver yet because youre waiting for the next major release, becomes inventory. Inventory is dead weight: money you spent thats just wasting away without earning you anything. Sure, 100 years ago, we had these things called CD-ROMs and we shipped software that way, so there was an economic reason to bunch up features before we inflict em on the world. But theres no reason to work that way any more. You already knew that, of course. Im just sayingI stopped using Visual Basic about five minutes ago. Brave New World.
Its not exhaustively tested before being released. We thought we could get away with this because Trello is free, so customers are more forgiving. But to tell the truth, the real reason we get away with it is because bugs are fixed in a matter of hours, not months, so the net number of bugs experienced by the public is low.
We work in public. The rule on the Trello team is default public. We have a public Trello board that shows everything that were working on and where its up to. We use this to let customers vote and comment on their favorite features. By the way, while Trello was under development, it was secret. We had a lot of beta testers who gave us customer feedback so that the development team could use lean startup principles, but the nine months we spent building version 1.0 in secret gave us a significant lead in a competitive marketplace. But now that were shipping, theres no reason not to talk about our plans.
This is a Get Big Fast product, not a Ben and Jerrys product. See Strategy Letter I. The business goal for Trello is to ultimately get to 100 million users. That means that our highest priority is removing any obstacles to adoption. Anything that people might use as a reason not to use Trello has to be found and eliminated. For example:
Trello is free. The friction caused by charging for a product is the biggest impediment to massive growth. In the long run, we think its much easier to figure out how to extract a small amount of money out of a large number of users than to extract a large amount of money out of a small number of users. Once you have 100 million users, its easy to figure out which of those users are getting the most value out of the product you built. The ones who are getting the most value will be happy to pay you. The others dont cost much to support.
The API and plug-in architectures are the highest priority. Another way of putting that is: never build anything in-house if you can expose a basic API and get those high-value users (the ones who are getting the most value out of the platform) to build it for you. On the Trello team, any feature that can be provided by a plug-in must be provided by a plug-in.
(The API is currently in very rudimentary form. You can already use it to do very interesting things. It is under rapid development.)
We use cutting edge technology. Often, this means we get cut fingers. Our developers bleed all over MongoDB, WebSockets, CoffeeScript and Node. But at least theyre having fun. And in todays tight job market, great programmers have a lot of sway on what theyre going to be working on. If you can give them an exciting product that will touch millions of people, and let them dig deep into TCP-IP internals while they try to figure out why simple things arent working, theyll have fun and theyll love their jobs. Besides, were creating a product that well be working on for the next ten years. Technology thats merely state of the art today is going to be old and creaky in five years. We tried to go a little bit beyond state of the art. Its a calculated risk.
None of this is very radical. TL;DR: Fog Creek Software develops an internet product using techniques that every Y-combinator startup has been using since spez was sleeping with his laptop so he could reboot Reddit when Lisp crashed in the middle of the night. If you havent tried Trello yet, try it, then tell me on twitter if it worked.
Need to hire a really great programmer? Want a job that doesn't drive you crazy? Visit the Joel on Software Job Board: Great software jobs, great people.
Should you launch at a conference?
Should you launch at Launch? (Or TechCrunch Disrupt? Or Demo? Theyre all pretty similar).
This year I launched two major new products at conferences: Careers 2.0 and Trello, and both times, it was totally worth it.
First, a little background. There are three popular conferences where you can launch new products: Launch, TechCrunch Disrupt, and Demo. They all work the same way:
- You apply. If you have a half-decent product that is genuinely new, youre likely to get a spot. That said, hundreds of companies apply for these conferences with unbearably awful products, so theres always a risk that youll get lost in the noise.
If you get in, you will have a chance to give a demo on stage for exactly six minutes. There will be some celebrity judges who will give you a few sentences of honest feedback about your startup. (Heres how our demo went down).
- Even if you dont get a slot presenting, you may have a chance to set up at a little table in the conference area where you can show off your product to passers-by.
- The official promise is that youll get exposure to a lot of journalists and VCs, and this will launch your startup on the way to huge success. The truth is, well, complicated, but Ill get into that in a minute.
- At the end there is a winner. For example at Disrupt the winner (chosen by a panel of utterly uncorruptable, gazillionaire judges) receives a check for $50,000. There are between 30 and 50 startups presenting at each conference, and the politics behind who wins are murky enough that you should basically assume that the chance of winning is zero. Theres always going to be a Netflix for Cabbage or a Second Life for Facebook that the judges fall in love with. So the benefits of winning, which is vanishingly unlikely, should never factor into your decision as to whether to go or not.
So, are these conferences worth it?
Lets look, individually, at the two big promises of the conferences: exposure to VCs and exposure to the press.
Are VCs at these conferences? Absolutely. Does going to one of these conferences get you funded? Its complicated.
- If you have a brilliant product, a great team, and youre eminently fundable, but you dont know any VCs yet, and you launch at one of these conferences, you will meet a bunch of VCseven some top notch onesand the conference may actually get you funded. At the last TechCrunch Disrupt, the finalist judging panel consisted of some of the best investors in Silicon Valley. If you made it to the finals, these folks now know who you are and what your product does, and if your company is fundable, theyll all take your call.
- That said, if theres some reason your product is not fundable, all the conferences in the world cant help you. Yeah, you may have a chance to present to a bunch of unknown VCs wandering around looking for investment ideas, but most of them wont actually invest in you and those that will may be more trouble than theyre worth.
Ive been tossing around the word fundable without defining it. Every entrepreneur thinks their Mint.com for Laundry Tickets is the most fundable idea ever, and all VCs should be dying to invest, if they would only sit still for the brief 62 minute demo!
No. Technically, whether youre fundable has to do with things like traction, the total size of the opportunity, the quality of the team, whether you build moats (?), and a bunch of other gibberish that VCs like to tell themselves in their heads so that they dont think theyre just spinning bottles.
But its too hard for an entrepreneur to evaluate their own fundability. So heres a working definition of fundable which is all that matters for you as an entrepreneur:
- If youre knocking on VCs doors and they all seem to be opening, youre fundable. If you keep getting more meetings, more introductions, and good vibes, keep going. Youll get funded.
- If youre knocking on VCs doors and they all seem to be closed, youre not fundable. These days most VCs will just tell you why. If you cant get a second meeting with anyone, just stop. Youre beautiful, youre smart, and youre going to change the world, but you happen to be non-fundable, so just stop. Either change the company or the product, or find a way to make your product popular and successful without investors.
So, that said, if you dont know any VCs and think you might have a fundable company, a conference like Launch or Disrupt will get you your first intros.
Now, on to the other promise: Press and publicity.
It is possible, nay, common, to launch at one of these conferences and get NO press whatsoever. Zero. Nada. At Disrupt youre guaranteed at least one mention in TechCrunch, but youll soon discover that TechCrunchs tech-industry insiders may not really be the audience you need.
Yes, there are a lot of journalists at these conferences. Disrupt probably had about 200. When we launched Trello this week, you know how much press we got?
Four stories.
Home