last updated:06 Aug 2003 14:05 UK time
|
 |
|
(Comments added for week ending Sun 03 Aug 2003) | View Other Weeks
|
|
| When you can't find qualified applicants ... | Sun 03 Aug | anon |
| This subject came up here recently - too few qualified applicants to choose from when hiring. It must be a hot topic lately as hiring is on a slight uptick because several friends have mentioned the same thing, and the subject came up on a mailing list I subscribe to.
The common thread that I found was that most of the companies that were having trouble finding qualified applicants were hiring for C/C++ positions.
Is this what other people are finding too?
Ive seen several theories batted around:
1. The talent pool has been diluted by the proliferation of languages. Many shops haved moved away from C/C++ so the % of developers using them has dropped.
2. Many C++ developers have worked within the MFC framework. While their knowledge of MFC may be good, their knowledge of language fundamentals isnt that good because the apps they develop are fairly simple and dont require them to stray far beyond the MFC toolset.
3. Many older developers have just plain left the business and newer ones are subject to #1 above.
4. The final theory that Ive heard is that the job market is tighter so employers expectations are higher. An typical employer would have had the same mix of candidates 5-10 years ago but would have been more willing to take on inexperienced developers and train them.
Comments and opinions? |
| Sun 03 Aug | Phil McKraken | The problem is employers false advertise jobs or may actually think that the job requires proficiency in some language or tool. It goes back to As hire As, Bs hire Cs. It seems the Bs and Cs are trying to fill a position they do not understand and want a god willing to to work for a low salary. If they ever fill the position the god quickly becomes bored and leaves or gets fired. |
| Sun 03 Aug | Andy | It depends what you think of as qualified... I think of myself as a qualified C++ programmer, but quite frankly some of that stuff in the latter part of the C++ thread was language lawyer junk. People who love that kind of stuff are likely going to sit around discussing new programming language paradigms rather than actually coding and producing profit.
I don't think language proficiency is necessarily a good judge of a good programmer. There are a lot of practical skills you need, like good debugging skills, that don't necessarily come hand in hand with knowing every part of the C++ standard. I think a good test is to see who uses static_cast rather than (T*) : ) |
| Sun 03 Aug | one programmer's opinion | Anon,
'The common thread that I found was that most of the companies that were having trouble finding qualified applicants were hiring for C/C++ positions.'
Some of the theories you mentioned seem to me to be reasonable explainations. The problem as I see it is that every employer has their own definition of what constitues a qualified job applicant.
'When you can't find qualified applicants ...'
IMO a professional programmer is more than just a warm body who has memorized the syntatic and semantic rules of a particular programming language. Among many other things, a professional programmer knows how to design software applications and can learn how to productively use a similiar (i.e. C++ programmer who needs to quickly learn about Java) programming language within a couple of weeks.
Frankly, I amazed that so many employers are bitching about not being able to find qualified job applicants. The market is currently flooded with people who have the memorization part down (i.e. people who have a variety of certifications, H-1B workers, etc.) and this seems to be about the only thing most employers test for nowadays. |
| Sun 03 Aug | T. Norman | It all boils down to the fact that in most companies the nonprogrammers run the IT shop or HR drones are screening resumes, and they don't know how to determine which candidate has the best chance of doing a good job if hired. So they play Wheel of Fortune with buzzwords.
They also don't realize that if a system has components in multiple languages and platforms, it is not necessary for each individual to have expertise in all of the languages and platforms. If they have a system built with Java and Oracle running on a Linux server which talks to a legacy COBOL subsystem, and VB and C++ on the client, they want ONE person who is an expert in Java + Oracle + Linux + COBOL + VB + C++ + Windows/MFC.
Another problem is that most of the good and smart people already have jobs, and they aren't looking to change jobs because in this economy it takes a huge effort to find a job and they aren't likely to find something that pays more than what they already earn. |
| Sun 03 Aug | Dennis Atkins | There are no companies whatsoever with acceptable working conditions and market salaries that are having the least bit of trouble finding qualified applicants. |
| Sun 03 Aug | Julian | Above-average programmers are less likely to be layed off compared to below-average programmers and will generally find new positions more quickly. Consequently, a vast majority of job-seekers are below average.
Obviously, there are lots of good coders in the job market; they're just outnumbered by people with weaker skills. |
| Sun 03 Aug | anon | '... market is currently flooded with people who have the memorization part down (i.e. ...people who have a variety of certifications ...) and this seems to be about the only thing most employers test for nowadays.
Really? I don't do consulting and haven't been on the job market lately, so I hadn't heard of this. In fact, I thought that programming certifications didn't mean jack to most employers, unless you're doing consulting or the company is a MS Partner.
'Another problem is that most of the good and smart people already have jobs, and they aren't looking to change jobs'
This seems pausible.
'There are no companies whatsoever with acceptable working conditions and market salaries that are having the least bit of trouble finding qualified applicants.'
Actually, the guys I know who were having trouble finding good candidates both worked for good companies that paid good salaries. Plus I don't but it because of the C/C++ angle. I don't hear anyone saying, gee, we can't find enough good Java, VB, or even .Net coders. I only hear it about C/C++ (especially C++). |
| Sun 03 Aug | one programmer's opinion | 'Really? I don't do consulting and haven't been on the job market lately, so I hadn't heard of this. In fact, I thought that programming certifications didn't mean jack to most employers, unless you're doing consulting or the company is a MS Partner.'
When it comes to certifications and their value it really depends on what type of employer and what type of programming you are talking about.
'Actually, the guys I know who were having trouble finding good candidates both worked for good companies that paid good salaries...'
You never did mention:
* What type of programming your buddies do for a living.
* The type programming experience they are looking for.
* Where and how they are looking for suitable candidates.
There are many different types of software developers out there that have C++ programming experience on their resume. I wouldn't expect a currently unemployed in-house corporate developer (who has C++ and perhaps two or three other programming languages on their resume) to know much about developing software for the gaming industry, embedded software, etc. |
|
| Microsoft Millionaires | Sat 02 Aug | Dave B. |
| During the boom, nearly every full-time Microsoft employee set up a computer spreadsheet that, with the touch of one key, displayed a real-time accounting of his stock-option fortune.
http://story.news.yahoo.com/news?tmpl=story&cid=1804&ncid=1804&e=2&u=/washpost/20030803/tc_washpost/a15231_2003aug2
Interesting article. |
| Sun 03 Aug | Mark Hoffman | Hmmm..Sounds like Microsoft has been either directly or indirectly responsible for channeling millions upon millions into charities.
I hope this doesn't degenerate into a stupid flame war, but it would be interesting to see how much money some of the most stringent MS-haters and Open Source advocates have given to charity. I really have no idea. Do folks like Stallman even have money to give away?
And I am referring to money here, not software. One might argue that the Open Source crowd has given billions away through their software, but I don't think the starving kids in the ghettos really have much use for a copy of Linux with a specially configured version of sendmail. |
| Sun 03 Aug | ludditetroll 1000 | Heh, you need to space out the old 'I detest flamewars, but here's the old Microsoft charity trolll...' It's just not gonna work so soon after the big opensource flamewar. |
| Sun 03 Aug | Mr. E. Lurker | 'how much money some of the most stringent MS-haters and Open Source advocates have given to charity'
The ones with a comparable income (I would guess) have made comparable donations. Unless part of the assimilation into the MS empire includes 'thy shall tithe to charity'. |
| Sun 03 Aug | Philo | I can turn it into a different flamewar then. :-)
This is what conservatives and market economists refer to as 'trickle-down economics' - if some people get rich, invariably the entire society profits. Those millionaires employ yard workers, construction workers, accountants, etc, etc. They buy American cars. They buy food at the grocery store. A lot of them donate to charities. They pay property taxes, which fund the local schools.
They put money in the bank, which enables the bank to make more loans and hire more employees.
Funny thing is, it generally seems to work. Go figure. ;-)
Philo |
| Sun 03 Aug | ludditetroll 1000 | That's an interesting part of economics. It seems that under certain circumstances trickle-down is quite healthy for the economy, while other times it just ruins things. I wonder if anyone can explain the variables involved? What makes good trickle-down legislation vs. bad? |
| Sun 03 Aug | Alyosha` | Of course, there's a lot of other things rich people can do with their money, most of which doesn't benefit the common citizen. They can just as well buy Japanese and German cars, luxury items, they can 'invest' their in high-risk ventures, they can build over priced houses and jack up the housing costs for everyone else in the area, they can donate to the G.W. Bush reelection campaign. (reelection? okay, election) Some like to accumulate wealth just for the sake of accumulating wealth ...
The other school of thought is that more government spending can spur the economy ... money that goes into public works, highways, teacher's salaries, the military, etc.
There is an odd little delusion among some libertarians that the moment we're not forced to pay taxes, suddenly we'll just all voluntarily be more generous with our newfound wealth and there will be great gobs more money for worthy causes ...
It depends on your point of view. Some thing we're too far to the left of the Laffer curve, some think we're too far to the right. I happen to think we're up near the flat part, and that monkeying with the tax rate in either direction is going to be detrimental. |
| Sun 03 Aug | Philo | just as well buy Japanese and German cars,
-> many of which use imported American parts or are even built in the US. Those that are imported pay tariffs on the import.
luxury items,
-> Which money goes to pay the salaries of the people that make said luxury items
they can 'invest' their in high-risk ventures,
-> Paying salaries of the people working in those ventures.
they can build over priced houses
-> Paying the salaries of the people working for the builder
and jack up the housing costs for everyone else in the area,
-> 'Jacking up housing costs' has two effects: 1) people that own houses have to pay more in property taxes (which goes to the government to spend - you should applaud that, right?). 2) People who own real estate can sell at a profit, earning more money. I fail to see the problem here.
(reelection? okay, election) Some like to accumulate wealth just for the sake of accumulating wealth ...
-> Generally they keep it in the bank (I addressed this) or they buy stocks (investing in companies, which raises the value of the stock for every stock holder as well as enabling that company to employ more people)
The other school of thought is that more government spending can spur the economy ... money that goes into public works, highways, teacher's salaries, the military, etc.
-> public works, highways, and teacher's salaries are paid for with state and local taxes, not federal. The military is paid for with federal taxes, but let's admit that it's generally rare for someone to advocate larger government *and* a larger military. ;-)
FWIW, I personally believe that increased government spending hurts the economy, since that increased government spending has to come from somewhere, and that somewhere is generally taxation - taxation takes money away from people who can spend it on the economy...
Philo |
| Sun 03 Aug | Alyosha` | 'I personally believe that increased government spending hurts the economy, since that increased government spending has to come from somewhere, and that somewhere is generally taxation - taxation takes money away from people who can spend it on the economy...'
Government is part of the economy. It's not just some black hole where money goes and never comes out again.
Public spending creates jobs just the same as private spending, whether it's on the federal, state, or local level, and public spending puts money into the hands of regular people.
Private spending has to come from somewhere too, you know. An general increase in prices has the same effect as an increase in taxes.
In an economic downturn, the problem is that there's too little demand and too much supply. People are hanging on to their money and businesses are suffering because of a lack of consumer demand. It's a bit like a Lexus dealership in the ghetto. Supply-side economics says that if we gave the Lexus dealer more money, he could hire more people to sell more Lexuses. But the problem isn't supply. The problem is that the people aren't spending -- they have no extra money to spend. In a downturn, stockholders will just take their tax cuts and run; the market will not give them a better return for their money. In times like these, taxation is actually more effective at getting those dollars out of people's pockets.
Supply-side economics only make sense if there's too much demand and it's the supply side that's hurting.
On the flip side, government is just as prone to waste and corruption as the private sector. You should be careful not to write government a blank cheque. After a certain point, it's morally objectionable to force someone to pay for items they don't support. I don't want you to get me wrong and think I'm a big-spending liberal. I'm as much for fiscal responsibility as the next guy.
Which is why I think the US needs regime change in 2004, btw ... |
|
| Store Hierarchy in Treeview tag property | Sat 02 Aug | VB Monkey |
| I have a hierarchy similar in nature to files and folders (I guess any hierarchy is )
I used to maintain the hierarchy separately using linked lists and collections but the associated performance hit was prohibitive.
Consequently, I now store the object itself (group or item) in the tag property of the tree that displays it. This allows me to pretty much ignore the editing issues associated with changing the tree with the exception of move up/down and changing levels through cut, copy and paste.
The speed is excellent and Ive had no apparent problems but Im wondering if Ive overlooked anything?
Thanks |
| Sat 02 Aug | Brian R. | In C#, tree nodes are objects. Are you inventing your own .net? hehe.
Oh, that's right, in VB tree nodes are a collection, hah? ah, yes, easier to understand collections, but I guess performance is the tradeoff.
Haven't compared speeds myself, just saying. |
| Sun 03 Aug | Wayne | I think what VB Monkey is saying is that he has a virtual hierarchy (object model if you will) that was previously only *represented* by the tree, but who's hierarchy is now *managed* by the tree.
Personally I think it's a good idea if you're not planning on re-using the object model in a non-gui situation. What could be simpler?
I usually deal with hierarchies by using custom objects because I try to leave all of my apps open to the possibility of scripting them with the MS Script Control or Web Browser. If I were to expose a Treeview to a scripting environment then add-in developers would have too much control. But there is a small performance hit I suppose.
It all depends on the situation. |
| Sun 03 Aug | John Aitken | It's a not uncommon technique.
If you're doing it in VB6 or earlier and associating the treenodes using ObjPtr() values, then you should AddRef() the objects first unless you're maintaining parallel references somewhere else... also there should be parallel Release() calls before you remove any nodes.
You'll want to be careful about this in order to avoid invalid object references on the one hand, or memory leaks on the other.
If large heirarchies are accessed via a tree control, it's really better to build the tree on the fly using node event notifications in order to have decent performance - ie. if the thing is going to be huge and you build it all up front obviously you're going to have a load delay. |
| Sun 03 Aug | VB Monkey | Do you have any references John? I've looked and only found an 8 year, relatively poor article.
There is a load delay but the responsiveness is excellent so the couple seconds has not been an issue.
Thansk again! |
|
| books about consulting business | Sat 02 Aug | Max Thomas |
| Together with another 2 guys, I own a small consulting business. We do custom software development using Java and .NET.
I would like to grow this business to 10-20 employees, and maybe more.
Can you recommend a book about doing this, and especially about finding larger projects (which seems to be the problem right now)?
Thank you very much! |
| Sat 02 Aug | Joel Spolsky | http://www.dorsethouse.com/books/soc.html
'The Secrets of Consulting' |
| Sat 02 Aug | Joel Spolsky | http://www.peripatus.gen.nz/Books/ManProSer.html
'Managing the Professional Services Firm' |
| Sat 02 Aug | Max Thomas | Thank you, Joel.
Does anybody have a good book title related specifically to custom programming firms (preferably in the Internet age)? |
| Sun 03 Aug | one programmer's opinion | Max Thomas wrote, '...custom programming firms (preferably in the Internet age).'
Why would you want to read any of those type of books? The formula for growth within a typical Internet age type of firm was simple. Come with a business plan and find VCs who would fund your growth.
IMO, you should be reading books (similar to the ones Joel posted here) that discuss how to grow your business slowly. This usually means hiring a good rainmaker (someone who can sell) or partnering with businesses which provide complementary services. |
|
| ASP to PHP Compiler? | Sat 02 Aug | Shlomi Fish |
| From the weblog:
<<<
Fog Creek Summer Intern James Levin is writing an ASP to PHP compiler:
>>>
Is this going to be based on asp2php (http://asp2php.naken.cc/)?
Else, what would it be used for? Is FogBUGZ going to have a PHP version? |
| Sat 02 Aug | Brad Wilson (dotnetguy.techieswithcats.com) | If it was for converting FogBUGZ (which I presume, since their other product is not ASP-based), then you have to remember that the scope of the converter project is much smaller. It doesn't have to convert every ASP page in the world successfully, just all the FogCreek pages.
Given that constraint, then I'd say unless asp2php is more or less done and full featured, it might make sense to roll it in-house. |
| Sat 02 Aug | S.C. | Joel only hires people who get things done and done smartly, so the intern must be good.
But if that conversion is a key move, he probabily won't let a summer Intern do it. Maybe Joel's product is not going to support other OSes in the near future. Maybe he just has some ideas in his mind he wants to try out. That's why he lets the guy to write a compiler instead of using a third-party product.
Joel talked about Wordstar and Netscape. He knows what kinda mistakes can kill a start-up business in no time. |
| Sat 02 Aug | S. Tanna | If you only have to do it once on one app, and you can then manually fix up to get round the limitations/bugs in the converter ... it's a lot easier than doing a general converter? |
| Sat 02 Aug | Thoughtful | Maybe it's cover fire. |
| Sun 03 Aug | www.marktaw.com | He's a summer intern. Maybe he's doing it for extra credit at school and it has nothing to do with Fog Creek. |
| Sun 03 Aug | Brad Wilson (dotnetguy.techieswithcats.com) | Does Joel strike you as the type of person who'd have someone around, doing something of no value for the company? :) |
| Sun 03 Aug | S. Tanna | Well if it really works and is general, I'd be interesting in buying a copy |
|
| Philo and lawyers | Sat 02 Aug | radius |
| Philo,
I follow JoS only off and on, so pardon me if I have this wrong, but from postings youve made it looks to me as though you used to be a lawyer then took a degree in EE and are now a software consultant.
Do you mind if I ask why you chose that road? Many engineers I know are thinking about how they can move into business or law. Im suprised that anyone would consider switching the other way around.
People here are always bitching about global competition in software and technology; whereas it seems to me that law is a meet-the-client profession with strong barriers to entry.
So what makes software more satisfying than law? To me, they seem very similar... looking at text with great attention to detail.
Anyone else out there made the same switch? How about in the other direction? |
| Sat 02 Aug | Geoff Bennett | It's actually the other way around, and he did it to get the chicks. |
| Sat 02 Aug | Philo | LOL! Geoff's got it right, except I already had the one chick when I got the law degree.
I got a BSEE straight out of the Naval Academy, and went into the Navy. After about six years I decided the Navy and I weren't getting along, so I needed a fallback position - I applied to law school and took evening classes while I was on shore duty.
During my day job I picked up an assignment writing a training database in Access. Basically dragged myself into modern database programming via that project.
Got a medical discharge before I finished law school, had to pay the bills, so I put myself on the market as a programmer. That was 1998 - the early stages of the dotcom boom.
Finished law school, passed the bar, got my license, enjoyed programming too much to give it up, so here I am. [grin]
Philo |
| Sat 02 Aug | Philo | As for 'why is software more satisfying than law':
1) *Any* software project can 'win' - you are always building something constructive and, conditions permitting, will deliver. Logically, half of all legal efforts must fail (in any court case, one side loses). Admittedly it's not that cut-and-dried; there's transactional work that's not adversarial, settlements can make both sides feel like they won, etc. But the bottom line is still true. And oh by the way - often whether you win or lose is in the hands of twelve people you don't know.
2) Lawyers are past ultraconservative. A law firm that successfully leverages modern technology is a bizarre exception, not the norm.
3) Many law firms are strongly autocratic - what the partner says, goes. End of discussion.
4) Law firms are, in generaly, very political. You have [x] associates and [x/y] partners - only partners make the huge money, and every associate wants to be a partner. In addition, you are expected to bill a certain number of hours per year. At some firms that number is 2100/year. Remember you can only bill hours that you are working on a case, so if you're lucky 2500 hours working might produce 2000 billable hours.
5) 'Casual Friday' means you can take your coat off.
6) Experience outside the legal field doesn't count. If I went to work at a law firm, after 14 years of real world experience, I would start on roughly the same footing as a 24 year old first year associate.
That said, the legal world is of course always an option for me. It's just that so far it's not really an attractive option.
Philo |
| Sat 02 Aug | sgf | >>
Remember you can only bill hours that you are working on a case
<<
Yeah, I believe that. :) |
| Sat 02 Aug | xyzzy | Lawyers love to go to trial so that they can bill two clients at the same time. In court there is a great deal of slack time. For example, while the Judge is instructing the jury, while there is a recess, or (maybe) while the opposing lawyer is examining witnesses.
During this slack time lawyers will work on another case. Both clients get billed: The one involved in the trial, and the one the lawyer is working on at the same time.
I've been on a jury twice, and was amazed both times how distracted and incompetent all the lawyers on both sides really were. If a lawyer needs to defend me, I would really like to have his full attention.
Philo is right though. Even with double-billing it is hard for lawyers to get the 2000 billable hours per year. |
| Sat 02 Aug | Philo | 'During this slack time lawyers will work on another case. Both clients get billed: The one involved in the trial, and the one the lawyer is working on at the same time'
This is unethical and grounds for disbarment. Now, that's not to say that there aren't lawyers who do this, but IMHO there are far more who don't.
Let's put it this way: do you want people to form their opinion of you as a software developer based on the scriptkiddies who consistently deliver crappy product late and over budget? Then why judge attorneys the same way?
Philo |
| Sat 02 Aug | . | A friend of mine has a master's degree in mechanical engineering and is a patent attorney in manhattan. Patent law seemed kind of interesting, you basically just research weird shit all day. I was kind of sick of my job (contract progammer), so on a lark I took a practice LSAT, and got 174. This is pretty good, so I studied a bit and took the June LSAT and got a 178.
Then i started looking more into patent law. All the big firms are in Manhattan. You have to bill out 2100 hours a year. You only get paid about $50 an hour, until you hit partner...which is in 7 years. In contrast, I've been making more than $50 an hour for the past 10 years, and for the past 5 years have been making more than 2x that per hour.
I think there is a misconception that lawyers are better off than programmers. This might be true if you compare good law partners to bad programmers. But for every partner in manhattan, there are 100 junior attorneys in tampa working in real estate law for $40,000 a year.
If you are thinking about law, there are a couple of cool things i found on the interweb:
http://www.infirmation.com
you can basically find the associate salary at any law firm in the country on that site.
also, the tucker max faq has an amazing rant about why you should not go into law:
'Do you want to waste three years of your life debating stupid and utterly irrelevant minutia? Then yes, get your JD. Do you want to get a degree that allows you work the rest of your life in a tedious, shitty, unrewarding job? Then yes, get your JD. Are you a boring, facile, socially retarded whore, desperate for the illusion of money and success, regardless of the cost to your life and the lives of those you love? Then yes, get your JD. Do you want to squander your existence sitting in a lifeless office, churning out ultimately meaningless paperwork? Then yes, get your JD. Listen to me people: There is a reason that lawyers have the LOWEST job satisfaction of any profession in America. THE JOB SUCKS. It is horrible. If you know any lawyers, ask yourself: Are they happy with their job or their life? 90% of the time, the answer will be no. If the answer to that question is yes, then ask yourself, 'Do I like that person.' The answer will be almost always be no. The only lawyers who like their jobs are the sketchy ones that are the reason lawyers jokes are so prevalent and popular. Do you want to be that person? If so, then yes, get your fucking JD. '
http://tuckermax.com/Misc/faq.htm |
| Sat 02 Aug | Robert Moir | 'I think there is a misconception that lawyers are better off than programmers. This might be true if you compare good law partners to bad programmers. But for every partner in manhattan, there are 100 junior attorneys in tampa working in real estate law for $40,000 a year. '
Doesn't this simply boil down to the old adage about 'The grass is always greener on the other side of the fence' ? |
| Sat 02 Aug | Philo | Actually, I'll argue against that rant. Just about everywhere it says 'get your JD' it should say 'become an attorney'
Even though I'm not practicing, I have zero regrets about getting my law degree. Perhaps I'll write it in the same style as the rant:
'Do you want to understand the various forces that affect your life, understand the laws Congress is passing that determine how they will spend your money, understand your rights and responsibilities every time you interact with another person? Then GET YOUR JD'
It's really quite an eye-opener, mostly as to how little the average layman understands about the rules that govern his/her life.
Philo |
| Sat 02 Aug | . | as the poster of the above rant, i have to chime in to say that I agree with philo. Since I did well on the LSAT, and spent my college years dealing with really arcane subject matter, I think I 'd actually do really well in law school, and find the subject matter interesting. However, from the research I've done, I really _don't_ have any desire to work in a typical law firm. If I can shake my addiction to consulting, and write a product that I can sell (instead of selling my time), I still might try to do it. |
| Sat 02 Aug | Herbert Sitz | 'Lawyers love to go to trial so that they can bill two clients at the same time. In court there is a great deal of slack time. For example, while the Judge is instructing the jury, while there is a recess, or (maybe) while the opposing lawyer is examining witnesses.'
Idiotic. Trial time is peak-experience time for lawyers. Almost every second is spent at hyper-attention, whether something is going on or not; you're running scared because you're thinking something is going to happen that blows your case. Attention is focused like that for an athlete in a sporting event. For example, in the paragraph quote above, a lawyer would be listening extremely carefully to exactly what the judge is saying to the jury, to make sure all of it is correct. (In larger cases, parties may even devote lots of time without the jury around arguing over exactly what and what may not be said.) And there is no lawyer who is not rapt with attention when a witness is being interrogated by opposing counsel.
That paragraph is just the worst of the misinformation in this thread. But there's lots more.
I practiced law for four years, one at a small 5 lawyer firm and one at a large 200+ lawyer firm. Very different experiences. In my case, both very good experiences, but I'm glad I'm not doing it anymore.
One big difference from programming: Law is adversarial. Most lawyers are working against another lawyer most of the time. This is most apparent in litigation, but even in transactional stuff you are promoting the best interests of your client and have to be very careful that the other side doesn't somehow take advantage of you.
Another big difference from programming: I think I've written some posts about it here on JoS before, but the law is ambiguous and vague in a way that programming rules are not. In fact, a big part of what lawyers do is exploit ambiguity and vagueness in ways that further their client's interests. This isn't to suggest anything illegal or anything about loopholes, etc. It's just the nature of law. In many situations, in fact in exactly the situations where a lawyer is most likely to be involved, it is not entirely clear what is required by the applicable legal rules, or even what the applicable legal rules are. Lawyers have to make the best argument they can in favor of an application of the rules that favors their client. The problem, the judge cares nothing about whether a rule favors your client, the judge is interested only in who can come up with the best interpretation of the rules for this situation: i.e., an interpretation that fits with the text of the rules, and where the interpretation of applicable rules both fits with the text of the rules and where this interpretation is consistent with the applicable rules' interactions with other rules in the huge sea of 'non-orthogonal' rule systems that is our nation's body of law. (I think I've written something about the 'non-orthogonality' of law in another JoS post.)
As a litigator, it can be very difficult to always be in an adversarial position. You have to be extremely careful of making even a small mistep that the other side can take advantage of. In document discovery, which can be a big part of life as an associate at a big firm, tempers often rise and voices often get raised as a lawyer thinks the lawyer for the other side is improperly withholding relevant evidence that they are bound-by-law to reveal. Of course, that may be the case, but the other side may think there are good reasons to believe revelation of that material (e.g., privileged communications) is not required by law, and in fact that it would be breach of the laywer's legal duty to his or her client if they were to reveal it.
I don't know how much of an idea this little explanation gives you of the difference between law and programming. But I would say a big part of the difference is that lawyers work within a nebulous web of rules, bound to further their clients' best interests and often with another side working vigorously against them. The rules of a processor or a language aren't nebulous. If you follow them your program will run. Lawyers spend a big part of their time trying to figure out what exactly the rules are and whether and how they apply to a given situation. They argue about rules. Whether the lawyer is right or not is not determined by a piece of hardware that will always yield the same answer with the same inputs, it's determined by a judge who may not even be as smart as the lawyers making the arguments. Also, a lawyer can make a fantastic argument and lose, if the judge decides to that certain facts apply that make the lawyers argument irrelevant; lawyers argue about 'the facts' and 'the law that applies to those facts'. If your client brings you bad facts, your hands are essentially tied. You could be the best lawyer in the world and lose out to an idiot lawyer who couldn't argue his way out of a paper bag.
All of these are just general differences. But there is also huge variation in what lawyers do on the job. My job at a five lawyer firm was entirely different from my job at a 200 lawyer firm. (And I believe the vast majority of lawyers in private practice are are at firms of 20 or less. ) Big firms get most of the press, but there are actually far more smaller firms.
Here are a few more differences:
Despite what some people have said in this thread, lawyers are generally paid a lot more than programmers. I mean, think about it. $150/hour is a very cheap rate for a lawyer to charge. At big firms in the cities your rate would quickly go up from there. If the firm is not giving you a big enough chunk of what you bill, you leave and start your own firm (by yourself or with others) or you go to another firm with better pay. Associates at big firms are paid salaries, but almost always they receive generous bonuses if they bill more than a certain number of hours. In many cases, the yearly bonus will be explicitly tied to the number of hours you bill, so, effectively, you are not in the position of an ordinary salaried employee who can be overworked without seeing any financial benefit.
A lawyer who works in solo practice or with other lawyers at a small firm, is effectively in business for him or herself. Billing 2000 hours a year (that's 40 hours a week for 50 weeks) at $150/hr generates $300,000 of potential revenue. Even if all clients don't pay (which is a certainty) and even after subtracting overhead for offices and support staff, a good solo practice lawyer is going to make a good chunk of change.
Given the many threads I've seen from complaining programmers about working 60, 70, 80 and hour and more weeks at a fixed salary that's not even very good, I don't know why anyone would think 2000 billable hours per year is especially high. Even someone who slacks off while they're at work should not require more than 60 hours per week to generate 40 billable hours. Less if you're focused and keep your nose to the grindstone. And it should be obvious that billing $150/hr as a small-time lawyer is more potentially lucrative than most programming careers. How many programmers can get steady work at $150/hr? Plus, you can be your boss.
Even if you work in a big firm where the partners run things, this is quite a bit different from most jobs as programmers in a business where decisions are made by managers who aren't programmers. In big law firms, the managers who run the business ARE the lawyers. They have the same technical expertise as the associates who work for them, except in most cases they work harder and they have more expertise. The typical big-firm partner is a workaholic. It's almost a complete fabrication of law-school students to think that the parters sit back while the overworked associates make them rich. Are the associates often overworked? Yes. Does a large part of revenue they generate end up in the pockets of the partners? Yes. But the partners are usually working just as hard, and they went through the same process on the way up. If you don't like it, you go somewhere else.
I could go on and on, but I really just want to say is that a low of what you hear about being a lawyer is bunk. It can be an intellectually stimulating, rewarding profession, but as someone else said I think the number of people who actually thrive in it and enjoy it is small.
The odds of being happy as a lawyer go up, I think, if you work in a small firm where you run things with the other lawyers. Your job has more of a 'small business' feel this way.
I should also add that lawyers do far more than work at large or small private practice law firms. For example, huge numbers of lawyers work for the government or as employees of corporations. Their jobs can be much different, and they don't have any private clients that they work for so they obviously don't charge hourly fees, just get a straight salary, typically less than what they could make in private practice, but they don't have many of the private-practice headaches.
Lots of lawyers also never go into practice after law-school, or leave practice within a few years of starting their legal careeer. They may find employment where their legal skills will still be a benefit, even though the job may not need to be filled by a lawyer. |
| Sat 02 Aug | mackinac | Herbert,
That was a very interesting posting. There have been a few times during the past couple of months when the thought of giving up software development and going to law school has crossed my mind. It is not likely, though. I haven't quite given up on the idea of a technical career and will probably make a less drastic change.
You wrote: >>> Even if you work in a big firm where the partners run things, this is quite a bit different from most jobs as programmers in a business where decisions are made by managers who aren't programmers. In big law firms, the managers who run the business ARE the lawyers. <<<
This is what makes law look like a better career than software development. The technology I was working with on my last project was as interesting as I could hope for. If I had written down a description of what I wanted to work on it might be a description of that project. Unfortunately, the management sucked all the joy right out of that project. In the end it took twice as long as planned, was buggy, and the work environment was stressful. But as far as management is concerned developers are commodities to be shuffled around to meet budget goals.
I have had a few good experiences with software development, in a small company, owned and run by managers who had been developers. These companies are rare and disappear after a few years, but the thought that I might find another one is what has, so far, kept me from giving up completely on a technical career. |
| Sun 03 Aug | radius | Great replies. Much more insightful than I was hoping for.
I may be in a different situation than most posters since I'm an embedded guy and not business or financial software guy, but I've played with the idea of studying law for quite a while.
To me there seem to be quite a lot of 'anti-competitive' advantages in entering that field.
1) Education
In Canada, a law degree is almost always your second university degree. That means that unlike software, you won't be competing against the Teach Yourself In 21 Days crowd. (I'm actually getting really sick of the self taught people who bash University education).
Now granted, in a lot of engineering firms, most people have at least an M.Sc., but to me that's not really the same difficulty level (ie: building on a base of what you already know as opposed to broadening your knowledge).
2) Language
Unlike Java or C, which are global, law is usually done in the language of your locality (except commercial law and some other exceptions). This one's obvious. Tough luck on the English speakers though :)
3) Accreditation/qualification
You need to be a member of a professional association to practice (be it bar, law society or whatever equivalent). It's obviously in their best interest to make the standard for foreign qualification very high, to limit the number of foreign trained lawyers who are allowed to practice.
I've never heard of software or electronics requiring this.
4) Meetings with clients
There is generally a need to meet personally with the client so you have to be on location.
When I decided to study engineering I chose it in part because I thought there was a need for it world wide and that therefore I could move to any country and practice (subject to licensing issues). It didn't occur to me at the time that it would also mean that competition would also be on a global scale and that so much work would get sucked into places like China with incredibly low salaries and high supplies of Ph.D.s.
I'm wondering if entering a very 'local' type of field would be better in the long run. And getting paid for overtime sounds like a fantasy come true :) |
| Sun 03 Aug | David | What Herbert said.
I'm not a lawyer, but I'm married to one. They do have difficult jobs, they work very hard and they are generally paid very well (my wife works for public schools, so she's an unfortunate exception to that last rule).
One point I'll dispute is the ease with which you can bill 2000 hours. At my wife's firm the 'unofficial' goal for associates is 1800 hours and fewer than half of them actually make that each year. They do work long hours (longer than I do), but much of their work is not billable. Despite what you see on TV and read in Grisham books, most attorneys do NOT inflate their hours
One point I'll make is that although some aspects of law and programming are similar (the strong analytical reasoning) and even though many programmers would do quite well on the LSATs (because of the strong analytical bent), the work is quite different. Most programmers avoid writing (English, not code) like cats avoid water - well attorneys write an obscene amount. They also read an obscene amount of mind-numbing legal documents. It's just not the kind of work many programmers really would do well at.
And lastly, don't believe what you see on TV. The vast majority of lawyers spend about .0001% of their time arguing court cases in front of juries. Don't think my wife has been in front of a jury yet. |
| Sun 03 Aug | Philo | 'In Canada, a law degree is almost always your second university degree. That means that unlike software, you won't be competing against the Teach Yourself In 21 Days crowd.'
No, you're going to be competing against the type-A obsessive/compulsive kill-to-win crowd. If you've spent time around software developers and it's sunk in at all, you may not enjoy this agressive, cut-throat bunch.
They're not all like that, of course - manymany lawyers are very good people and can be great friends, mentors, and peers. But I think trading one end of the personality scale for the other could be a bit of a shock. [grin]
Philo |
| Sun 03 Aug | Philo | David, I also question Herbert's allegation that it's so easy to bill. I have a friend who busted his ass for a year to make his bonus quota (2200 hours). In December his managing partner decided to cut a deal with a client and not bill a bunch of their hours. That makes those hours nonbillable. Suddenly he finds that instead of having a nice comfy 2200 hours, he's got to work nights and weekends to make his 1900 hour quota to keep his job.
As for a sole proprietor making 2000 hours 'easily' - any entrepreneur in the world will tell you that when you own your own business, you can count on spending 25-50% of your time on nonbillable work: networking, marketing, administrative overhead (get a secretary? guess who pays for that?), etc, etc, etc. You also have to pay for office space, phone service, etc, etc, etc.
Most 'hang your own shingle' articles for lawyers aren't about investment strategies for the money you'll be rolling in - they're about making sure the mortgage gets paid until you're solvent.
By the way, law firms are currently in a squeeze just like anyone else.
Philo |
| Sun 03 Aug | Herbert Sitz | You're quite right to question my saying it's easy to bill 2000 hours. I didn't say that, I never billed anywhere near that.
What struck me was that people on JoS who complain about working 60, 70, 80 or more hour work weeks would have difficulty biling 40 hours of work a week. Maybe they would, but only if they're wasting a lot of time. You would find that you become a lot more focused when all your time is 'on the clock'.
If there's work available, you'd have to be pretty inefficient not to have 2/3 of your time at work be billable. That's what's required to bill 2000 hours when you're 'working' 60 hours a week. Difficult, but there are lots of lawyers who do it, and they're not doing anything shady with billing, either.
I have one friend who's a partner and typically works 6 1/2 days a week (only half a day in the office on Sunday. He's in the office at least 10 hours a day. And he's billed as many as 2,400 hours a year. Easy? No. Would I do it? Never. But I have no doubt that he does, and that he's billing things honestly.
Mostly, I think programmers and almost everyone else exaggerates how many hours they work. 2,000 billable hours may not sound that hard. But it's damn hard. Lots of lawyers do it, though, and with honest billing, too. |
| Sun 03 Aug | Herbert Sitz | One thing I should maybe have added to my original post is that a J.D. has become for many almost a 'general purpose' business degree. Certainly not to the same extent as an M.B.A. But along those lines. Lots of people who get law degrees decide not to become lawyers but their degrees are still valuable to them in a business profession, much as an M.B.A. can be valuable to somone in a business career. |
| Sun 03 Aug | Herbert Sitz | 'Most 'hang your own shingle' articles for lawyers aren't about investment strategies for the money you'll be rolling in - they're about making sure the mortgage gets paid until you're solvent.'
Well, for a lawyer fresh out of law school with no experience and no established clientele there will certainly be a difficult start up period. But for someone who is smart and willing to work hard the odds are good that they'll end up making a very solid living even in smaller cities, i.e., over $100k/year.
There will be a slow startup period even for established lawyers who start a solo practice. It won't last as long, though. And I'm not talking just about solo practice, there are huge number of lawyers (probably more than are solo) in small 2 to 10 lawyer firms. Odds of success probably go up when you start out for one of them (they provide at least some training and at least some clients), or when you start up a small firm with colleagues as a 'business venture'.
Eeegads, what do you expect? Do you think someone should be able to go to law school, skate through in the middle or bottom of the class, and then start up a solo practice and immediate rake the money in while having no experience at all?
Things don't work that way in any profession. In almost any career, the big rewards come to those who take the risks and put forth the effort. That normally happens when you're running your own business. Programmers who work for companies and have an 'employee' mentality aren't going to get there. Lawyers who do the same may make a bit more money than programmers, but they're not going to get rich either. But the percentage of lawyers who feel like they're working for themselves and who control their own destiny is, from what I can tell, far, far, higher than the percentage of programmers who do so. It's because programmers generally think of themselves as employees. Lawyers, even when they're associates at big firms, generally don't. Their is a collegial atmosphere between partners and associates even at many big firms. (Allthough big firms that are bad to work for may make the junior associates feel like employees.)
Of course, there is a small but significant percentage of programmers who work as consultants and who, if they're good, will reap the rewards of running their own business.
I know of one programming shop here in Seattle area that has around 6 programmers doing mostly complicated Access database work (i.e., Access as front end to SQL Server). All of their work is billed at $150 hour. But even there, the lower level programmers are essentially 'associates' who get paid only a fraction of what they bill. I'm sure the guy who owns the shop is doing very well. But he's as much a small-business owner/entrepreneur as he is a programmer. That's why he makes the bucks.
You don't have to be a genius to figure out that lawyers generally make more money than programmers. (Forget all about the 2000 billable hours/year thing.) Just look at their hourly rates. How many programmers do you know who can charge more than $200/hr? I'm guessing not many. How many lawyers can charge more than $200/hr. Lots and lots. Isn't it obvious?
Isn't that what people are complaining about here on JoS on a continuing basis: that other professions, esp. lawyers and doctors, (and I would add even one a bit lower on the food chain, chiropractors) do a better job of protecting their profession than programmers do, who don't even have established bodies to do so?
Programmers are often compared to engineers. While engineers to have professional bodies to enforce standards, I think the vast majority of engineers have an 'employee mentality'. Sure, an enterprising few will start up their own companies and reap the rewards of that, but most work as company employees.
Lots of lawyers work as employees to (e.g., government lawyers, lawyers employed by businesses, nonprofit organizations, etc). But the percentage of lawyers who work in private practice and are essentially 'running their own business' is much higher than for programmers or engineers. It's typical for an established lawyer in private practice to make good money.
Lawyers who start off as junior associates at big firms will eventually work their way up to partner, leave to another firm where make partner, start up their own firm where they're a partner, or leave private practice and/or the law altogether. For those who put in the time the rewards are great. Programming doesn't have a career path like that. Programming is much more like engineering. After a few years if you want to move on with your career you typically end up advancing to positions that have less and less to do with actual programming. That's totally different from professions like doctors and lawyers. Yes, programmers who love to code can pass up promotions and maintain they're lowly 'worker bee' position. Doctors and lawyers don't have to make that choice; advancement does not require abandoning their profession. Programming generally does. In my mind, that's almost enough to say that programming doesn't even qualify as a 'profession', in the truest sense of the word. (And mind you, I'm a current programmer and a former lawyer, so it's not like I have a strong bias against programming as a career. But from what I can tell I would never want to do programming as an 'employee'.) |
|
| Implementing Joel Test From Scratch | Sat 02 Aug | Nathan |
| I just got hired in a software dev position in a company with no previous developers. I have been given free reign to run the programming division (just me!) as I see fit, as long as I produce the code.
I see this as a unique opportunity to get things going from the ground up, and I want to do it right. Is there an order the Joel Test should be applied? Is it listed in order of importance? I assume some things might not apply at the beginning, such as Make Build in one step, or does it still apply? How do I accomplish this? Where can I find info on how to create scripts that do the checkout of the code, the build, etc?
Anything I should consider while trying to implement these steps? Any words of wisdom you can share? Thanks! |
| Sat 02 Aug | Nathan | Anyone ever used BuildIt? http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/tdlg_app.asp Any other recommendations for a .NET daily build builder? |
| Sat 02 Aug | mackinac | Wow, that is quite an opportunity. Hopefully, you'll get support from management for this. Is this department expected to grow or will it be just you for a while?
In reviewing the list, I'd day that 8, 'Do programmers have quiet working conditions?' and 9 'Do you use the best tools money can buy?' are ones you'll have to work on right away. Since these will cost money, you'll have to get support from management. Having a productive work environment is not only an expense item, but part of the company culture, so it is important to establish that as soon as possible. |
| Sat 02 Aug | Nathan | As far as 8 and 9 go, that is where I'm really excited. While I don't have an office with a door that closes, I will have a cubicle (fairly large) with a door that closes. Any worries I had with number 9 were alleviated when my new boss said, 'We didn't have a computer for you, so we ordered a Dell dual Xeon box for you... it will be waiting for you when you start.'
Since I will have the support of management in these kind of things, and it will just be me until I get too much work to handle, I want to concentrate on the things I will have control over, like daily builds, source control, specs, etc. |
| Sat 02 Aug | John C. | Exciting! My suggestions:
Set up your source control asap. Keep everything in there, including documentation such as requirements. Make sure you back up the repository!
One-step daily builds are pretty easy to do. I use Apache Ant to do my build automation. There are undoubtedly lots of other choices.
A bug database doesn't have to be anything fancy -- Excel will do, or, I suspect, FogBugz.
Scheduling can be a tough discipline to adopt as a single developer, but I think you can learn a lot about your own productivity by making estimates and tracking your performance against them.
Much of the other stuff is a matter of environment or execution discipline. Hallway usability testing might be particularly valuable in your situation -- since it sounds like everyone else is a businessperson rather than a developer, you should have no shortage of regular-user types to run paper prototypes by.
Best of luck! |
| Sat 02 Aug | Philo | Learn CVS, Nant, and Draco.
IMHO they're the best tools for the job, *and* I think you'll impress management by being budget-conscious. Makes you more believable when you ask for tools that cost money.
If it's a MS shop, get them to buy you MSDN Universal.
Philo |
| Sat 02 Aug | Robert Moir | My first comment would be to *understand* the test enough so you can answer for yourself if daily builds, etc are important to you, and which test items might be most important for you where you are.
I don't think its worth doing daily builds because Joel says so. I think its very much worth understanding why he said so, looking at the situation you are in, and thinking 'yes, thats the case here too' and doing it. |
| Sat 02 Aug | Philo | Robert - *excellent* point! Joel's test isn't about following a set of rules - no rule can be implemented unless you can justify it to your boss (and your subordinates). Otherwise you give rise to PHB's who say things like 'no executable can be larger than 1.4 MB!' (because ten years ago it had to fit on a floppy...)
A good sign for a cubicle wall:
'A foolish consistency is the hobgoblin of little minds'
Philo |
| Sat 02 Aug | www.marktaw.com | > I think you'll impress management by being budget-conscious. Makes you more believable when you ask for tools that cost money. <
I dunno about that. It's been my experience that projects are either big money projects or little money projects in the eyes of the management... Once you go down the path of little money, it may be difficult for them to see why you need to buy things. Then one day they'll decide yours is high enough profile to deserve a budget and.... you won't be the person to do it because you're a little money guy.
YMMV of course.
I suspect mgt isn't interested in your methodology. Make sure whatever you present to them has a bottom line value that they can relate to... Better work environment is all fine and good, but at the end of the day, are you making money for the company?
This isn't about getting some ideal software development process... though that is a worthy thing to strive for. It's about making money for the company. Usually everything at a company is about that. Too much time spent on process will be not enough time spent on code. Rewriting requirements in your style is time not spent on code.
All I'm saying is draw the line between what's necessary - CVS, Nant, etc. and what's not... that Bob the Janitor can pass the elevator test. |
| Sat 02 Aug | Nathan | One thing not mentioned in the Joel Test but something I would like to start doing is unit testing of my code. I have never done this before, and don't really know where to start... Anyone know a good primer?
I agree wholeheartedly about not following the items blindly - that's one reason I wanted more information about which ones are absolutely necessary, and which ones need to be done yesterday, etc. Thanks for all the help so far - this has been great! |
| Sat 02 Aug | Nathan | To answer my own question about Unit Testing, http://c2.com/cgi/wiki?UnitTest and http://c2.com/cgi/wiki?CodeUnitTestFirst seem to be good starting points... Any other good ones out there? |
| Sun 03 Aug | Brad Wilson (dotnetguy.techieswithcats.com) | If you're doing .NET development, then the N-tools are your friend: NAnt, NUnit, NDoc (all pretty much stolen from their Java equivalents, Ant, JUnit, JavaDoc). I recommend them, not because they're free, but because they're best-of-breed in my experience. NAnt gets you 1-step builds, NUnit gets you unit testing, NDoc gets you documentation.
For source control, CVS is good, although there are some quirks about using it that you may not be happy with, especially if you're used to using SourceSafe (it really bugs me that there's no rename, and that folders are not first class citizens in CVS). Some might recommend Subversion (also free), but I haven't tried it. If you're VSS-friendly, then you can use VSS or SourceGear Vault.
I've never tried any of the free bug tracking packages. They all sound EXTREMELY complicated to set up and use. My experience with bug systems has been: if it's complex, nobody uses it unless you force them to, and then they whine about it all the time. We use FogBUGZ. It's the cheapest, easiest solution I've seen.
Good luck... |
| Sun 03 Aug | Nathan | Thanks Brad. I have installed NUnit on my box here at home over the weekend, and it seems very straightforward and easy to use. I never knew unit testing could be this fun!
I'm glad you mentioned the documentation - In addition to the unit testing I would like to start making a conscious effort to document my code better, and I was wondering if there was something akin to JavaDocs. I will check that out.
To answer Philo, I believe I will ask for MSDN Universal Subscription. I personally think it's the only way to go for a MS-Shop, and since that includes VSS I will probably go with that. I have used CVS in the past, but I think I will just stick with the VSS.
Thinking about Philo and the Camel blog, I think I might start my own blog on starting this programming side of the house. I doubt it will be of too much interest to the more experienced developers out there, but it would certainly help me, and might be of use to someone just getting started in IT. I dunno - we'll see. |
| Sun 03 Aug | Brad Wilson (dotnetguy.techieswithcats.com) | I agree that VSS is more than adequate for a 1-person deal. Vault will give you a painless, seamless upgrade when you want to have lots of people, especially when you need to start accessing the repository remotely (VSS is abysmal over anything slower than 10Mbit LANs). |
| Sun 03 Aug | Philo | 'I personally think it's the only way to go for a MS-Shop, and since that includes VSS I will probably go with that. I have used CVS in the past, but I think I will just stick with the VSS'
Why?
You *must* learn to articulate reasons why, and this is a good place to start, since you can't say 'since it includes VSS' - CVS is free, so that is *zero* justification.
VSS doesn't work unless you have a shared drive - MASSIVE security hole.
VSS's support for branching is weak at best.
VSS doesn't support merging.
Having multiple people work on a project is problematic with VSS; working an ASP.Net project is near impossible.
Remember that while *you* get VSS for free with MSDN, that's just the one client. You have to pay for each client.
So you need to put the pros and cons of each version control system and make an objective decision. Get used to it - there are a lot more down the road.
Philo |
|
| Making money out of Xerox windows invention | Fri 01 Aug | Mr Curiousity |
| I am curious about this. Even knowing now how things transpired, I am still not convinced that Xerox or anybody from Xerox had any real chance to make money out of the windows invention.
It seems to me that the invention was so far ahead of its time that there was no mechanism for the inventors to stick around long enough to make money out of it. If there was, lets imagine it!
Looking at the history it seems like pretty much only MS cleaned up on the windows thing, and only because the hardware prices became low enough such that to a generic computer user windows as opposed to command line started to matter. Geeks who ran computers before that time were perfectly happy with command line, and multi-terminal capability was there as well. Not as pretty as windows, but very very functional.
So, the question is how could Xerox make money out of windows? |
| Sat 02 Aug | Teri Pettit | Mr. Curiosity,
The gist of the answer is by not viewing the Star software solely as a way to get people to buy their $16,000 hardware that would only run one program, but instead recognizing that people would want hardware that gives them a wide choice of software and software that runs on whatever hardware they've bought that gives them that choice, and that innovative software ideas have value of their own.
Xerox should have patented the Star UI while it was still in the prototype stage running on Altos (I demo'ed a version of it called Desktop to Carter's administration in 1979, two years before Star 1.0 shipped), and then concentrated on developing a commercial version that would run on the engineering workstations of the time, including selling their development environment, so that they could leverage their ground-breaking operating system by getting other companies to develop applications for it.
Star required more computing power than was available on home computers, but the government agencies and defense contractors who bought Star workstations had big budgets and engineering workstations that they ran other command-line based programs on, which would have had enough horsepower to run Star, if it had been developed for that hardware.
Xerox wouldn't have made as much money per seat selling an operating system, development environment and office application as they would have selling the workstations, but they would have sold more copies immediately, and more importantly, they would have been poised to migrate to less expensive hardware and broader markets as prices came down.
But they were a copier company with dreams of becoming a computer vendor. They never really understood that software had commercial value on its own, and even as a hardware company they didn't grok that the most important feature of computers is that they aren't tied to a particular program or even a particular company's programs. They actually saw the idea of selling the development environment as opening the doors to competition. It's like trying to sell a video player that could only play this one great mind-blowing movie that came with it, and not revealing any information about how to develop for its format.
They eventually ported Star (renamed to Viewpoint) to Unix and sold it for Suns, but by then it was much too late and the world had passed them by.
I would like to hang around to hear your thoughts, but I do my net access only at work these days (all the electronics at my house got stolen down to the cables) and I'm about to go home for the day. I've worked to midnight the last five days fixing bugs in Adobe Illustrator 11, and am bushed.
(P.S. to Joel: I grew up in New Mexico too.)
http://tpettit.best.vwh.net/family/tpfamily.html |
| Sun 03 Aug | Zealot | I'd heard that they did make money from it - Apple purchased the concept with a stock trade - by the time the Lisa came out the value of the stock had trebled. |
| Sun 03 Aug | John Topley (www.johntopley.com) | Xerox could have been more dominant than Microsoft are today if their management had had the vision to realise the value of what they'd created. |
| Sun 03 Aug | Erik Lickerman | Does anyone know which features of a modern GUI the Xerox system actually had? My impression is they had windows and context menus and not much else. Did they have a concept of a desktop? Cut and paste? What kind of widgets were available? |
| Sun 03 Aug | one programmer's opinion | Sounds like Teri Pettit did a good job of answering your question.
Xerox could have made money from it, but Apple (with a more affordable computer) was better positioned to do so. Microsoft was able to steal much of the work Apple and Xerox did (via help from Steve Jobs). Microsoft (because of its relationship with IBM) was in even a better position than Apple.
'Did they have a concept of a desktop? Cut and paste?'
They had the concept of a mouse, so I imagine that cut and paste worked in some limited fashion. When Apple came a knocking, I doubt the Xerox team had more than one or two simple applications that worked within their OS.
'What kind of widgets were available?'
Probably none. I remember reading that when employees from Apple visited Xerox they were shown and played with a working prototype. |
| Sun 03 Aug | Mr Curiousity | Teri,
So would the GUI be patentable in those days? We have all these stupid patents now, but what about 25 years ago? Could one patent GUI and license it to other parties?
What bugs me is the fact that Apple did use GUI in their computers, and still did not become that successful with GUIs until right applications showed up. Regardless, nobody started switching to Apple from PCs.
For Xerox to be larger than MS today they would have to have licensed an OS to IBM for PCs. Otherwise they would have been another vendor who appeared and probably disappeared later.
I think that the usefulness of the GUI thing is overrated. It is nice to have a GUI, but it is not a 'must have'. Look at a typical productive use of a GUI on a *nix workstation, bunch of windows with text. One could be switching TTYs to have several windows open at the same time without a GUI and a mouse ... Once the computers became fast enough such that having GUI was free there was no reason anymore NOT to have it.
The GUI invention is great, yet appears to be quite tricky
for profitable exploitation by selling software/hardware. The patent angle would have worked, of course. |
|
| Top Ten Software companies | Fri 01 Aug | David |
| Im a bit curious about that list (in Joels new article) of the top ten software companies in 2001. Wheres Oracle? What about some of the big CRM companies like Siebel and PeopleSoft?
Or do those companies have too much consulting to count?
And what about game companies like Sierra or EA? Maybe they just arent as big as I think.
This isnt a criticism, Im just curious. |
| Fri 01 Aug | Teri Pettit | It said 'personal software companies'.
Although I'm not sure where they draw the line between personal software and other software. |
| Fri 01 Aug | Mr Curiousity | It seems like the book has a set agenda and the author pulls in whatever evidence he needs to prove the point while ignoring no less relevant things.
Personally, I need no data at all to conclude that bad management can screw up a company in a big way. Be it due to sales drones, or engineers lacking sales skills ... |
| Sat 02 Aug | T. Norman | I disagree about the decision to rewrite Netscape. From everything I've heard and my experience using the 4.x versions, the code was in such a state of disrepair that it was like a condemned building -- better to destroy and start over than to fix it. It had to be rewritten to stand a chance. The mistake was letting it get into that crappy state in the first place, not the decision to rewrite it. |
| Sat 02 Aug | anon | I think the main flaw with rewriting Netscape was that they didn't have a working version for about 3 years. They could have done a complete rewrite by refactoring and had working versions that supported newer web standards rather than writing a cross-platform GUI toolkit and re-architecting the whole product.
I think that Mozilla in 2003 is a great product, but Mozilla in 1998-2001 was basically non-existent or unusable, and the only Netscape offering was out of date and unable to compete with Internet Explorer during that time period. |
| Sat 02 Aug | S. Tanna | Most companies don't have resources to maintain multiple code bases well
I would have thought Netscape would have been able to however.
If they had to do a rewrite, couldn't they also have another team improving the current (4) version too. |
| Sun 03 Aug | David | The Top Ten lists were for 'personal computer software companies.' I think that's a little different then 'personal software.' I guess, technically, Oracle and CRM suites are usually installed on servers, so maybe they don't count. It seems like Citrix would be the same thing though, but then I've never seen their stuff so I could be wrong.
Not sure why the Netscape stuff ended up in this thread. |
| Sun 03 Aug | somebody | From a quick google search ( http://www.bizjournals.com/sanfrancisco/stories/2002/07/22/daily56.html ) it looks like EA wouldn't have made 2001 but might've made 2002. |
|
| When to design Web-based Applications? | Fri 01 Aug | Sari Loumanien |
| When can one design a thin client application? i.e. what should be the guiding light?
CityDesk is a pc based product - most new applications are browser based.
What are the boundaries beyond which designing a browser based application is not practical?
This has puzzled me for some months - my supervisor would like us to build a new customer service application for our sales personel.
We are at the moment specing the product - our inclination is to go with a PC based product. But then there will be hassles with keeping the clients updates.
Data is stored in our central server that the sales team can access remotely. |
| Fri 01 Aug | RocketJeff | 'most new applications are browser based.'
Really? I'd like to see some statistics for this. If you include most of the 'look at these photos of my cats' webpages, you might be right. |
| Fri 01 Aug | Sari Loumanien | Most new applications are browser based:
We are currently installing SAP's ERP - it is completely browser based.
The reporting tool from Cognos is also browser based.
These are heavy-duty applications - not simple internet interactions.
Also our financial management system was upgraded two years ago to browser based application. |
| Fri 01 Aug | Andrew Hurst | I think whether or not to do a project web-based depends on a few things:
* where are the users who will access it?
- spread out over huge area/cities/etc -> web based
- small office 3-5 people, can do it local. (this points to support)
* what kind of control do you have over their computers (you have much more control over what browsers they use than the computers)
- web pages can work in a more 'standard' environment usually.
* where is the data?
- does each user have a copy, or is it in a central database?
* how often will they use it?
- web based apps still have a small amount of latency which is very irritating. If they'll be using it 24 hours a day heavily, then might want to go fully on the client. |
| Fri 01 Aug | Andrew Hurst | Ah, and related to 'where is the data', will they need to access it offline? |
| Fri 01 Aug | Justin Johnson | At work, we're speccing out the next generation of our home-grown ERP, and we're very seriously considering a browser based thin-client, with a Java based applications layer and the current RDBMS (MS SQL Server) at the back. Here's the points in favor of a thin client:
1. Most of what everyone does with the system is data-entry/data-retrieval/reports. A rich interface isn't necessary; JSPs with Javascript providing things like input masks is more than sufficient. For the occasionally needed rich interface, we've got Java/SWT or VB.
2. As you pointed out, updating is centralized. Our current system (that I inherited) is Access/Excel based fat clients going directly to the RDBMS, which scales horribly, and has a ridiculous update scheme, namely that the Access/Excel app is copied from the server to the local hard drive and opened from there, every time it's opened. If someone maps a shortcut directly to the server instead of to the launcher program, it locks the file, preventing everyone else from opening it. It's just... awful, and any change to the system involves searching through stored procedures and multiple apps to find all the relevant code.
3. Easy to develop the front end, with no expensive development tools to purchase. A limited client means its harder for the developers to get in trouble; with web-based frontends, a lot of it can be abstracted into templates, includes, and whatnot, meaning centralization of components.
4. For those who need richer reporting, Excel generating components are already in use and available for our architecture at reasonable costs (i.e., ~$3,000 for an enterprise licence). Licencing is simplified, too, when you're purchasing for a server or two, rather than for every client.
5. Easy to include low overhead paperwork in the whole system. One of the reasons we don't go paperless now with quite a few processes is that it's viewed as too much of a headache to transition to an already clunky fat client system. It's a low priority job that we never get around too.
Points against: No big ones that I can think of. If we choose a richer interface, it will be for greater advantages in that direction, not because I can spot any killer objections to thin client. |
| Fri 01 Aug | Bill K Ramsey | The browser is just the interface to the application. Throw in VB components and you have a powerful combination for creating business applications that are *easier* to distribute and maintain.
It reminds me of how many programmers turn up their noses at MS-Access. But it makes a very powerful front-end to SQL Server. MS-Access is just an IDE; it just happens to also come with the JET engine. But you don't have to use JET.
And you don't have to use VBScript with web applications either. |
| Fri 01 Aug | Justin Johnson | MS Access is great front end to SQL Server--considered by itself, as a standalone app. Forms builder, easy integration with VB, report builder, all in all a nice little package.
It's in the aggregate that it's an unmaintainable monster. The temptation to fatten the client is too great, and you end up with what we have: 200 different fat clients that are logically related, and no good way to search and replace through all of them, among other things. |
| Fri 01 Aug | Mike | Justin hits it right on. Centralized servers with thin clients are the easiest to maintain. |
| Sat 02 Aug | Herbert Sitz | 'The browser is just the interface to the application. Throw in VB components and you have a powerful combination for creating business applications that are *easier* to distribute and maintain.'
I'm a little skeptical about combining web apps with ActiveX controls. To me, it seems like one of the main reasons for going the browser route is the complete freedom from having to have the client pc's configured a certain way.
When you require all clients to have certain controls installed so they can run in the browser, you throw that advantage away. And if you're going to do that, then you might as well build a real Win32/WinForms thin client that's just a download away but has the richness of interface you can't get with a browser-based app. Considering that your clients are going to have to download the controls and you're going to have to maintain the correct versions of those, the ease of distribution and maintenance of an ActiveX control-based browser app isn't necessarily any better than that of a Win32 client.
I realize it's not quite as cut-and-dried as that. But if you find yourself designing a browser-based app around ActiveX controls, at the very least I think you should give some thought to whether it might be a better idea to use Win32 or WinForms thin clients. |
| Sat 02 Aug | J | Although it requires the 20 megabyte download, I would strongly encourage you to check out 'streamed' href-exes as implemented by the .NET Framework. What a wonder! Great security model, seamless updates, easy remoting, etc. It's been a dream to work with, as the whole web design thing, which was interesting at first, has gotten a little old. |
| Sat 02 Aug | Clay Dowling | A little advice, from someone who has been down most of the roads mentioned here.
Using ActiveX controls in your web pages is aluring, just like the siren's song. You'll find out about the siren's teeth when you need to update that control. It is very hard to get all of your clients updated, and they'll probably spend some downtime while the update process is going on.
If you need the rich client, go for a nice clean .exe program that is 100% free of ActiveX controls. This is again because ActiveX controls are hard to update consistently. You'll still need a mechanism for keeping the .exe updated, but it will be easier than ActiveX. I've had the best luck with Delphi/C++ Builder for rapid application development without ActiveX.
Entirely browser-based applications are pretty nice to maintain. Your interface isn't as flashy, but it can get the job done nicely. Updating is a breeze, because you only have to update your servers and everyone gets it, instantly.
You might be able to get the best of both world by combining a thick client with web services. Even if you don't want to use Microsoft's tools, packages like gsoap make web services available to most compilers. I haven't been down this road yet, but it appears to hold some promise. |
| Sat 02 Aug | Mark Pearce | Sari,
>> We are at the moment specing the product - our inclination is to go with a PC based product. But then there will be hassles with keeping the clients updates. <<
If you're able to use .NET technology to build your product, you can have the best of both worlds. .NET allows you to download a rich client assembly from a remote server over HTTP using a web browser. Any updates to the assembly on the central server can be automatically downloaded and installed to each client.
HTH,
Mark |
| Sat 02 Aug | Michael Jastram | I find it hard to discuss technologies without the framework of a specific application, in other words, the question can't even be answered. You first need to understand your requirements and functionality, only then you should pick the technology.
And relevant requirements are:stand-alone vs. connected, GUI complexity (i.e. drag'n'drop not possible with vanilla HTML), response time, security, and much more.
I've seen many project go beserk where the technology was picked first ('must use XML'... 'must use Oracle', etc.). |
| Sat 02 Aug | The Real PC | When there are, or might eventually be, remote users the application should be web-based. |
| Sat 02 Aug | Herbert Sitz | Real PC -- That misses the main issue of the thread: is a browser-based interface better if it depends on ActiveX controls that have be installed and maintained?
Do you mean to say that an app should be entirely browser-based (i.e., browser w/o ActiveX controls) if there may be remote users?
The main issue in this thread seems to be now regarding whether there are benefits to a browser-based app with ActiveX controls over using Win32 or WinForms clients. The ActiveX controls erase most of the benefits of browser-based apps, in which case Win32 or WinForms clients can be just as easy to deploy but provide a better user interface. Even if we're talking about a situation with remote users.
For what it's worth, I can imagine lots of cases where a 2 or 3MB thin client app that's easily downloadable and upgradeable (single .exe) would be preferable to a purely browser-based app, even when users are accessing remotely. If they've got broadband the thin client .exe download or upgrade takes what, 20 or 30 seconds? |
| Sun 03 Aug | Brad Wilson (dotnetguy.techieswithcats.com) | Once you say 'ActiveX is okay', why not design the entire application to reside inside a single ActiveX control? Then you get client-side code without a heavy-weight install.
Personally, I believe that HREF-served .NET EXEs are a great option if you have control over the environment (i.e., you can dictate the installation of the .NET Framework). |
|
| Is the Amiga in Chapman's Book? | Fri 01 Aug | Tim Lara |
| I noticed that the IBM PC jr was mentioned in one of the chapters, but I think that the demise of the Amiga was a PERFECT example of brilliant techies being derailed by idiots in suits... |
| Sat 02 Aug | Mister Fancypants | Ultimately the Amiga was a technical failure as well as a business failure for integrating its hardware too tightly to the operating enviornment which caused a catch-22 situation regarding hardware upgrades: There was no point in upgrading to AGA systems because no software supported them, and there was no incentive for developers to make AGA-enabled software because they wanted the biggest possible market. End result? Commodore can't move new machines, no revenue, out of business.
As crappy as the IBM PCs of that time period were, they were incrementally upgradable which did a lot to eliminate that sort of a thing as a problem, and the rest is history.
|
| Sat 02 Aug | Ros | i'm not so sure about that. If you really think about that tim, it wasn't so usual to upgrade your PC but in a few aspects (probably video. memory and HDD) and the amiga was perfectly capable to support new framebuffers, like the harlequin (sp?) external SCSI or IDE HDDs and lots of RAM.
I think there was no amiga error but PCs were an irresistible force. |
| Sat 02 Aug | Matthew Lock | The reason I moved off Amigas was the prohibitive cost of hard drives. In the early 90s you could get a 386 system for the same price as an external hard drive for a A500.
Great machines though. A 1986 Amiga would outshine any PC until Pentiums and Windows 95. |
| Sat 02 Aug | Johnny Bravo | Commodore's managers had all the great stuff (AGA etc.) finished at a time when PC user's still dreamt of Hercules graphics card. However, they held it back because they thought they can control the speed of innovation, i.e. artificially slow down innovation so they can live from past innovations withou investments. When they finally released it, it was too late. |
| Sat 02 Aug | Tim Lara | I agree that the 'closed system' architecture probably did hurt the Amiga somewhat, in the eyes of people who thought that the system was expensive in the first place and were worried that they wouldn't be able to upgrade it, but I still think that poor marketing was mostly to blame for the platform's demise.
It could also be argued, though, that Apple's computers have always been quite proprietary as well, yet the company's savvy marketing strategies have always kept them more or less afloat. I actually always thought of Apple as a more dangerous competitor to the Amiga than IBM, because at the time the Amiga 1000 came out, Apple seemed to already be heavily focused on getting their machines into schools. It seems like this kind of helped foster the attitude that IBM was 'Dad's work computer' and Apples were fun and educational. In the meantime, the average non-geek had never even heard of the Amiga. Sadly, it seems that Commodore botched the launch of the Amiga so badly that they practically locked in their 'iceberg' course from the beginning.
It's pure speculation, of course, but I can't help but wonder if the Amiga would hold at least as much market share as the Mac today if Commodore had just gotten schools to use it... |
| Sat 02 Aug | Philo | Was part of the success of the PC the cooperative/adversarial nature of Microsoft and Intel? I know that through the late 90's they played off each other - new Windows environments meant people wanted faster CPU's, and faster CPU's meant people wanted more out of their PC's (gaming plays a significant factor in there as well), so MS and Intel spent about ten years leapfrogging each other in a synergistic way.
In fact, thinking about it, I wonder if the MS/Intel unpartnership is the reason for the Wintel dominance, and the heretical thought - that it was pure serendipity that it happened - nobody could've planned it so well.
Bottom line - Microsoft made good software, didn't make any killing blunders, treats their developers well... but the main reason they're a monopoly is that Intel was right there next to them the whole time?
Philo |
| Sat 02 Aug | www.marktaw.com | Philo - this is a common argument.
The really major leaps in consumer computing technology were in the Internet. To be honest with yourself, what can you do now that you couldn't do 10 years ago? Digital photoraphy? Home movies on the PC? Video e-Mail? File sharing and mp3's?
The basics.. word processing, e-mail, the www, chat were all there. So why do we keep *needing* faster computers? Because they keep releasing more and more bloated apps.
The software & hardware impovements go hand in hand in an - as you say - synergistic way.
I'm surprised nobody is drawing an Amiga / Apple comparison. Closed system... ahead of it's time & innovative, great for media, etc. |
| Sun 03 Aug | Mister Fancypants | To say that software is just more 'bloated' now is a gross simplification...wrong, even.
Ever tried to write a Word processor on the old Apple II that did real time spelling and grammar checking? WYSYWIG with good font rendering on screen? Etc? Sure, there is the occasional Clippy, but there's also tons of stuff that is fairly new in our modern word processing programs that real people use every day that just wasn't technically feasible to implement on systems with 1 mhz CPUs and 64k of memory.
If you really think things are so bad now, put your computing lifestyle where you mouth is -- buy an old system on ebay and use all that wonderful old software back from before everything got so 'bloated'. |
| Sun 03 Aug | Augustus | Heck, you don't need to buy an old system from eBay. Many folks use Linux, which, from a desktop perspective, has been a fairly impoverished platform until recent times. Many of the folks using Linux and other *nixes simply don't care much about a rich desktop experience-- and more power 'em. These platforms give them what they value most; stability, customization, code-access, a close-knit community.
So there's little need to buy new hardware. Plenty of folks are still running old Wintel hardware with a minimal Linux/*nix package. |
|
| Joel: "you can't have it both ways" | Fri 01 Aug | Joe Grossberg |
| From the foreword:
Is this just superior marketing, as our imaginary geek claims? Or the result of an illegal monopoly? (Which begs the question: how did Microsoft get that monopoly? You can’t have it both ways.)
Why not?
(Note: Im not discussing the truth of those marking/monopoly assertions.)
Is that logically inconsisent for the geek to propose that, via *superior marketing*, Microsoft entrenched themselves as *an illegal monopoly*?
Once again, lest a flamewar start, Im not debating whether or not MS is a monopoly.
Joe
http://www.joegrossberg.com |
| Fri 01 Aug | Mister Fancypants | What he meant is that Microsoft couldn't have built its monopoly by *having* a monopoly to begin with, not that it couldn't have been from marketing and then monopoly.
It is fairly common to see people on places like Slashdot claim that the reason Microsoft is such a huge company is because of their monopoly power -- when you ask them how Microsoft got the monopoly power to begin with they seem confused, as if it is common knowledge that Microsoft was somehow ALWAYS a monopoly, which doesn't make sense. |
| Fri 01 Aug | Joel Spolsky | I've been trying to figure that out all day. (I wrote the foreword many months ago). |
| Fri 01 Aug | Joel Spolsky | Yes! Thank you Mr. Fancypants. That's what I meant. |
| Fri 01 Aug | Tim Lara | I thought that Joel was insinuating that perhaps Microsoft's monopoly wasn't necessarily created by superior marketing alone, but by superior product management decisions. MS did the best job of leveraging their existing programming manpower to deliver what the sales people were promising customers, more or less. (And more or less on time.)
Granted, the products weren't always (and often still aren't) necessarily the best available, and much of Microsoft's success stemed from dirty little technological 'gotcha' tricks, but would non-techies have been able to devise such tricks? |
| Fri 01 Aug | Brad Wilson (dotnetguy.techieswithcats.com) | Uh, product management is a function of marketing. :) |
| Fri 01 Aug | Tim Lara | True, I guess, in an OfficeSpace 'I take the requirements from the customers and bring them to the programmers because programmers aren't good at talking to customers' kind of way, but the fact that you don't really want a non-techie telling the programmers what to do still stands... |
| Fri 01 Aug | Tim Lara | Another way to put it:
I think of marketing as the responsibility of telling customers what your product can do, and product management as the responsibility of deciding what your product SHOULD do. |
| Fri 01 Aug | T. Norman | Becoming a monopoly and staying a monopoly are often two different processes involving different tactics and skills. Just as becoming a president often involves different qualities than remaining a president.
A company can become a monopoly through government legislation, like the utility companies. Then after government opens the industry to competitors, the monopoly remains because market penetration for newcomers is too expensive. Thus the monopoly continues even though the conditions that created the monopoly no longer exist.
A monopoly be created because the company offered products that were significantly cheaper or better than the alternatives, or had much better marketing. But once the monopoly is in place, the monopolist can use other tactics such as exclusive contracts to uphold the monopoly, even after it its products have ceased to be any better than the competition.
That a company became a monopoly on merit does not imply that it remains a monopoly based on merit. |
| Fri 01 Aug | Mister Fancypants | True, but Microsoft's software is better now than ever before... So who cares?
Windows pre-2000 : Ugh
Visual Studio pre-6.0 : Ugh
Word, Excel, pre-Office 97 : Not too bad
Windows XP : Great
Visual Studio .NET : Great
MS Office XP : Great
I thus posit that being a monopoly in the desktop software market causes a company to create BETTER SOFTWARE than if they weren't a monopolist! And if you disagree with me, you still can't prove me wrong, because no data exists to support your case!
Of course this probably has more to do with Joel's 10 year theory than being a monopoly, but I'm sure the large economics of scale that result from being a large enough player that people consider you a monopoly helps out too. |
| Fri 01 Aug | Aaron Lawrence | In a sense though, Microsoft *was* handed a monopoly. IBM had worked themselves into a powerful position in business computers, and when they decided to make a PC, they picked Microsoft to supply the OS. At the time, IBM was the thing to do, so Microsoft just rode on IBM's coat tails.
Still, I do think they did lots of things well. I especially admire their persistence, and their ability to market to *programmers*. |
| Fri 01 Aug | JWA | 'Windows XP : Great
Visual Studio .NET : Great
MS Office XP : Great'
I'm inclined to agree on all counts, but that resource manager bug that popped up in VS.NET 2003 and cost us 500 hours of work a week before the project was due, and no one seems to know anything about, still sucks :(.
--Josh (Still exhausted from working 130 hours a week the last three weeks to fix things) |
| Fri 01 Aug | Mickey Petersen | I mentioned in an earlier thread on somewhat the same topic, that you can't ever reach the state of monopoly by selling junk to consumers. It's like selling flashy stuff to natives-- you can only pull it off once, and chances are they'll come back with sticks and stone to beat you up. |
| Fri 01 Aug | T. Norman | You can't become a monopoly with junk, but you can maintain your monopoly with junk. |
| Fri 01 Aug | Philo | Examples?
Philo |
| Fri 01 Aug | Mr Curiousity | MS was made by the IBM's decision to license the OS for the new PCs from them, which later became a commodity market. So MS in fact did start being a monopoly in the OS market because while PC hardware could vary, the OS stayed the same.
All MS had to do was then to protect their core market (OS), and use the OS revenues to support assaults in various application markets. Any successful assault killed the main competitor due to their major reliance on that application revenues, and MS could then have that market to themselves.
While MS did played most of their cards right, they still were really really lucky. |
| Fri 01 Aug | Teri Pettit | What's overlooked in a lot of the discussions about Microsoft's monopoly position is that it is in the nature of software that being the market leader in your niche in and of itself adds a tremendous amount of value. If you buy a car, it doesn't really make it better if it's the same car most other people drive. But for most kinds of software, using the one that most other people use is one of the most important decision criteria. All the top 5 software companies completely dominate their particular niche, and it's not necessarily because there isn't some small company somewhere that makes something better. There's just nothing else that is so dramatically better that its superiority outweighs the advantage of being able to easily share files with other users of the dominant software.
True, it's not everything, as the examples that Joel gave of Lotus 123 and Netscape losing their near-monopoly market positions illustrate. Stupid decisions can be disastrous, especially a stupid decision that keeps you from counter-attacking against a hot newcomer for a couple of years. A stupid decision like that allows the inherent value of being the most widely used software to gradually get eroded. But what's true is that you'll seldom see a sizable market split evenly for long. There is a very strong snowball effect that just about guarantees that once a product gets 60% of its market, it will soon have 90%.
Microsoft made enough smart decisions early on that they deservedly got the monopoly position in the most lucrative software category, the only one that's not optional, and once there, they would indeed have to make a string of monumentally stupid decisions to ever lose it.
Teri Pettit (a veteran of Xerox's famously stupid failure to make money out of its invention of the graphical user interface) |
| Sat 02 Aug | X. J. Scott | The graphical user interface, complete with windows and menus, was invented at NASA during the early space program, not Xerox. No mouse though -- light pens were used. |
| Sat 02 Aug | T. Norman | >'Examples?'
Many local phone companies and cable TV companies are notorious for providing crappy service at high prices.
Another example is Microsoft itself. Despite the crap they had before Windows 2000, they were able to fend off worthy challengers like OS/2 Warp and BeOS, thanks to the ability to flex their monopolistic muscles to disallow vendors from shipping other operating systems. |
| Sat 02 Aug | Raist3d | I gotta say that I agree with Norman, and quite frankly sometimes the incredible amount of indifference at exploring the subject of Microsoft's success and how it happened appals me.
No, I don't want to have it both ways as someone suggested (and Joel for that matter) when it comes to think 'how did MS go to be a monopoly.'
It is irrelevant if Netscape made a serious strategic mistake of rewritting the whole browser as to whether Microsoft attempted to uphold their monopoly illegaly or legally. But I see that 'oh , but Netscape screwed up' is brought to the table as THE REASON why Microsoft coudln't certainly be doing something wrong (when talking about the browser wars).
Well sorry, but I do remember very clearly Microsoft (in fact, Bill Gates) made a very stupid decision: the internet is a fad, it's irrelevant. Remember that? That was Bill Gates himself, and Microsoft was not to pour a bunch of resources into this. But the monopoly on the OS side allowed them to weather the mistake with no problems.
And many forget here that Microsoft by then had the most important monopoly of all- the desktop OS. So what happens then? Why Microsoft felt the need to tie the browser to the OS *AND the court evidence DOES SHOW* that some key people at the company didn't think they would be able to take Netscape out without leveraging on Windows? Why is this and why is this ignored?
Whoever suggested that 'one big company is better' (monopoly, etc.), keep in mind that it was Netscape that popularised the concept of the browser, while Microsoft even said the internet wouldn't be important. Whether Netscape screwed up or not is irrelevant to the factual truth of this point. How much back in time would the world wide web be (I do believe it was a matter of time of it happening)?
I don't want to come of as 'everything that Microsoft does is wrong, ' but it makes me feel that many very smart people just want to worship 'a big god' or something, and totally ignore other events that have happened. I am still a bit puzzled by this, although I find it less and less surprising every day.
- Raist
|
| Sat 02 Aug | Simon Lucy | Whilst the MS/IBM contract was the key that opened the door to the monopoly it isn't the whole story.
Following the shipping of the IBM PC and then the clones was the agreement between Intel and MS on 808x and above processors that each would promote the other to the point where every single motherboard with an Intel processor came right along with an MS DOS licence.
It became a clause in the contract between OEM and Microsoft that every single board produced had to be matched with an OS licence, whether it was shipped with the board or not. Now the reason for this was not a manic pursuit of monopoly it was a simple accounting measure; if all motherboards had to have a licence working out how much the OEM owed MS was a simple thing to manage and police.
Now that is a monopolistic practice that can only really happen if there already is a de facto monopoly but that monopoly depended upon Intel's own monopoly of the time.
The change came when AMD broke that monopoly and a reason why AMD became successful was because there was an alternate OS (DR DOS) to go along with it, though there was no compulsion. Each DR DOS licence had to be sold hard to the OEMs and that was down to one man Dick Dixon, a salesman.
It was only when there was a real set of competitors that the monopoly became really apparent at all, before then it was just the way things were. The problem was that MS had had a sufficient time to mobilise and capitalise on that monopoly to build the desktop monopoly which in itself allowed it gain the massive marketing lead in office applications.
I don't even think that until around 1997/98 MS itself thought in terms of defending a monopoly though by that time they were treating OEMs with open contempt. |
| Sat 02 Aug | Simon Lucy | Ummm my fingers slipped I meant 1987/1988 naturally. |
| Sat 02 Aug | Stephen Jones | Microsoft got places because they started off with an unfair advantage.
They were given the OS for IBM and a pricing mechanism that cut out the competition. Then they made all the companies that made personal computers pay per machine, whether DOS was installed or not.
When Windows 3.1 came out they put bugs in the code that deleiberately caused it to crash when other versions of DOS were used.
Now there are plenty of things they did right, the most important of which was making it easy for outside programmers to code for their platform, which caused the wintel platform to succeed over others.
Also remember that MS has made a load of dumb decisions. It's simply had the cash flow to get round it.
The fact that any attempts to get out of the PC market have been relative failures, does suggest that it's success has been based on a combination of technical excellence in a niche market it understands and has leverage in. |
| Sat 02 Aug | Mister Fancypants | Monopoly, schamopoly. Tying the the web browser to the OS was brilliant for technical merit alone and I can scarsely imagine going back to an OS where the file manager and a web browser aren't seemlessly integrated.
If the anti-Microsoft forces weren't living in denial, they'd realize the number one reason Microsoft is so dominate is that their competition is so f'in stupid. Joel is completely right with regards to his foreword describing the stupid blunders that have held others back. |
| Sat 02 Aug | Noname | Tying the web browser to the file manager is different from tying the web browser to the OS.
Linux has file manager/web browser tie ins, but they aren't directly coupled to the underlying operating system.
The MS browser is so tied in that it's not just that the browser relies deeply on the OS, but the OS relies deeply on the browser code! Marrying a browser to the OS was a bone-headed technical decision, even if it was a good marketing decision. |
| Sat 02 Aug | Paul Mansour | There seems to be some confusion over various types of monopoly. Cable and phone companies are generally government created and enforced monopolies. Microsoft is not. These are fundamentally different from an economic perspective. A free-market monopoly is always in danger of losing its dominance -- from its own bad decisions and from nipping competition. The only way a government backed monopoly loses its power is by legislation. |
| Sat 02 Aug | T. Norman | Monopolies that started off with government backing often remain monopolies long after competition is legally allowed, even when they provide overpriced and crappy service. Many of the factors that created a monopoly are different from what it takes to maintain a monopoly. |
| Sat 02 Aug | S. Tanna | Actually I don't believe MS was handed a monopoly by IBM
When IBM PC came out, IBM gave equal emphasis to MS-DOS, CPM/86 and UCSD.
CPM/86 had all the apps (at least initially, ported from Z-80, 8080) so many pundits thought it would rule after the stop gap of MS-DOS was overturned.
It's in numerous books, for example, Unmaking of IBM.
Anyway MS-DOS cost $40. CPM/86 cost $240 and came out long (months, maybe a year?) after MS-DOS. So was almost dead on arrival (However I do remember using Turbo-Pascal on an IBM compatible with CPM/86 in early 80s).
I'm not sure why UCSD failed.
I have a feeling MS-DOS succeeded initially (as did IBM PC) because of Lotus 123, which was IBM PC's killer app, and left stuff like Visicalc dead in the water.
So MS got the DOS monopoly initially, by luck (how they got the IBM contract to do an OS and Lotus-123), seizing an opportunity (agreeing to do an OS despite no previous experience, but knowing where to buy the Q-DOS starting point), and competitors' mistakes.
Windows I think is a similar story. Windows was late to market, and not very good in earlier versions. It had lots of competition, TopView, something by the VisiCalc folks, GEM, etc. I think GEM was the leader initially. The competitors all messed up in various ways
OS/2 PM in late 80s was way better than Windows or other GUIs. It should have won, but was ruined by a poor reputation (earlier OS/2 versions were bad), too heavy hardware requirements (needed expensive RAM), shackling to the 286, IBM's extended edition antics, and association the MCI + PS2 fiasco. It was never going to recover from that IMHO.
Windows 3 was good enough on 386, comparable to OS/2 PM without the ugly baggage, and hit the market at exactly the right time. It really was the best GUI so far on the PC by far at the time. It was obvious to me it would win the first time I saw it.
THe gap between Windows 3 (1990) and the first Windows version (1985) and the first PC GUI (1983) is so long - and Microsoft made so many mistakes along the way - that I think there was plenty of time for somebody else to own the GUI - nobody did a good enough effort, so MS won.
Word/Excel/Access won because they were on Windows before the previous market leaders. Business wanted Windows regardless of what changes they had to make in 1990/1991 - I remember it will - it was a great time (as I was in a company one of the first in Windows). Word/Excel were quick into Windows 3, and the reason is the other companies were developing OS/2 versions. Some say they were suckered by Microsoft - but I have to say - they must never have compared Windows 3 to other PC GUIs at the time to be so easily suckered.
Access did not appear on PCs for quite a while. I remember a huge hole in the Windows database area for a long time. Products like Superbase filled the gap for a while, but weren't complete enough IMHO to win dominance (and perhaps didn't have the resources behind them). Borland's dBase for Windows could have won - the demos I saw were impressive, but the wait for it to arrive seemed eternal. I think Access won as a PC database by default - it was the first good-enough PC database.
Maintaining the monopolies may be a totally different issue, but a good part of the establishment of the story is Microsoft's good luck, persistance, and their competitors' failures. |
| Sat 02 Aug | Albert D. Kallal | The issue of technical merits Joel points out is VERY important.
It is only when you get the right mix of marketing and technical mix do you win. I mean, gosh, any company can hire a first rate marking company. You think MS is the only software company that knows how to market? Heck, their marking actually is quite bad.
Who the heck things MS’s marketing is good? Yuk!
What is good is their product direction and their use of technology to win.
Lets take the above mentioned issue of ms-access VS dbase. Fact is, dbase got a good foot hold in the market place much sooner then access. This was both good, and bad. It was good for dbase since they had a large user base. However, from a technical point of view, the ARCHITECTURE of dbase was NOT designed correctly. I suppose by being first, it means you generally don’t have the best architecture. (crappy and limited hardware for example). However, Austin-Tate COMPLETE failed to upgrade the product from a technical point of view. The failure of dbase was not a bad windows version. The REAL failure of the product was the bad ARCHITECTURE..
Microsoft on the other hand is full of forward thinking developers. In addition, the PRODUCT PEOPLE share this vision, and as Joel mentions, they can UNDERSTAND the implications.
I mean, gee everyone knew at the time that a GUI was going to be needed for pc desktop database. You could have been a soda pop salesman to figure that one out!
Ms-access on the other hand is now 10 years old, and is going strong. (the MS newsgroups answer in EXCESS of 1000 posts per day!). The team at MS is already hard at work on the next version of ms-access, and is having us developers compete surveys on what needs to be done with the product. (they don’t quit improving the product). And boy, are the surveys the have well done!)
The reason why ms-access survives today is NOT marketing. Fact is, today, the database model is complete client to server. However, 10 years ago, the product people did three things with ms-access that separated it from the popular database systems of the day. Remember,we are taking about pc based systems here, not the networked world we live in today.
Forward Thinking #1
They utilized the com object model. Remember, this is was REAL new fancy concept 10 years ago. The DAO object library was a brilliant idea. By moving out major parts of the database system, then parts of the system could be upgraded over time. Of course this was the promise of products like ms-access. Again, that forward thinning of company to realize how important com object was gave that product a HUGE leap in the market place DOWN THE ROAD.
MS as company is not afraid to utilize and figure out what architecture is going to be needed to solve the problems of the computing industry for the next 5, or even 10 years. They do this constantly and better the their opponents.
Forward thing #2
Added engine level Referential Integrity. While other database products in 92 did have RI, the major ones like dbase did not. Again, this forward view that MS had won the day. In addition, they went full bore on the use of SQL as the underlying language. IBM was really big on SQL. For some reason companies like Austin-Tate failed to realize the importance of SQL, and but the time they did...is was too late. MS has NEVER been afraid to go looking for good technology. Every other company can also look for good technology, but the product direction people are too busy playing with their sail boats. They need more people in the product direction/marketing part that eat, sleeps and loves software. Not a love of marketing. (that is the easy part!).
Forward thing #3
Separated the database engine from the software. When I say separated, I mean both from a programming architecture, and ALSO FROM a conception point of view. This is actually the #1 reason why the product still remains to day. Thus, the data engine was SEPARATE from the application (yes, things like com object allowed this, but the conceptual concept was important...not the fact of com objects). Of course, again this is classic MS using both conceptual ideas, and also the latest technology to realize this concept idea. Thus, you had a abstracted engine that could accept SQL. That engine DID NOT have concepts like record numbers etc. And, with client server to be coming down the road, the concept of record numbers did not make sense anymore. Record numbers make sense when you design a desktop database with a calculated off-set into a file on the hard disk.
With a separate engine, the design was not only different, but correct for the future coming of client server where the client and the data would NOT be on the same pc. Also, with multi-user systems, again the concept of a “engine” and a application were very important. (ms made this split long before client server became the rage).
Further, for the last two versions of ms-access, the office cd has shipped with a 100% compatible sql-sserver engine. Again, they are paving the way for users to adopt true client-server technologies in ms-access.
Also, by office 97, they gave ms-access the same programming language as VB. Thus, now we as a matter of development in ms-access use, and create class objects. In fact, one of my interview questions when hiring ms-access developers is:
What did the last class object you wrote in ms-access do?
Again, what desktop database for the pc today allows the programmer to develop class objects in the programming language used? Hum?
Access also has full use of com object libraries (and certainly competing products to access allow that!).
However, it does not take much to start understanding why ms-access is so popular? With the push for a true client server edition of ms-access, we now see an actual INCREASE in companies at the corporate level adopting ms-access (something the IT departments would not touch with a 10 foot pole just 4 years ago).
Time and time again MS has shown that using forward thinking to direct BOTH the products and the UNDERLYING technology is the winning formula. You can try and sell ms-access from a marketing point of view, but unless the product is true client-server, and can easily scale to a 1000 users, then the corporations will not use the product no matter HOW SLICK the marketing is.
Simply put, corporations need a scaleable client-server database product, and MS has given that ability to ms-access. MS access is NOT a database product anymore, but simply a client to a database (it was that way 10 years ago...but noboday got it back then!). So, the now access is being changed from a architecture point of view, and the corporate sales will follow, NOT the other way around!
MS continues to make brilliant design decisions today with .net. The architecture and the ability of the company to develop forward thinking products for the next 10 years will be set by adoption the .net technology.
I will guarantee that is MS was run by a bunch of soda pop sales man, the company would be right loosing market share to sun and other companies. For sure those pop salesman’s would have got great pay checks and huge stock options, but in 10 years the party would have been over due to LACK of vision and lack of re-investment of money to create forward thinking technology. Worse, is that most don’t even know WHERE to invest their hard earned money.
If you don’t know where you are going, then any train will get you there! The problem is that you will wind up at the wrong destination!
10 years ago I could not write class objects in ms-access, but today I can. Competing products to ms-access don’t seen to understand WHAT new features needs to be put into the product. Well, stuff like class objects was good idea. Stuff like true client-server for the corporate adoption of the product...this list goes on and on. The competitors just don’t get it do they?
Notice how all of these features are based on UNDERLYING TECHNOLOGIES that MS adopts?
Starting to get the picture now?
The .net undertaking is HUGE right now. Many companies would not even bother. They would have continued to cost on the great money they have now. However, the great money ms has now is due to making those right decisions 10 years ago.
In 10 years from now...the .net stuff will again look like a brilliant decision.
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
| Sat 02 Aug | S. Tanna | > The reason why ms-access survives today is NOT marketing. Fact is, today, the database model is complete client to server. However, 10 years ago, the product people did three things with ms-access that separated it from the popular database systems of the day.
Actually I think in the case of Access, you under estimating just how bad (and late) other Windows database products were
I think if they had done none of the 3 things, but just done a good-enough product iit might still have wiped the others out. It may not have retained leadership, but it would have got it initially. |
| Sat 02 Aug | Philo | I'd just like to point out that bundling doesn't work if you have a crappy product. Win3.1 had a file explorer built in, yet XTree made a LOT of money selling a better one. Win2k has notepad and wordpad, yet have no problems convincing people to shell out $35 for Ultraedit. WInamp used to be the default MP3 player until Media Player got better.
Let's face it - for 99% of the people out there IE does exactly what they want - surf the web. I don't see popups as Microsoft's fault any more than the blink tag was Netscape's fault.
If Opera blocks those javascript/dhtml popover ads that are all the rage now then they need to find some money for some TV advertising - I think a few well-placed TV ads, print ads, and editorials and they could really have MS nervous about browser share.
'Would you pay $35 to stop popup ads forever? www.opera.com'
Philo |
| Sat 02 Aug | Andy | Are you talking about those stupid animated popups that don't appear in a new window but appear over the window and scroll with the text? How can I get rid of those? Is there any popup blocker that works on those? Mine doesn't. |
| Sat 02 Aug | Raist3d | 'Monopoly, schamopoly. Tying the the web browser to the OS was brilliant for technical merit alone and I can scarsely imagine going back to an OS where the file manager and a web browser aren't seemlessly integrated.'
The idea didn't come as a technical merit, but to make sure Netscape marketshare dwindled. If Netscape didn't provide for this competition, they wouldn't have done | |