While I realize that the plural of anecdote isn't data, this is pretty much my point exactly. The venture capitalists take a large position for a small amount of money... minimizing the risk and maximizing their potential profit. the founders try to play a similar game with their highly skilled employees. Welcome to capitalism.
The way to get good people to work with you is to be the kind of person people want to work with. Seems obvious to me. I have worked with jerks, and with people I continue to love and admire to this day. Like many of you, I'm sure.
Since I am sadly a shitty programmer, I had to take my inspiration from baseball managers… people who did not play the game, but tried their best to make sure that the team won. you don't win by leaving your best pitcher in for nine innings. (Usually :-). You try to put people into situations where they can succeed, day after day.
Well, you just have to say no. if your business works for clients, the clients will always kill you if you let them. insane demands, low ball bids, etc. this is as old as capitalism, and particularly found in advertising agencies... and printing companies. I am sure you can add examples. If you want to run your business like a third world country, you obviously can.
No, I meant a five… Or maybe four who knows…day work week. Please excuse my imprecise math. :-). And while I realize that there are exceptions, I would be delighted to get four solid hours of good coding daily from any programmer.
I love your words "...five lines of algorithmically beautiful code..."; this beautiful functional minimalism is what engineering is really all about; and it solves problems not only in the present but also in the future. And code that isn't there runs really fast and never has any bugs...
Hi Michael. I think that Apple in those days is a field that is well-plowed. folklore.org is a particularly fun site.
Start-ups? Business is business. it can be as high-stress or as peaceful as you decide to make it. Software development, these days, is often dysfunction practiced as an artform. :-) Give SCRUM a shake, and waterfall drops to the floor, quivering in embarrassment. Add your examples here. My best development advice is solve the hard problems first, not last. If there are no hard problems, look again. If all parts of the development process are equally difficult, then it should be fairly easy to estimate time to complete...to over-simplify...
This has worked through-out history. Alexander The Great attacked the enemy line at its strongest point, with well-rested, fired-up troops, who knew the battle would be fierce but short. Ditto Patton and Colin Powell. And Karl Rove perfected going at an opposing candidate's greatest strength; a lesson learned by the Obama campaign…thank goodness. :-)
Okay, one last thing. Richard Branson, a business genius, said "Praise people and they flower; criticize them and they wilt." So praise and cheerlead and mentor relentlessly. And, like the best baseball managers, put people in positions where they can succeed. I could go on... :>)
My Bangladesh team actually tell me the opposite; they want critique, not praise. If they get praise they will stop working as they feel they over delivered. Guess it depends on where your people are and what culture they are from.
I believe there is some subtlety to this. As a Norwegian I notice Americans co-workers often crave more praise and positive feedback than say Northern European co-workers. Americans also more actively give praise. However that doesn't mean that Northern Europeans don't like to be praised. But one needs to feel that the person giving it is honest about it. I try to give praise when I know people have performed better than is normal for them.
I know myself that I find it just irritating if I get praise for mediocre work, which should be plain to see for anybody who care that it isn't anything special.
I don't know Bangladesh culture but I would expect that there would be similar mechanisms at work. They don't want unwarranted praise. They wanted when they have performed well.
I am guessing because from when I lived in the US, there was one thing I could find common ground among all other foreign students whether they were Japanese or Spanish and that was that American optimism and positivism is a bit alien to everybody. Don't misunderstand I think it is quite admirable that Americans are so positive and can-do attitude. The rest of the world could certainly learn a bit from that. But as with most things there is always a flip side of the coin.
Sometimes Americans seem to hit the wall of reality a bit too hard because optimism was running a too high compared to what was realistically possible.
It is common here in Northern EU to see Americans as almost 'crazily optimistic'. Like you say (and this goes especially for the very 'sober' people like the Dutch and scandinavians); the first time you run into Americans in real life it's really jikes. You look SOO good, that's SOOO GREAT what you do etc. I (from Netherlands) got more compliments in one week in the US than I ever did in the Netherlands my whole life (that's probably not true, but I felt like that). So as we are very sober, those compliments are rapidly filtered and then they are not compliments anymore. But on the other hand, I do admire it more than the other side of not getting compliments mostly and I like the optimism much more. I do like well founded criticism but I believe that's different than what my BD colleagues want.
Hehehe cool I didn't know you were dutch. I lived in Holland for 3 years. It was eerie how similar I found Dutch to be to Norwegians despite living in countries with very different history and physical appearance. I find that foreigners complain about the exactly same thing about Norwegians as Dutch. Being too direct, blunt, cold etc.
Anyway interesting with the BD colleagues of yours. I am most familiar with Vietnamese. I can't remember anything in particular about their view on criticism. But they preferred very detailed descriptions of what they were supposed to do.
I like this bit. Very good advice, no doubt. But what about "no pain, no gain"? Or, conversely, if it doesn't hurt somehow, you can be pretty sure you're not making any progress. It applies to intellectual pursuits like software development as well as high-achievement sports. You don't have to extend the thought very far to come to a similar conclusion, that you're not going to solve hard problems without a bit of suffering. Similarly I don't think Hertzfeld and co. built the Mac by working 35 hour weeks.
What you call crunch time is what I call poor project management. I started out as the managing editor of a daily newspaper. We shipped an entire product every day. We never slipped, we never missed a daily deadline… Just like every other daily newspaper. And there was never a OMG OMG crunch time as the daily deadline neared. If you manage a project correctly, when the deadline arrives you'll be sitting around telling jokes and admiring your work. I've done it many times. It can be done and it is not that difficult.
To be fair, making the average daily newspaper is a different kind of project than how most software is made. Print is mostly a fixed process with few creative unknowns. You know how long it takes for something to get through editorial or advertising, how long it takes to lay it out or drop in a replacement, what time the printer needs the layouts to be able to get the final papers to distribution, and what price and time are involved in special features or changes, like spot color or losing some number of copy inches at the last minute. But much of software is something new, the automation of some process or creation of efficiency. Software projects, almost by definition, have some of the players doing something they've never done before. Parts of the processes are similar, but software and daily print projects aren't really comparable for most of the cycle.
I have been a manager in both businesses. of course there are differences; but there are also many similarities. the big idea is that if there is a firm, inflexible deadline, you will meet it. You may not ship the product that you really wish to ship, but you will ship. and, to be honest, feature X that has to be in the product, probably can just as easily go in the next release. Don't let the best be the enemy of the good. Be realistic about your capabilities.
Then yes, if you limit it to the subset of software projects that can cut features and still be considered to have met the deadline, then you can meet inflexible deadlines in software projects. You've defeated technical unknowns and external dependencies with the escape hatch of "Feature x, or whatever ship-worthy part of that you can have done by date y".
In that scenario, I think you're implying that meeting a deadline is the most important metric. I consider that far more likely in periodicals than software. For the common varieties like commercial software, contract development, and in-house development, the only one likely to permit that idea is the commercial product. Contracting and in-house projects will adjust the ship date or renegotiate requirements.