last updated:19 Aug 2002 12:02 UK time
Joel On Software Discussion Forum
JOS Statistics - Recent Comments
(Comments added for week ending Sun 19 May 2002) | View Other Weeks
Irrational client behavior -- another example | Sun 19 May | Jane Gallagher
The earlier thread (Weird client behavior) inspired me to share my experiences. In the past year, Ive created two websites: one for an obstetrician, and one for a mom-and-pop sporting goods store. In both cases, the clients are acting irrationally. The obstetrician is very aggressive. She advertises all the time; she tries to get stories planted in the local paper; she took out a huge billboard near the hospital, etc. She told me shes happy with the website, but she never includes the URL in any of her advertisements. The sporting goods store is the same. They like the website. They periodically send me updates to include on the site. They pay their bills on time. But they never include the web page address in any of their promotional materials. Ive talked to my clients several times about the need to include the URL whenever the street address and/or phone number are listed. The clients agree in principle that this is a good idea, but they never act on it. (Incidentally, all the clients are largely computer-illiterate, which may explain things.) I tell you, its enough to drive me bonkers. My friends tell me that it doesnt matter, as long as I get paid. But I just cant stand to see people acting so irrationally. I sometimes want to grab them by the lapels, shake them, and scream, What are you people thinking?!
Sun 19 May | Yoey | Jane: It's not irrational behavior, simply, these people are not as well-versed in the power of the Web as you, me and most of the others here at this forum are. We work full-time in the Web-dev field, so that it becomes a mundane occurence. Many clients of ours don't know HTML from XML, ASP from JSP. Yet in the same respect they don't expect you to know the science of obstetrics or Mizuno batting gloves. In software development, the same feelings of frustration occur with programmers when ordinary people try unsuccessfully to use a new program, because the initial reaction of the programmer is to think the user is stupid. While that could be the case, the more likely reason is that the user does not understand this product as well as the one who created it. Welcome to the world of computing.
Sun 19 May | Hugh Wells | This sounds like one of those things where people are just different. They're not doing anything wrong in respect of their relationship with you; and you've done a good job. Just set it aside as something you can't control; have fun; learn more about what they do.
Sun 19 May | Simon Lucy | They are thinking in categories. The web site is a different medium and those they attract on the net (they believe) are a totally separate set to those that drive past the billboard. Though the idea that an obstetrician needs to advertise makes me feel queasy. Equally, there are people that read newspapers and magazines that are irritated when they are directed to some web site for more information and there's no phone number. What (they think), does a web site have to do with a newspaper?
Sun 19 May | Wanderley Miyata | Just relax... it's like an architect - he may have a lot of great ideas and solutions, but he needs to build a house the way you want.
Sun 19 May | Kenshi | And who said people have to act rationally any way?
Sun 19 May | pb | So, what are the URLs??
Sun 19 May | Martin L. Shoemaker | Why are clients irrational? Read Scott Adams's 'Dilbert Principle': 'People are idiots. Including me. Everyone is an idiot, not just the people with low SAT scores. The only differences among us is that we're idiots about different things at different times. No matter how smart you are, you spend much of your day being an idiot.' And later: 'We're a planet of nearly six billion ninnies living in a civilization that was designed by a few thousand amazingly smart deviants.' Adams was making a joke (of course); but I find that, if I keep his words in mind, I can accept a lot of otherwise incomprehensible behavior... including my own.
Sun 19 May | Rob Moir | 'Adams was making a joke (of course); but I find that, if I keep his words in mind, I can accept a lot of otherwise incomprehensible behavior... including my own. ' You heard the saying about how all the best jokes are based on a kernal of truth?
exit strategies | Sat 18 May | strategist
What is your exit strategy for leaving your career in IT? I have tried, and cant visualize myself sitting at a desk in front of a computer when im 50 (im 29). Even if I wanted to, I just dont see the opportunity for making a decent living to still be there. As a manager, maybe. but I really have no desire to manage IT projects. anyway, Im currently looking at becoming an ICU nurse or an ASE certified mechanic for luxury vehicles. id have to start out at the bottom, but after 5 years each seems to pay about the same as a developer with 5 years of experience. (i.e. about $100,000). Both seem sort of interesting and useful, and Id get to be up and about, rather than chained to a desk. What are other people planning? ps: this might seem like a troll, but im actually curious.
Sat 18 May | Bella | If you haven't already, start becoming frugal. That will facilitate any transition you make. Also, to compuound that, if you can get a raise elsewhere, or a fat contract, go do the 'shit' work that you would have otherwise turned down in the past. Put in the hours, if needed. Any define a clear, CONCRETE exit path and exit criteria to be met, otherwise you may never get the nerve to make the change.
Sat 18 May | Bella | > can't visualize myself sitting at a desk in front of a computer when i'm 50 What's all the negativity towards desk jobs ? I love desks. You can put books on them. You can rest your elbows on them. It's a good place to put your lunch. It provides a nice flat writing surface. It sure beats standing around all day. Easy on the feet. Go ask some local trademen about all the aches and pains they live with day in and day out. And what's so bad about being near a computer all day? You're read THIS, arent you? If you're a programmer, you clearly LOVE computers. This should be a godsend. I wonder if racecar drives complain about having to drive to the grocery store on the weekends...
Sat 18 May | No BS | you can make 100K w/ 5yrs experience hah?
Sat 18 May | strategist | I agree, this isn't a 'bad' job, i just cant fathom doing it for the next 20 years. I'm not so interested in discussing why the industry does or doesnt suck. I'm more interested in learning about what other people plan on doing outside of IT, if anything. I guess i've been doing this too long, (10 years), because it is very difficult for me to even think of anything else I could do that pays more than about $8/hr. Are there career counselors for former programmers?
Sat 18 May | strategist | no BS, if you live in silicon valley, NYC, or boston, certainly you can make $100K with 5 years of experience (it isn't as easy any more, but not impossible). I was making $80K with 2 years of experience in MINNESOTA when I was 21. It is more a factor of being a shark about getting paid than it is about racking up experience or on the job brownie points...
Sat 18 May | strategist | also Bella, i'm not sure if 'love computers' is the right description. in my case, its more of a strange obessive compulsion, rather than 'love.' again however, it would be interesting if this thread didn't flame out into a big boring rant about how IT sucks, or how I suck, or how everything sucks, and we should all just live with it. (however, i'm not too hopeful) i'm truly interested in if other people have 'real' plans for exiting the software/IT industry, and what those plans are.
Sat 18 May | quitter = strategist | strategist, i have a feeling you're the same person as quitter in one of the other boards. I think you need therapy because you're terribly pathetic. Keep blaming the IT world for your problems, though. It will do you good. That way, when you become a banker or a car mechanic and hate that too, you'll have plenty of practice in blaming your 'industry' It's nice, though, that you use boards that are normally for software to ask people what their advice is for someone who hates software development. Are you really this pathetic?
Sat 18 May | quitter | oops. busted. the real trick will be to figure out which weblog is mine.
Sat 18 May | quitter = strategist | Actually, the real trick will be to see how much more pathetic you can become before the entire internet becomes naseuated with your self-absorbed bellyaching. Maybe you do need malaria. Then you'll have a real reason to complain. Sorry I don't think making 100K is all that bad. Why don't you just go away and do something else instead of asking stupid hollow questions on internet boards??
Sat 18 May | Johnny Simmson | strategist, quitter, who the hell ever... This is a legitimate question. There's a reason there's so few old programmers.
Sat 18 May | Jeb | So what do old people do besides sell and talk the talk? I am young and the industries I have been involved in only had young people (programming and trading). I would like to know what people over 40 or 50 do for a living?
Sat 18 May | Armand Tansarian | Develop software... many go freelance to avoid ageism amongst cretinous HR departments (if that isn't an oxymoron), gradually they wind down the number of days they work in a week. I probably know more 50something programmers than 20something ones.
Sat 18 May | a programmer | It sounds like Strategist is just confused about life. That's the problem. I don't mean that as a slight or an insult. Where I work there are lots of older programmers, and they seem to be quite satisfied with their jobs. They seem to enjoy their work well enough -- it presents constant challenges, there are lots of opportunities to do innovative things, and the people we work with are pretty nice. Having spent years being spoiled in graduate school, thinking that life is all about doing exactly what you want, I'm finally learning that there are very few jobs that people would keep doing if they didn't need the paycheck. Our society doesn't work that way, except for a very, very lucky few. Just curious: Why in the world would being an ACE mechanic for luxury vehicles be any more rewarding than computer programming? Because you get to get under a car and get your hands greasy? And why would nursing be any more rewarding than computer programming? Most nurses I know hate their jobs -- they hate the health care system, hate the patients, hate getting treated like crap by doctors.
Sat 18 May | Tony | Quitter, I'm 49 and still working as a software developer. At times I have got sick of my job too, it happens to anybody who does the same type of work for a long time. I've mentioned this before on anther thread, work less, re focus, earn less until you find something worth the effort. I'm lucky, I've been working as an independant contractor for 23 years, I've never been out of work unless I wanted to be and I still like what I do and have more work that I can shake a stick at. But, like yourself, at times I've thought that its boring or whatever, and each time I felt like this I needed a decent break, pure and simple. Still now when I'm in the zone with something I enjoy doing I can pull 18 hour days if I want too and not notice that I've missed the last train home, whatever, my point being that even though I've felt tired burnt out in the past (probably more that 10 - 15 years ago now the first time), I still like what I do and at the moment I love the project I am working on, my wife has to pull me away from the PC sometimes. I might hate my next project, who knows. There are no hard and fast rules, none of the cliches fit, some jobs you love, some you dont mind, some you hate. I am more selective now, rarely do I accept a job that I dont like the sound off just for the money. If you hate your job find another one, if you hate that one find another one, if you hate that one, quit.
Sat 18 May | Matthew Lock | I for one am getting mighty bored of these 'I hate programming - what should I do?' posts. If you don't like your career, change careers. No one is forcing you to be a programmer. Had to get that off my chest. ;)
Sun 19 May | Hugh Wells | To all those people asking what people do when they reach 40 or 50 - how old do you think Bill Joy or James Blinn are? And I guess this could be a very long list.
Sun 19 May | Nathan | I understand where strategist is coming from. I was getting kinda bored with some of the projects at work (but i still love it), so i went back to school to get my BS in CS, and I started a auto body shop with a couple friends. i still plan on programming, because i love it. but i found some ways to mix things up a bit and keep me challenged.
Sun 19 May | Eric Debois | Im working part time as a college teacher/lecturer. Its a great combo. Teaching is quite stressfull in its way but its fun to meet students and be out and about. Also I am employed on a yearly basis, so I get a steady paycheck from the college. So even if I dont get any good freelance jobs I know I will have enough money to get by. The students values my 'real life' experience as most of their other teachers only have academic knowlege of programming.
Sun 19 May | Bella | There aren't many 50+ programmers b/c programing is a relatively new field. People who are 50, would have had to have started programming in 1970. Anyone care to dig up labor stats on how many programmer (or systems analyst) jobs there were in 1970 compared to today? My point is that 30 years from now, there will be a hell of a lot more 50+ programmers. It's not inherent in the career itself, I say.
Sun 19 May | Bella | oops. busted. the real trick will be to figure out which weblog is mine. I love puzzles! But give us a hint to start with....What site is your weblog on?
Sun 19 May | Johnny Simmson | I saw these stats a while back, thought they were interesting. http://heather.cs.ucdavis.edu/itaa.real.html#tth_sEc5.1 'These attrition rates are striking. Five years after finishing college, about 60 percent of computer science graduates are working as programmers; at 15 years the figure drops to 34 percent, and at 20 years - when most are still only age 42 or so - it is down to 19 percent. Clearly part of this attrition is voluntary, but most are forced to seek other work when they see the handwriting on the cubicle wall: Employers do not want to hire older programmers. It should be noted that other technical fields do not show this rapid decline of work in their area. For example, consider civil engineering majors. Six years after graduation, 61% of them are working as civil engineers, and 20 years after graduation, the rate is still 52%; compare this to the decline for computer science majors from 57% to 19% seen above. '
Sun 19 May | Bella | Since programming has paid such obscene salaries, at least in the past 5 years, a significant portion could be retired by that age... Also, considering the 'anti-social' stereotype of socially illiterate, obsessive programmers, a greater percentage of programmers may not be married with children. This results in more financial independence than the average person, allowing a greater portion to retire early.
Sun 19 May | Johnny Simmson | Bella, I can't figure out if you're trolling or being serious. Congratulations.
Sun 19 May | mackinac | >>>What is your exit strategy for leaving your career in IT?<<< The idea of leaving software development has occurred to me a few times, but I haven't thought of anything I'd rather be doing. My current strategy is to try to find a way to get out of the Dilbert zone. I have worked in an environment where I enjoyed coming to work in the morning. That place disappeared when the dot com bubble burst, but I don't yet believe that was the only decent work place in existence. At this point I am going to start going to a few conferences and local professional organizations and start finding contacts. This will take some months before I can determine my next step.
Sun 19 May | B | I know a fair number of programmers in the 50+ club. One thing they seem to have in common is they are all technical wizards, and very highly regarded by their employers. I suspect a mediocre programmer with 20 years experience may not significantly outperform a mediocre programmer with 5 years experience. (If they were actually learning, they wouldn't still be mediocre!) Thusly, there is a cost/benefit disparity. On the other hand, if I could get a few of those 50+ tech wizards, some venture funding, and a good product idea, I could rule silicon valley! (Of course, they might ask why they need me :)
What would you choose ? Big Company or Startup ??! | Sat 18 May | JD
Hello Everyone, Its 2nd time I am posting a topic here. and this time I am hoping that I would get replies which will help me in making some decision. Its crucial and its about my job. No no.......................its not like I dont have job. ;) Situation is I have TWO offers and I am finding myself in tough situation of not being able to decide which one to choose. I am a *kinda* fresher ( its been 7 months I have finished my grad in Electronics Engineering). In my final year of college I got selected in Infosys ( http://www.infy.com, TOP IT company in India). But by the time I finish my grad, it was recession in IT and Infy postponed my joining indefinately. So I was forced to search for another job. It didnt took me long and I found myself working as systems engineer in One broadband company. Its a part of one MNC which operates in 23 countries !! [ I am not revealing company name due to some concerns ] Its a great setup that they have done here in Surat (my home town) and I find myself lucky enough to get chance in MNC such as this !! The only hitch was my salary which was way too low. Only 6k. But now after my 6 months, I am going to get 100% hike !! Its been confirmed by GM of Finance/Operations. I am doing good and out of nowhere Infy has called us up !! I am suppose to join on 10th June. 1 month from now. I am suppose to join in Hyderabad ( Hi -tech city of India) . Now my confusion is to whether join Infy or stay in Current company. Now you may say go to Infy ,big company , big things , big projects, right ? But there are few things. I am getting really good exposure in my current job and has made myself a place in the company. CEO of company just came to talk to me on last Sunday we even went for lunch..and he offered me salary equivalent to Infy. That is 3 times my current salary !! Also I am getting chance to work on Metasolv, Infranet Portal ( Which I love MOST and I am administrator of it in my company ), TIBCO. All Enterprise level products. I have GREAT boss and I mean it. I am given chance to design solution from scratch. They tell me a problem. Then I decide which technology to use, how to implement and deployment scheduel. Till date I have worked on 6 projects , latest one being Video mail. [ I have implemented it from start to end.] I wonder if I would get chance to do same thing in company as big as Infy. There I would be a *small* part of BIG project and I wont even know head and tail of it. Kinda black box , isnt it ?? Here projects are not that BIG but certainly they are good enough and I really enjoy giving SOLUTIONS to PROBLEMS. I have 100% job satisfaction here. Now Infy has name, they would give me training, they would send me for off shore projects. But then..then what ? WIll I be another coder amongst those *thousands* out there ? How long it would take for me to again make same position in Infy ? Is it even possible ? There are numerous advantages too. They would be first giving me extensive training on varioius technologies, I would have offshore projects to work on, would be going to US/UK and all.. [ One of my dream is to go abroad ]. but what would be my profile ? What if they put me in testing team ? [ Me being more of developer , I wonder what I do in testing team. ] Now what do I do ? Shall I join BIG company or stick here in a startup ?? I am LOST. Please help. JD P.S. : I wonder if joel can spare some time and suggest something.
Sat 18 May | Bella | Infy booted your ass when their business slowed. Who's to say they won't do it again? In this environment, employER loyalty has become a bigger factor. I suggest you decline your offer with INFY. Small firms tend to give you more varied experience, which is beneficial early in your career. Good luck.
Sat 18 May | Troy King | Yeah, I'm with Bella on this one. Forget Infy, they didn't do you any favors before.
Sat 18 May | strategist | working for a big company is never much fun. Your current job sounds ideal, aside from the pay. I would stay there, you can't beat 100% job satisfaction.
Sat 18 May | Matt Conrad | Well, I'm not going to break the trend. You are respected and important where you are, you are doing cool work, you are (now) well paid, you are happy, and all your indicators for the future are pointing up. You would be crazy to switch to Infy.
Sat 18 May | JD | Thanks for the feedback guys. Yeah, my pay would be matched up. Good things to do here. But then there are family and friends, who don't understand these things. For them my existing company is *BS* and Infy is everything. Yeah I can go against them but.. Its been 6 months I have been in this company. I see *enough* work for next 6 months. But then.......hm..interesting. What after one year when I would have reached the saturation. I mean right now I am writing some web based apps in PHP. Wrote two applications in VB. We have Sun Solaris , Win 2k Advanced Server, Linux machines,Cisco Routers , CMTS, CNR.. [ Actually we are Broadband ISP ]. So...I am getting feel of different things. But when I would like to change job, How would I go about it ? Cause I am not 100% Programmer nor 100% Systems Administrator. Somewhere inbetween. So I am also suppose to think what after 1 and half year ? How would I present myself for next job ? Don't you think the *name* of last company you worked with,matters ? How do I take care of that ? JD
Sat 18 May | Bob | If INFY is anything like a large company in the US, you will be working on some small part of some giant system, then fired after 5 years...after having worked on something very marginal. I would concentrate on doing a good job at what you like to do, and not worry about company names or what your family or friends think.
Sat 18 May | Jeb | >>>But then there are family and friends, who don't understand these things. For them my existing company is *BS* and Infy is everything. Yeah I can go against them but..<<< Most people are concerned with status and rank rather than personal well-being.
Sat 18 May | Patrik | Startup any day of the week. However, it depends on what the startup is doing; If the startup is having a product, its worth spending some time there and contribute. It will give you the opportunity to work with other motivated people, all striving to produce a good product. This will probably raise your motivation to make a better effort. It sure motivates me. This is a good environment to work in. You will pick up heaps from other talanted people. Consulant-companies on the other hand kindof sucks since when you join consultant-companies it will take you a week to spot the ace programmers, and once you have done that it will motivate you to compete to become one of the 'good ones'. Once that is accomplished, you will not be able to work with any of them again, since consultant-companies sell 1 ace-programmer and staff the rest of the project with warm bodies. IMHO this is common behaviour. Large companies do in-house stuff, and suffer from the same problems as consultant-companies. This is not neccesarily true, but in my personal experience no one proved me wrong so far :-)
Sat 18 May | pb | Bog companies and small companies are both fin to work for. I think the real decision should revolve around your satisfaction and enjoyment with your current position. It sounds like you like it. I would stay.
Sun 19 May | Johnny Simmson | A few questions I think you should ask yourself: Why did the startup offer so low of a salary at the beginning? What has changed 6 months later so that now they can offer you a 100% hike? If the CEO thought you were worth the Infy level salary, why is he just now offering it to you? I prefer small shops because you get to do SO much more. However, it sounds to me that this particular startup has been trying to dick you over.
Sun 19 May | Johnny Simmson | I should qualify that a bit. It could also be that you have exceeded their wildest expectations and they are acting quickly to remedy the salary deficiencies.
Sun 19 May | JD | Johny, Here are the answers. >Why did the startup offer so low of a salary at the >beginning? I was fresher. I had lecturer's job which was paying me double than wha they offered. But I wanted to do technical stuff rather than taking lectures. So I jumped in with aim to proove myself. >What has changed 6 months later so that now they >can offer you a 100% hike? Cause in the quarterly appraisal , I am the best performer across the company. I have delievered *solutions* in considerably less time and have also saved good amount of money some way or the other. >If the CEO thought you were worth the Infy level salary, >why is he just now offering it to you? 100% hike was decided even before I had got offer from Infy. But now as I am saying that I would go they are trying to match up. >I prefer small shops because you get to do SO much more. True. But is it so BAD in big companines ?? >However, it sounds to me that this particular startup has >been trying to dick you over. Hm...I am not much sure. It seems that everyone is saying that stick with start up. But what if that closes in 1 year ? I am sure Infy want take me at that time. Hm...wondering about what to do... JD
Sun 19 May | Johnny Simmson | Will you be doing management consulting at infy? If so that would be a tough call.
Sun 19 May | Bob Perlman | Here are a couple of things to think about when making the decision. When good hiring managers evaluate a candidate, the technical assessment is the easy part. More difficult is deciding whether the candidate has the right character to do the job. Will he be persistent in the face of a difficult-to-solve problem? Will he get along with the rest of the staff and work as part of a team? Will he be diplomatic when dealing with customers? One of the best ways to assess these and other behavioral traits is to find out how the candidate's behaved in the past. You ask for specific examples, and keep digging until you get them. The same applies to you when assessing prospective employers. Forget what they're saying; how have they behaved in the past? In your case, you have a current employer who has given you a great boss, interesting assignments, and a hefty increase in salary that--apparently--wasn't motivated by another employer's offer. And you have a prospective employer that made you an offer, then withdrew it. This doesn't seem like a tough decision. A second point: one mistake most of us make when first learning about the corporate world is to assume that big companies are monoliths, and that a good company is good throughout. But all large companies, good or bad, are just collections of people. Even the best companies have some internal organizations that are excellent, others that are pretty awful, and a bunch somewhere in between. If you join Infosys, what's the quality of the group you'll end up in? Has Infosys given you an opportunity to meet the people you'll be working with? Have they given you the details of your initial assignment? You're relatively new to the industry; is there anyone in the group who's willing to be a mentor? To me, the answer to these questions is more important than whether Infosys is the top IT company in India.
Sun 19 May | JD | Bob, Those are quite interesting thoughts. 'When good hiring managers evaluate a candidate, the technical assessment is the easy part. More difficult is deciding whether the candidate has the right character to do the job. Will he be persistent in the face of a difficult-to-solve problem? Will he get along with the rest of the staff and work as part of a team? Will he be diplomatic when dealing with customers? One of the best ways to assess these and other behavioral traits is to find out how the candidate's behaved in the past. You ask for specific examples, and keep digging until you get them.' Absolutely true. Even if you are a hi-fi techie, if you can't manage to work in team, hm.. Actually during my appraisal similar things were analysed, and according to my boss I have been a very good team member, who not only takes initiatives but drives others to do the same. [ I guess too much apraising of myself !! ;) ] 'The same applies to you when assessing prospective employers. Forget what they're saying; how have they behaved in the past? In your case, you have a current employer who has given you a great boss, interesting assignments, and a hefty increase in salary that--apparently--wasn't motivated by another employer's offer. And you have a prospective employer that made you an offer, then withdrew it. This doesn't seem like a tough decision.' How they have behaved in past ? As such when they offered me low salary, I shouldnt have accepted it. But I was DESPARATE. But then I worked hard. Created room for myself in company. My Boss has worked hard to get my hike even before Infy came. My boss ( IT Manager) has good relations with CEO of company and he made sure that I am getting 100% hike. That was the reason I told my boss about my offer and he took it with CEO itself and he is offering me pay equivalent to Infy which is thrice of current one. Now if you talk about Infy, they selected me during campus. But then there was real bad time for IT. And they decided to delay joing for 6 months. I don't find it wrong. In the sense if they have don't have projects to work on, what is the point of taking us and then keeping us on bench ?? 'A second point: one mistake most of us make when first learning about the corporate world is to assume that big companies are monoliths, and that a good company is good throughout. But all large companies, good or bad, are just collections of people. Even the best companies have some internal organizations that are excellent, others that are pretty awful, and a bunch somewhere in between. If you join Infosys, what's the quality of the group you'll end up in? Has Infosys given you an opportunity to meet the people you'll be working with? Have they given you the details of your initial assignment? You're relatively new to the industry; is there anyone in the group who's willing to be a mentor? To me, the answer to these questions is more important than whether Infosys is the top IT company in India. ' EXACTLY TRUE. Now the thing is I would be joinig as systems trainee. There is 3 months extensive training. Infosys has got one of the best trainigs in IT corporates of India. Once we are through, depending upon our performance during Training we would be assigned projects. Now I don't know whom I would be working with. What I would be working on. ( They would decide once training is over.) So its upto me, what do I do in first 3 months. Now I have worked in IT company unlike my other batchmates who couldnt find job when Infy delayed. So when we join I definately have advantage over them. So looking at both sides, Its *tough* to decide. What you say ? JD
Sun 19 May | JD | Mistake in last message. I would be joining as SOFTWARE trainee and not systems trainee. JD
Sun 19 May | B | It sounds to me like your are faced with two good choices. This *seems* like the hardest kind of decision because usually we can find the good solution by pruning away the bad ones. With two good choices you can think and think and still come up with two good choices! Either way you go will be successful. I recommend you think about your good fortune, smile, and do what you want. :)
Weird client behaviour? (Long post) | Fri 17 May | Eric Debois
Hi. I was recently approached by a web magazine. Its a site for parents with young children that features articles, forums and a doctor that answer questions. It has about a 1000 paying subscribers. Now last fall they decided to rework their site from ground up. They hired a consulting company, but things went sour (dont know the details) and now the magazine is stranded with a half finished product. This is really quite funny. They call me up an ask me if I know perl, I say Not really, no (I do Java and ASP) but they insist on me taking a look at their half baked system. I understand that they are quite desperate so I agree to come look it over. Its basicly the weirdest non-standard thing I have ever seen. The consulting firm has written their own server side script interpretor (undocumented I might add) and hooked it into an apache server via perl. The apache server is in it self _heavily_ modified, and I couldnt even launch the thing to see the system in action. Config files contain things I have never seen etc. To top this off they wrote their own DB connection objects that made no sense to me what so ever. All this to make what is basicly a pretty standard DB based content management system + forum much like every community style site out there. (Ok, the user management is a bit heavier since its for paying members..) So after looking at this stuff for a bit I gracfully decline their not very lucrative offer, especially since they claimed it HAD to be done before august and I am fully booked till the middle of June. But, I tell them, I could write an equivalent system in Java/JSP. I got most of the needed code already (Ive done a few simmilar systems before) and any resonably skilled Java coder will be able to modify or add to it. I would use very a standardised architecture and it would be reliable. They said No! I inform them that the chance of them finding a person with the needed skills, to undertake this task within the given time frame, especially cosidering what they are willing to pay, is very slim. They still say no. I tell them that the functionality of what they already have could be replaced by free PHP stuff available on the web. They tell me that they gave the consulting firm a 5 figure amount for that weird thing and they are going to make it work. End of story. Is this common? Does this seem like utter stupidity to anyone else? Can some buissness savy person explaine this?
Fri 17 May | Roland Kaufmann | Wearing the economist hat: They will never get back the money they have invested in the old system. In business class terms that is called sunk cost. It is not only common sense but also 'MBA sense' to do the rewrite. The only thing more dangerous than a pointy haired boss that doesn't know information science, is a pointy haired boss that doesn't know business science either.
Fri 17 May | american express | I was a programmer in japan for 2 years, and I saw tons of systems like this. I.e. where some company had hired a firm to build a simple database-backed website, and the consulting firm had badly implemented 1/10 of an RDBMS on their own, isntead of just using sql server or postgres or whatever. total nightmares. an american company i worked at for a stint had something similar, but not as bad. their in house guys were java wizards but basically didn't know shit about writing a sql query, so they basically spent 1.5 years writing a huge disastrous pile of java code to avoid any SQL more complicated than 'select * from table'. i imagine there are more systems like this than you would think. there are a LOT of clueless programmers out there. as to the company's attitude, there are also tons of people with that same attitude. there are even more clueless business people out there. ;-) i used to wonder why this happened, and determined life was too short to worry about dumb people. just learn how to identify these types of situations and dont get involved. ;-)
Fri 17 May | Jan Derk | Eric Debois wrote: 'I tell them that the functionality of what they already have could be replaced by free PHP stuff available on the web. They tell me that they gave the consulting firm a 5 figure amount for that weird thing and they are going to make it work. End of story.' People don't like to be called stupid. It takes very carefull handling and great convincing powers to get your point through. Why would they believe you? The ones that took the 5 figure number probably sounded believable too. The good guys in the IT suffer a great deal from all the loose cannons which are around just to make money.
Fri 17 May | TK | Jan, you are so on the money. I'm not sure if Eric really wanted the job anyway. But there might have been a more tactful way to approach them and perhaps get the job and do them a favor by providing them with a maintainable system. On the other hand, the web magazine folks might not be telling you straight either.
Sat 18 May | DC | I think another possibility is that, politically, they probably couldn't admit to their higher-ups (or investors, or whoever) that they paid > $10000 for something that doesn't work, and that it would be easier to start over than to use what has already been paid for. It might be about them keeping their jobs by not openly admitting their incompetence in overseeing the project. Such twisty thinking would help explain how they got to be managers, though it doesn't make them good managers in any productive sense of the word.
Sat 18 May | Hugh Wells | Eric, people like this can be very dangerous. They presume to understand development, and yet clearly don't. Further, they seem not to have accepted that they've made a mistake and have done their money. There are really two different jobs here. One is to build a system for them, and it seems that's what's you've been offering. The other is to fix their disaster, and that's what they want you to do. They seem also to want you to do this at low cost. You should explain the situation to them. If you're interested in doing the job, avoid the existing code completely and also require payment in advance. If they don't, move on. They want to fix the mess; let them do so.
Sat 18 May | Eric Debois | Good thoughts here. Im not much of a sales man, am I? But then, I was just being honest, and I have several clients who appreciate that. And actually, no I diddnt much want that job. When I told a friend about this, he said that it was probably a conscious strategy of the consultants to make the system obscure, knowing well that noone else will dare to touch it. If that is the case this has become one dirty bizz.
Sat 18 May | Hugh Wells | The reason the system was crap is most likely that the 'consulting company' was not a development shop. It was probably run by sales-type guys without development expertise, who hire the cheapest guys who'll work with them. Management brings in the deals, flogs the 3rd-rate developers, and then probably whinges about finding it hard to get good developers. The developers have to work ridiculous hours, but never learn to do good work anyway, and pretty soon hate their jobs. It all gets back to the fact, in software development, software developers are often not the ones in charge. This is different from most other mainstream intellectual professions.
Sat 18 May | Sean Conner | If the managers are concerned with getting what they have done, and you have the ability to replace what they have with something more standard and easier to maintain, why not take the job, sit down with them and have them explain how the system is suposed to work (from the user side---say you have to do this to get a handle on how the system currently works) and then completely replace it but keeping the user interface? That way, they get to say their $multithousand project finally works, and they (unbeknownst to the managers) get a maintainable system that works. The only downside I see is that now the original consulting company's monstrosity is now seen to “work&38221; when it never did. Or is this further purpetuating a lie?
Sat 18 May | Hugh Wells | I would tend to think that, with people like this, if you use any of the material they've paid for, they will turn around and claim that material was a significant part of the success you obtained. Therefore they shouldn't pay you so much. Also, that they own the work as well. It's obvious that they haven't accepted their mistake. Also that they were foolish enough to choose an incompetent firm. What they want now is for YOU to shoulder THEIR problem.
Sun 19 May | Bella | Now last fall they decided to rework their site from ground up call me up an ask me if I know perl, I say 'Not really, no' Its basicly the weirdest non-standard thing I have ever seen Maybe it seems more complicated than it is, b/c you don't really know perl? Also, this site could have been written in 1995, don't compare it with today's approaches. And not replacing it is called 'throwing good money after bad' It happens everyday. They associate redoing the site with the initial build time and cost, even though they may not correlate.
how can "new.net" install without asking? | Fri 17 May | Manuel Razzari
Its the first time I see any app install iself without even an OK warning... How can they do this? Is it potentially dangerous?
Fri 17 May | John C | It's spyware it i remember correctly. it's not dangerous but well worth removing imho.
Fri 17 May | Ged Byrne | Try this link to find out more: http://www.cexx.org/ http://www.lavasoftusa.com/aaw.html
Fri 17 May | Nat Ersoz | Eegads, I had no idea... Soon, that computer is going to be like one big 'Max Headroom' -- all talking and squalking, and it'll never shut up.
Fri 17 May | Zwarm Monkey | Where can I find more information on 'new.net'? Is it a particular program? I can't find anything on Google for 'new.net'.
Fri 17 May | pb | Yawn. More Microsoft bashing.
Fri 17 May | Armand Tansarian | What has this got to do with Microsoft ???
Fri 17 May | Benji Smith | New.Net is a company that makes up their own domain name extensions and creates browser plug-ins so that you can visit those sites by typing in their fake domain name directly into your browser. For more info: http://www.cexx.org/newnet.htm I don't know anything about how their software could install without permission (I've never used their software), but you might want to change your internet settings (in IE navigate to Tools > Internet Options > Secutity > Custom Level) to make sure that you are prompted before downloading any Active X controls.
Fri 17 May | pb | My bad. I'm confused. Sorry.
Sat 18 May | Leonardo Herrera | 'How can they do this? Is it potentially dangerous?' All they need is a certificate (which you can buy for a few hundreds) and create an application that is compatible with IE guidelines for autoinstallation. We have the reaction of hit 'yes' without even read the dialog boxes, so we are easily scammed with this kind of stuff (see also the Comet Cursor, which is same as evil, IMHO) The simple solution is to increase the security level of IE, or to use some better browser, like Mozilla (I have rediscovered it, and I like it a lot :-))
Sun 19 May | Ori Berger | I'm not sure whether this is new.net, but at least one spyware application used IE vulnerabilities to bypass the 'Yes/No' dialog and directly install on the user's machine. FYI, there are numerous hotfixes for IE appearing on a more-or-less weekly basis, with a 'cumulative patch' coming out about once a month. Everyone, whether or not they are aware of the risk, is bound to be bitten at some time or the other - it's simply impossible to keep up with all of the patches; Script Kiddies and hackers generally have the upper hand. I switched back to Mozilla when 0.9.5 came out, and haven't looked back since (except to read Hebrew sites, which Mozilla doesn't perfectly support yet). It's way faster, it kills pop-up ads, the tabbed browsing feature is a killer (even though the GUI for it is horrible by any standard). I've never left Netscape/Mozilla as mail software - the only thing Outlook does better for me is calendaring, and it does everything else worse. People, if you're not ultra conservative, give Mozilla a chance (now at version 1.0 release candidate 2 - you don't need to be adventurous to use it). If you are ultra conservative, wait till the final 1.0 release is out, and then give it a try. It simply works well, and has much less chance of accidentally putting spyware of your computer (though the probability does exist - netscape did have it's share of vulnerabilities).
Software License Management ... | Thu 16 May | James Ladd
Peeps, Have any of your integrated a software license management solution into your product ? What solution did you use ? What were the pros and cons ? Any comments much appreciated.
Thu 16 May | Martin L. Shoemaker | Haven't used one in my product. One company I worked at used FlexLM for UNIX and NT, and I was very glad there was no version of FlexLM for Win16 at the time (when I was doing the Win16 port). It seemed like our tech support people spent HOURS on licensing issues. But as a customer, I have HATED FlexLM in the past. I was inclined not to use a product that used FlexLM unless there were a lot of benefits in the product. I've had too many cases of FlexLM locking out legitimate users; and the administration tools weren't easy to use. And the worst case was if you had floating licenses AND users who sometimes needed to use them on disconnected laptops. The only practical solution was to by a separate fixed license just for the laptop; but that could soon negate the benefit of floating licenses. They have loosened the product up considerably lately. The administration tools have improved. And since I now have only one fixed license installed on my laptop, the floating license problem doesn't matter to me; but I'm told by others that floating licenses are now 'leased' to a particular machine, and can be used disconnected from the license server for some length of time. (My students said it was two weeks, which is GREAT.) So I think the FlexLM folks recognized user dissatisfaction, and have worked to correct it. And on the plus side, it's an amazingly secure system. Yes, I'm sure someone clever could crack it, but it won't be easy. You certainly won't get casual users pirating. (You also won't get people using the same license at work and at home, but never on two machines at once. I suspect that's usually a copyright/license violation, but I always considered it a fairly benign one. I liked the old Borland 'common sense' license that explicitly allowed simultaneous installation as long as there wasn't simultaneous use. FlexLM doesn't support this.) But realize that with strong security comes a cost. Some people are philosophically opposed to strong copy protection. Yeah, some of those are just pirates, but there are other reasons. And even users who scrupulously respect copyright laws will get annoyed if license management is too cumbersome. (Consider that Rational is now advertising as a feature the fact that their new XDE tool no longer uses FlexLM: they had so many complaints about license management that they decided it was a detriment to their sales and support.) So if you decide to use license management, be aware of the down side along with the benefits.
Thu 16 May | Protecting The Guilty | A History We moved to FLEXlm with the knowledge that as many as 50% of our seats were being used illegally. Many companies bought (for instance) 10 seats, and then grew to 15 users and just kept installing. Our VAR-channel was aware of this, but unwilling to confront users because of the negativity in a competitive market. In extreme (but not rare) examples, companies would have 1 annual contract (and thus get 1 new seat of all new releases) and install the new release on all seats. The expectation was that we would see a 10% to 20% increase in sales revenue with deployment of FLEXlm, estimates that were lower than what Globetrotter (the maker of FLEXlm) pushed. So we went about the implementation. To say it was hell would be taking the easy dodge, but it wasn't easy. Our product is a Windows product and our customers are Windows users, and not sophisticated ones. Blue-collar guys are our end-users, by and large. FLEXlm comes from a UNIX background and was ported to Windows, and the heritage could be painfully obvious at times. I don't want our customers having to care about environment variables, for instance. They should boot the program and it should work. In the first release under FLEXlm our customers screamed in pain. We begged, threatened and generally passed on the pain to Globetrotter. No real response. In the second release we did better, and Globetrotter started to come around. On the third release under FLEXlm I believe we finally have it 'right', at least under that majority of cases. Support continues to be an issue. We have not seen a 10% increase from the illegal seats becoming. After we first implemented it, we had anecdotal evidence of people getting legal, and that was very gratifying. Customer sites who theoretically had 10 seats were calling and asking what it would cost to get 5 more. However, that has not paid out in the overall. On the other side - FLEXlm is not hugely expensive. It is quite likely that enough legal seats have come on board to pay for the FLEXlm side. A big warning though: the FLEXlm contract is based on the revenues of your company. Not the revenues of the products that have FLEXlm installed. We paid our first 'royalty?' bill to Globetrotter before we even had a product out the door. Bottom line - It might still be worth it, and if your customer base is very likely to pirate quietly but come clean under a bit of pressure. p.s. DO NOT USE FLEXlock, the trial-usage cousin of FLEXlm. It is pitifully easy to break by a vaguely savvy customer, who then can explain how to break it to all his buds in a 5-line email.
Thu 16 May | Chris Tavares | If you really want to limit usage, use a dongle, not a software license. Then there's no question about floating vs. fixed licenses. Anyone can install, and if they've got the dongle installed, it'll run. That way if somebody needs to take a license on their laptop, hand them the dongle. Just remember that this stuff only keeps the honest people honest - somebody who wants to break your license WILL be able to, no matter what you do.
Thu 16 May | Adam | As we began a migration to using IDEA from emacs, at a couple points we had a few machine using evaluation licenses as we waited for the real licenses come in. At some point they complained that the same license was used on more than one machine on the network. Seems pretty smart to me. Why not license in discrete chunks? 1-5, 5-10, 10-20 etc? Time bomb the licenses so that they have to get a new cert from you periodically. When you issue the new cert, you can query them about usage, and up the license level. Let's face it, it doesn't really cost you any more for one additional user. I costs you more on a contuopus scale per size of support requests. A little creativity here could really win you big plaudits from you customers. Get a reputation as an easy company to work with/forIgnore the pirates that don't really affect you. There are easy ways to do this. Require a new install to get a cert from the main web site. Use the MAC address as the key. Allow them to continue to do this as many times as they want. You can monitor their distribution habits. People will be very wary about this. Hell, make one of the limits the number of times they can download a license.Be flexible in helping them to get new ones once they exceed their quota. Do it like FastTrak: Give em an account with x number of dollars in it. Each time they down load a license, subtract an amount from that account. At the end of the time period, return the unused portion to them (actually, just let them roll it over into the new time period) It'll make accounting hell, but accountants get bored with the routine. ;) Make life easy for your customers. You'll spend fewer engineer weeks on it, and have happier cusotmers. Everyone is online these days. Make it trivial for them to license over the internet. Be liberal with your evaluation licenses. A couple weeks using a free copy gets them hooked. Joel, Please add a spell check to this site. I am really smarter than my ability to type correctly would imply.
Thu 16 May | Joel Spolsky | we do have spell check on this site, it's just that your license has expired.
Thu 16 May | Marc Luu | Just remember kids, only use the bare miminum license key protection software that you need. Use just enough to stop casual copying - because not matter what you use, you can't stop it. Period. FlexLM is a bitch to use. Terrible peice of software, and retardedly insecure. Under linux, it's dead easy to fool it into accepting any 'hostid'. Therefore, if you have a license that'll only run on computer A, you can now run it on any computer, because flexlm will still think it's on A. Don't beleive? here is the hack: FlexLM uses the MAC of your NIC to make a hostid. It does this in linux via an ioctl call. You can PRELOAD your own ioctl that flexlm will call and have it return any MAC you want. Here is the code (made brief, probably wont come out right because of lessthan chars): #include #include #include typedef int (*ioctl_t)(int, unsigned long int, char *); int ioctl(int d, unsigned long int request, char *argp) { int out; ioctl_t realioctl; void *libhandle; /* mac address here */ char data[14] = {0x00,0x00,0x00,0x00,0x00,0x00,0,0,0,0,0,0,0,0}; struct ifreq *lame; lame = (struct ifreq *)argp; if (request == 35111) { memcpy(lame->ifr_hwaddr.sa_data, data, 14); out = 0; } else { libhandle = dlopen('/lib/libc.so.6', RTLD_LAZY); realioctl = dlsym(libhandle, 'ioctl'); out = realioctl(d, request, argp); dlclose(libhandle); } return out; } #include typedef int (*uname_t)(struct utsname *); int uname(struct utsname *buf) { int out; void *libhandle; uname_t real_uname; libhandle = dlopen('/lib/libc.so.6', RTLD_LAZY); real_uname = dlsym(libhandle, 'uname'); out = real_uname(buf); strncpy(buf->nodename, 'localhost', SYS_NMLN); dlclose(libhandle); return out; }
Thu 16 May | Leonardo Herrera | You are kidding, right? We are talking about end-users, and you post some half baked C code with the word 'lame' as a variable name, dealing with address and such. If you need to write that kind of stuff in order to cheat it, then the software is pretty good, if you are aware that there is no such thing as an inviolable copy/install protection.
Thu 16 May | Protecting The Guilty | Adam, You're making big assumptions that may not apply to average shrinkwrap customers. May be fine for programmer tool web customers perhaps... a) Assuming everyone has a MAC address. Sorry, they don't. For instance, customer's machine reports its MAC as starting with '44455354'. Is that real. No, actually it's Windows lying to you. Spell that out as ASCII and it's 'DEST'. b) Assuming everyone wants to have a on-demand access to the web on the work machine used by every employee. Sorry, they don't. For the dongle guy: c) Assuming everyone will buy into a dongle. Ask yourself why several major packages (such as Autodesks' 3D Max) no longer have dongles. Also remember that you can't count on people having parallel ports, so you'll need to offer both parallel and USB dongles. d) Assuming people don't want floating (aka network) licenses. If your planned customers do not include any companies with more than 5 employees, you may be safe on this. So warnings Joel, roll-your-own may not be as easy as it looks...
Thu 16 May | Ian Stallings | My colleague and I are facing a similiar problem incorporating a good licensing into our .Net components. We tried the LicenseManager built into .Net. Then after we put that crack pipe down realized it would not work for us and decided to roll our own to create licenses for time based demos, full featured versions, and creating a seperate license they can use for royalty free distribution of our components. We really just want to stop the users from casual copying and we don't want to alienate anyone with difficult licensing schemes. But does anyone know of any products that can help us with these tasks?
Thu 16 May | Doug Withau | Roll-your-own will be very difficult. At least there will not be published cracks around on the www. I know, 'Security through obscurity... yadda, yadda'
Thu 16 May | Tom Smith | If you need software license management, you should revisit your business plan.
Thu 16 May | Duncan Bayne | > Roll-your-own will be very difficult. At least there will not > be published cracks around on the www. > I know, 'Security through obscurity... yadda, yadda' ...doesn't work, so why advocate a spurious benefit? At my previous job, we rolled our own license key system. Cracks appeared on the net almost immediately - and this is for a server product. I don't know how long it would take for desktop products, but my guess is PDQ. How we got around piracy issues was to provide support (both user and technical, bugfixes and the like) that was so good, people were happy to register just to get it. And, quite often, they registered pirated installations when they ran into problems, just to get support.
Thu 16 May | James Ladd | A great deal of information to assimilate. Thankyou all for the responses. Has anyone used something other than FlexLM ? Joel, when is your product out ? Is there a blurb on it ? BTW- Still blushing over my name on Joel's front page :)
Thu 16 May | Adam | I am not assuming MAC addresses are unique. Just that a different installation will get a different MAC address. If you find that this assumtion is false. Try something else. My point has nothing to do with using MAC addresses. I has to do with not annoying your customers. Remeber your goal: Maximize revenue. Not minimize piracy. Not increase customre license covereage. Maximize revenue. OK, for the nitpickers out there, you want to maximize profit, so don't spend too much on your licenseing scheme if doesn't have a correspondiing business value. I realize that people who are reading this thread are probably going 'Yeah, Yeah, I know that already. I want to buy an off the shelf solution that works.' There is a reason why this is hard to find. It makes bad business sense. BTW, you can copywrite your project as well, which will allow people to use it as they see fit, and just not allow other people to make redistributable copies....at least legally. Thus only RedHat Linux can distribute RedHat Advanced Server, although anyone willing to download and compile it can run it.
Thu 16 May | Banana Fred | I've used the Rational License Key Manager that they use for all their products (such as Purify). It is very annoying to setup. You can get fixed or floating licenses. To get a fixed license (which is tied to a single machine forever), you must fill out numerous forms on Rational's web site and wait for an email. Then prepare for the sales people to call and email you repeatedly. >:-\ At work, we have some floating licenses for Purify, which you must check in and out of your pool of license.. again using Rational's web site. From what we have seen, however, this scheme is somewhat broken. We have found once you have feed Purify the checked out license on one computer, it will continue to work even after you check that license back into your pool on the web site. I think the lesson (again) is that these 'features' ANNOY your customers and are DIFFICULT to write correctly! Software licenses annoy honest CUSTOMERS and are eventually thwarted by dishonest users anyway..
Thu 16 May | Martin L. Shoemaker | << I've used the Rational License Key Manager that they use for all their products (such as Purify). It is very annoying to setup. You can get fixed or floating licenses. To get a fixed license (which is tied to a single machine forever), you must fill out numerous forms on Rational's web site and wait for an email. Then prepare for the sales people to call and email you repeatedly. >:-\ >> Fred, unless I'm wrong, the Rational License Key Manager is just FlexLM under the hood. And you're right: it can be annoying to set up. << I think the lesson (again) is that these 'features' ANNOY your customers and are DIFFICULT to write correctly! Software licenses annoy honest CUSTOMERS and are eventually thwarted by dishonest users anyway.. >> Well, in all cases I know, yes. I'm willing to believe somebody has a secure-yet-simple-and-not-annoying solution. But I haven't heard of one yet. And I suspect there are business cases where they're useful.
Fri 17 May | Albert D. Kallal | I also think that one of the *best* approaches is the one used by CityDesk. It is free to try and use. When you reach a certain size, then it is clear that he business is becoming dependant on the software, and thus finds it most useful. I learned this idea from Joel, and am planing to use it for one of my software packages also. My point here is that you don’t need complex license system. However, it is really silly to assume that nothing is needed either! You need something, and it should be as little hassle and unnoticed to the end user as possible. You need something that discourages the Accounting department to copy the software for the sales department. As side note I do have a simple license key system for my software. This key is issued to the company, and is a file with the Company name that purchased the software (along with some check sum stuff, and a expiry date). Thus, they can copy the software, and employee can steal the software (perhaps for a competitor). However, if they change the name, then a check-sum will not match. Since the name appears on the main menu, and also on a whole bunch of reports, then this is very good method, since most companies don’t want a competitor name, or simply just a different name appearing on menus, and reports. The problem with the above method is that it really depends on the kind of software, and also how the software is to be sold. In other words, do you really want any labor content to be involved in the Licensing of each 'copy' your software? If your distribution is to be totally electronic, and no intervention required, then the above is a little more difficult to do. In other words, there are questions here of *how* the end product is going to be distributed. Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Fri 17 May | Boris Yankov | Since I am from a country where the wages are much lower than these in the USA or Western Europe I have experience with not licenced products :) Cracking the software protection is as easy as downloading the crack from a site. http://astalavista.box.sk for example Making the software uncrackable by a unual user is often easy, but the real problem is that 'if there is will there is a way' to crack it. In my case, no matter the protection, no one can make me pay $1500 for product which I will benefit much less in my country. This is the average year wage here (Bulgaria). But of course here we are talking about clients who can pay this but just do not have the 'stimulus' to do this. One of the good solutions is to not make your product popular and good selling. No one will care making cracks. Well the problem is that you do not benefit from that :) BTW I have seen all kind of software cracked. I have seen one using FlexLM too.
Fri 17 May | rrobin | Has anyone here seen the key that the 'CloneCD' program requires? If you chose keys to protect your software, then *please*, make it a short one! I don't want to enter an 68-digit prime number just to register! Dongles are no good for Shrinkwrap software. What would have happened if Windows 3.11 required a dongle? Dongles are, however, a good idea when developing internal software. If you talk dongles, then talk eAladdin: http://www.ealaddin.com/ I had great experiences with their dongles, and they can be used to protect your program, without any programming. Another way would be the [Name of very large company where Joel used to work] method: release buggy software, make patches that can only be installed from the web directly to the downloading PC, and log everyone downloading your patches ;)
Fri 17 May | Sergey | You can find good program with very simple software license management at www.aspack.com. It has very severy limitation (no floating license, so on), but it works good. It encrypt your program, so it's quite difficult to hack it. We've used it for our program for a year, no cracks yet. The name of a product is asProtect.
Fri 17 May | Anand H | We have made our own licensing scheme. Didn't use any third party software. Simple DES encryption should work for the kind of product we have. I agree with the notion that there's no '100%' security. Anything that can be built, can be broken.
Fri 17 May | Anand H | Oh btw, there's this cool freeware product from Psychoticsoftware, specially for Java based products. http://www.psychoticsoftware.com/products/guardian/index.html I had tried this out, and it works pretty well!
Fri 17 May | Serge Wautier | Whatever kind of security scheme you use (S/N, dongle,...), the first door visited for crackers is always the same : Where in you program do you call the license-check function. You can have 128 bits encryption, a 68 digits prime number or a Hasp (Aladdin) dongle. The situation is the same : At the beginning of your program, if you have a call such as if (LicenseFound()) GoFullFeaturedMode(); then the hacker will simply have to find and patch your 'if'. No matter what kind of protection is behind. So you have to be careful that this test is split out all over you code and threads. But here comes the bad news : Doing so forces you to go against all good programming practice (i.e. rules leading to maintainable code) :-( One option to slow down hackers regarding this 'unique call' problem is to encrypt/compress the code. That way, even if the guy founds the entry point in the decrypted/uncompressed code at run-time, he will have a harder time to patch the crypted/compressed exe file. But as mentioned in earlier posts, the matter is always about slowing down hackers, not stopping them.
Fri 17 May | TimG | Don't be so lazy! What I mean is: If your software is bespoke, your customer base is probably small. Visit the customers, and personally install and configure the software for them. I used to do this by installing a multi-user dongle with server based software. You got to meet the users and sysadmins face to face which was very valuable. If your software is more generic, the chances are there is plenty of competing software doing the same thing. You have to find the balance between reducing piracy, and making the software appealing by simplifying the install/use. License management software is often used as an alternative to dealing face to face with customers. Get out on their turf, they are likely to thank you for it by buying in to your product; hide behind a license agreement and they'll take advantage of your impersonal approach.
Fri 17 May | Bill Godfrey | So, FogCreek software uses Licence management? Thanks for the warning, I'll be going elsewhere. Bill, just don't need the hassle.
Fri 17 May | Alex Russell | Let's get one thing very clear: until you control the memory space, you WILL loose when it comes to obscuring or disabling something in software. In most comodity OSes, you DON'T control the memory space. As many other posters have rightly pointed out, the right answer here is the one that maximizes your profit, not the one that keeps people from copying your code. As with most security systems deployed in a large way to end-users, the less involve ment they have with the system the better. Additionally, you can easily make the system untennable very easily by worring about the 3% of attackers that pose a real threat when in fact you can deal with their brand of expensive-to-prevent attack better through administrative or social controlls. Worry about defending your castle from guys with trebuchets 'cause they're a heck of a lot more likely to attack you than the dragons you might be inclined to worry about.
Fri 17 May | pb | Low-tech almost always wins out over hi-tech.
Fri 17 May | Benji Smith | >> Low-tech almost always wins out over hi-tech. That's why my company does all of its license managment on a chalk board.
Sun 19 May | Andrew Cross | One of you mentioned that the crackers always go for the simplest way to crack a program, and so look for the i(!LicenseKey()) exit(); One good way around this that I have used effectively is to do something like this : #define malloc(a) malloc((a)-(Licensed()?SomeAmmount:0)) (this is actually simplistic, the best is to put a mathematical expression that compares the license ID to the registered ID into the malloc. The compare is obviously easy to find and remove, but its pretty hard to 'reverse engineer' a mathematical expression from the assembly !) Anyhow, what this will do is under-allocate memory when the application is not registered which will cause a crash at some later point in the application (which has no relationship to where the actual license check is made, making it even harder to crack. On a more philosophical note, you should ask yourself the question of why copy protection is important to you. It is often not a simple as reducing the number of 'illegal' licenses out there. People who are using an application on a non-professional basis are unlikely to pay for it since they are not deriving revenue from it. Their use of the application should be seen to you as 'free training' on it for a user. When that user then becomes employed and their employer recommends that they recommend an application to use for a particular task, if they know your application they will recommend it ... and their employer will purchase it. This is incidentally why software companies love giving truly amazing discounts to universities and schools; get people out there trained on your application and they are likely to buy it when they truly have a need for it. I often see this much like the music industry, we certainly don't think that listening to the radio is piracy, for thet matter recording music off the radio is not considered picracy and neither is video-taping MTV ... Clearly music companies see these forms of music distribution as marketting as opposed to piracy, and in some ways I think that the copy protection issue with software is similar. Inded, it's interesting that a number of companies in the market that I work in have started strongly pushing 'discovery' or 'learning eddition' versions of their applications for free or very minimal cost if they are not going to be used professionally. They know that the more users out there who know their applications, the more likely job adds are going to be asking for skills in those apps, the more likely managers are going to be choose those apps because its easy to get people who know them, etc... and the cycle goes on ... One other small note on this point is that in the US, software training is a multi-billion dollar industry (the average companyt spends more on training than software purchases !). When considering which application to move a busniess to, training and existing knowledge of employees is often considered more importantly than the cost of the package. For example: A fictional company called Calculators, inc. is using 'Super Cal 4D 1.0'. A year goes by and a new version of 'Super Cal 4D' is release, version 2.0. Unfortunately the upgrade price is $500 per seat. The IT manager looks around and finds that a competing package called 'ArithPro 2.3' retails for only $100. Problem is that to retrain all 300 users of 'Super Cal' is going to take 2 months and require a training company to come in. This training cost (and opportunity lost during training) alone would be probably cost more than 10x the $500 upgrade cost per user and so 'Calculators, inc' clearly sticks with SuperCal. The point I am making is that users knowing an application is often more important to a customer than the cost of the application. Allowing users to use the product without a license is one means to this goal. Now, don't think for a second that I am advocating piracy or the use of non-licensed applications; I am just stating the fact that there might be cases where the unauthorised use of your application might generate a revenue stream. As someone remarked above, very correctly, the goal of being in business is to maximize profits ... stopping any user from using an application without having paid for it first is not always going to acheive this goal (would you buy a car without a proper test-drive, money-back guarantee and warranty ?) On the flip-side, the purpose of piracy protection is to avoid a user failing to purchase an application when they where in a position to otherwise do so. In my mind, casual piracy is the greatest cause of this. I have seen time and time again the hiring of an employee where the 'need to purchase the software license before the employee arrived' was clearly overlooked, and the idea of leaving the new employee without the ability to start training on the systems in use at the company was clearly not a very good idea, so an unlicensed version of the software was used but with the clear intention of purchasing a license at a future date (which then never happened.) The best way to combat this form of piracy is : - Encourage users to use your application without thinking about licenses when they get started (this is to acheive 'lock in' as Joel calls it). After a period of time make sure that they - Be realistic about the true problem that you have with piracy. If 50% of users of your application are using a non-registered copy, would all 50% of those purchase it if you stop their ability to use it? How many of those 50% might go on to purchase a copy at a later date when they have the means to do so? - Price your application reasonably. If cutting the price by 40% causes 50% more users to purchase it (who might have been using it illegally) you are more profitable (assuming your raw costs are not a significant part of the sales price, which is rarely the case in software.) - (An approach that I like a lot) Consider allowing all users to use your application for free until they get to the point that you consider that they are using it professionally. For instance in a database, allow people to create databases under 1000 records and have no limitations at all. The second they hit 1000 records they get a warning once an hour that they need to purchase the application (don't stop them from increasing their lock-in by expanding the databvase) ... guess what, they certainly don't want to convert their entire database and way of working to another application ... so the chances are that they will purchase yours! - Give your customers a reason to purchase your application. Technical support, quick fixes to reported bugs, 'addon packs'. Sorry for the long post. Keep up the good work and interesting site Joel, its a benefit to the community ! Andrew ps. You have my vote for a spell-checker on this site !
Sun 19 May | Ayende Rahien | > #define malloc(a) malloc((a)-(Licensed()?SomeAmmount:0)) Well, first, it will slow down the application since you'll a license check every memory allocation, on many applications, that is *expensive* like hell. Second, having the program crash on un-registered users is pretty bad, don't you think so? What kind of reputation will it give you? No to mention the debugging problems that it may create.
Sun 19 May | Alyosha` | Furthermore, if Licensed() is a subroutine call, the easiest thing to do is patch Licensed() so it always returns true. I like the idea, though.
Sun 19 May | Hugh Wells | As far as I'm concerned, licencing ensures your product isn't sitting around in 100 warez sites available for the taking. This does rob you of serious revenue. Casual use isn't the problem. And as others have pointed, the licencing will not provide complete protection, but at least it provides some.
Sun 19 May | Jim Geisman | Very useful thread ... thanks to all who participated. This is an interesting discussion about the pros and cons of using some type of license management. Many of the replies have been from the developer side. Hope you won't mind a voice from the 'other side of the aisle'... I've been involved with floating licenses since 1987 and have watched FlexLM improve and a number of other vendors come and go. I've consulted with vendors on how to get paid for the value they create and think there are certain applications that are just not worth managing the licenses because a). You want them to spread like wildfire and are willing to accept a small percentage of piracy as a cost of doing business; b). The customer doesn't have the wherewithal to do the administration; c). The business concept of value-pricing is not a driving force. For companies that are serious about growth in revenues that serve companies that take their contractual responsibilities seriously, some type of license management is needed. First the customer view then the vendor view... Customers at the corporate level want to make good (in general) on the contracts they sign including purchases of software licenses. Unfortunately there is often a disconnect between the contract administration at the corporate level and application administration at the sysadmin level. There is sometimes a disconnect between the app admin and the use by end users. The problem is this... Company XYZ signs up for 1000 licenses spread amongst 5 groups. The groups operate independently. When the application comes into the company, the licenses are spread around within the bounds of the 1000 license limit. Everything is OK... Now the 5 sysadmins set everything up for their users. 'New app available. Log on. We have 200 copies' and the word goes out. When more than 200 users take down licenses what happens? Typically nothing. The sysadmin doesn't know they need more licenses. The end user isn't alerted. The company thinks everything is OK. If there is an audit by the software vendor, the company has a problem. When it is time to upgrade, all of the sysadmins and the company are in for a nasty surprise: The budget for upgrading the 1000 users needs to cover 1200 users instead. Either the company negotiates a better deal with the software vendor (pay for 1000 upgrade licenses and get 1200) or 200 users are out of luck. All of this could have been avoided if there was a simple alerting mechanism that either prevented or warned users and sysadmins that the number of authorized licenses were being exceeded. Now what happens from the vendors side?... The vendor got hammered to do the 1000 license deal. The vendor loses some part of the the revenue from the extra license use. The vendor gets hammered once again when it is time to do the upgrade deal. What is hidden here (from the vendor's perspective) is the ability to talk with the customer about the license distribution that meet the customer's need. When the license limits are exceeded, the vendor has a chance to remind the customer of the value they are getting with the use of the software. The vendor, by causing the customer to run out of licenses, has created an 'impending event' that allow both parties to re-evaluate their business relationship moving forward. Keep in mind a couple of things here: First, license management (the function -- not the product instance like FlexLM) is needed for a company to ensure they comply with a vendor's terms and conditions. This can be done with paper but electronically is probably better and easier. Second, license management can mean strict control (the n+1 user is locked out) or minimal control (the n+1 user is alerted and the log file goes records the 'violation'). Finally, what a vendor does with this knowledge is up to them. The vendor can get quarterly or annual reports and charge full price more licenses (the 'violations') or they can offer term licenses (30- 60- 90-day use licenses) or they can use the information during the next round of negotiations. What I am saying is license management is not a binary choice or a technical decision. It is an important business decision (at least) and typically an important strategic decision that is often made without the full participation of all the groups involved. You may want to check out the resources below. (Full disclosure: our firm developed the softwarepricing site.) Other resources: http://www.softwareCEO.com http://www.SoftwarePricing.com/Articles/seven-steps.htm
Sun 19 May | Amir Kolsky | << So you have to be careful that this test is split out all over you code and threads. But here comes the bad news : Doing so forces you to go against all good programming practice (i.e. rules leading to maintainable code) :-( >> Look at AOP (Aspect Oriented Programming, e.g., AspectJ) you can easily distribute you licensing through your code without breaking your OO-ness. The idea is to encapsulate the treatment of the 'Aspect', in this case -- license management, by keeping the aspect processing together and telling the system when to apply the aspcect code (e.g., on entry to every method call).
Sun 19 May | Ori Berger | <<< The idea is to encapsulate the treatment of the 'Aspect', in this case -- license management, by keeping the aspect processing together and telling the system when to apply the aspcect code (e.g., on entry to every method call). >>> Which helps not, because if done this way, patching it amounts to patching just one 'aspect' of the program. Make licensing friendly, e.g., only warn if up to 20% overuse, or start to annoy at that time, but don't kill functionality. Big bussinesses (where the big money is) will comply for a variety of reasons, very highly ranked among them is fear of retaliation from disgruntled employees. Licensing for the home market doesn't work at all - I've yet to see an example. It's profit that needs to be maximized, and profit comes from happy customers. (Or strongarmed ones, but that's luxury reserved for monopolies).
Sun 19 May | Christian Mogensen | We developed our own license system on a shrink-wrapped CRM system (over 100k seats sold). The old system got cracked (after five years faithful service), and we finally updated our algorithms. The old hand-crafted bit shifter/xor method wasn't that strong to begin with, so now we've started using proper crypto. (DES is not that strong, 3DES is better). We do multiple license checks inline in the code to prevent simple patching. We also like to think of C++ assembler output as pre-encrypted. :-) We also allow use for 30 days without a license. After 30 days the software goes into read-only mode. You can still use it, but you can't add any new info to the system. I feel this is a fair trade-off between try-before-buy and actually generating revenue. (Personally, I'd like to extend the 30 days to 90, in order to really hook the customer before taking away the supply.) Ideally you might want to consider using a public key system together with a web service. Each client has the web service public key, and before activation sends the license info to the web service. The response is encrypted with the private key, and can thus be verified with the public key. Note that you should only need to do this when you need to add licenses. The license count (encrypted of course) goes into the shared db, and your clients just check the db. That way you avoid requiring everyone be on-line.
Sun 19 May | Damien Katz | I'm an engineer on a product called Lotus Notes. With our product we've never used any copy protection scheme. We currently have over 90 million licenses sold. I believe a big part of our success stems from the ease at which the product can be deployed. Many of our larger customers started out using it in a single small division, and it spread from there. The hassles of copy-protection tend to inhibit this, both for legitimate and pirated use. Think of your user base as a big pie. The amount of money you get is related to both the size of your slice (percentage of users who pay) and the total size of the pie (all users). The mistake of many copy protection schemes is they try to increase your slice of the pie, but they neglect to keep the pie big. Obviously, the proper goal is to maximize the amount of pie you eat. If that means lots of people get away with piracy, then so be it. I personally don't think copy protection has a place in shrinkwrap business software, because generally businesses want to be legal (even though they often aren't). The more successful a business becomes, the more likely they are to pay you. Regardless if a business becomes successful or not, if they choose competitive software because yours puts up roadblocks you lose anyway. If yours is installed illegally then at least it has a chance of one day becoming legal, not to mention employees become famililiar with it and are more likely to recommend it if they change companies.
Another MS Office killer? | Mon 13 May | Jan Derk
I wonder what everyone else thinks about OpenOffice 1.0. Over the years there have been many announcements about competitors for MS Office and all failed for a variety of reasons. After playing with OpenOffice for a few weeks I never once needed to revert back to MS Office. Im no MS hater, but something tells me says that OpenOffice means trouble for Microsoft. While there still might be features lacking (I didnt notice any, but then again I am not a power user) on many accounts its as good or better than MS Office, plus its free. Simple logic says that, even for a giant like Microsoft, its hard to compete against a free competitor which is as good as your product. And Microsoft can never complain, because they used the same tactics to get rid of Netscape. Heres a rather positive review in the Washington Post about OpenOffice 1.0: http://www.washingtonpost.com/wp-dyn/articles/A4246-2002May11.html Joels gonna love this part: This programs one real failing as a writing tool is its word-count function, which is concealed inside the File menu and cant measure selected text, just the entire document.
Mon 13 May | Nat Ersoz | I use it and like it. While its a bit on the bloated side (takes a while to load - similar to word), it is very MS-Word compliant. I have several drafts of large specifications that are loaded with embedded graphics. OpenOffice (I'm using pre 1.0) opens them without any trouble. Other office products choke on the embedded stuff (notably abiword, which, BTW I also like).
Mon 13 May | Jack O. | The problem for MS is that the 'good enough' argument has been turned on its head. Before, it was gates that claimed windows & office was 'good enough' to destroy technically superior competition from Apple. Simply because the price was lower. Now, MS faces the grim spectre of linux distributions coming bundled with OpenOffice. The OS and Office will be installed all at once. The notion of having an automated linux installer put openoffice on the machine when linux is installed is huge; it means that building a 'productive' linux system just became that much easier. 1 install session & your ready to go. I don't know how much WinXP + OfficeXP go for these days, but I suspect it's higher than the $1.99 that a burned linux distro costs. (and for those who think that linux sucks, its too hard, etc... think about the progress linux has made over the past 3 years, and ask yourself where it will be in another 2. KDE is at the point where my mom is comfortable with it. ) Maybe this competitive threat will actually lead MS to innovate.
Mon 13 May | Jonathan Moore | I think i just realized the depths of microsoft's problems tonight. I was away from my trusty win2k machine, but needed to do some research, whip up a quick spreadsheet in excel format, and mail it out. The tool at my disposal was linux machine with KDE3, and openoffice. The only thing I can say about the experience of working on that machine was that it was unobtrusive. The tools felt very similar to what one would experience on windows. If you can use MS office, OO Calc works pretty much the same. KMail is kind of a stripped-down outlook. MS probably makes better, more polished tools. but $0.00 vs. $500...
Mon 13 May | pb | 'I think i just realized the depths of microsoft's problems tonight.' Hah! Hah! That's funny! Wish *I* had a fraction of Microsoft's 'problems'!
Tue 14 May | S.C. | I haven't tried OpenOffice yet. I tried StarOffice 5.2 before. It was okay except that the equation editor sucks. Basically it's not WYSIWYG. I guess MS can't do too much about these free competitors. MS will probabily add new features frequently so that the other office software cannot catch up fast enough. But the popularity of a software depends on factors like advertisement. Many average users just don't know there are other offfice software and even they do they are reluctant to install and try a new software they've never heard of.
Tue 14 May | pb | But on a different note, I do sense a bit of the boiling frog situation: stick a frog in boiling water and it jumps out, stick it in cold water and bring to a boil and it dies. My utilization of Microsoft software during the average day has gone from 95% to about 50% (depending on how you count the use of Windows) and I'm just your average knowledge worker, a normally typical user of MS Office and Outlook. So much 'work' seems to be taking place in browsers, email, IM, text editing, customer/sales automation tools, http/html, etc. No doubt, Microsoft does have considerable, if not dominant position, here, it's nowhere near what they have in office suites and there's not quite as much lock-in. I don't think cost is that big a factor, though, when you're paying upwards of $100k/year for an employee.
Tue 14 May | Jan Derk | Jack O. wrote: 'Now, MS faces the grim spectre of linux distributions coming bundled with OpenOffice.' In the short term Microsoft biggest threat is not Linux bundled with OpenOffice, but Dell and Compaq/HP bundling OpenOffice with new Windows PC's.
Tue 14 May | Ryan | Yeah. OpenOffice works great. But try to export anything fancy from Calc to Excel. Whoops! Or go from write->Word. Try it the other way around as well. There are lots of bugs with the translation and export/import functionality still - which make the software non-MS compatible.
Tue 14 May | Ged Byrne | The biggest threat to Offices Dominance is actually product activation. Office has become ubiquitous because so many people have 'borrowed' a disk from Work so they can install it at home. With product activation Microsoft are putting a stop to this activity - and shooting themselves in the foot. They are forcing home users and education establishments to check out the alternatives. I'm not advocating piracy, by the way. I avoid piracy, which is why I use office alternatives. However, it is thanks to Piracy that Microsoft became upiquitous and so very big. My stopping Piracy they are forcing users to check out the competition.
Tue 14 May | Ged Byrne | Joel's gonna love this part: 'This program's one real failing as a writing tool is its word-count function, which is concealed inside the File menu and can't measure selected text, just the entire document.' Yes, but check out this part: One example: I was annoyed enough by the limited, hidden word-count function to file a feature request at the OpenOffice.org Web site. Two days later, I saw that my report had been assigned a tracking number and a programmer, with his e-mail address listed. When's the last time Microsoft responded to its Office customers like that?
Tue 14 May | Tony | Just interested in how many people out there actually shelled out the hard earned for MS Office. I've been using it for about 10 years and never paid a cent for it, so its just as cheap as that other thing (Open Office) you're all talking about, and it does everything. Just curious - how many of you forked out for MS Office? I know its naughty of me, but it does happen you know.
Tue 14 May | andrew | Of course no one pays for Office. As far as I'm concerned it's free: as a student I used it in labs or the $5 copy I could get through my university's bookstore. My wife's still a student, so we can always get the new version for $5. Of course, every job I've ever had has given me a copy of Office as well. I've never been in a situation where I even need to find a cracked copy, and I _still_ get it for 'free'--of course at work my employer's paying. Don't forget that free open-source software still carries some stigma for most average users. If it's even on their radar, they probably think of it as somewhat risky, unsupported, and 'not serious.' When something carries a high price tag, it's frequently considered a superior product--it must be better if they're charging *that* much for it. And as much as MS's advertising turns us all off, there are millions of users whose impressions of the product are formed based on its public, advertised image. That's a powerful force for open-source projects to reckon with.
Tue 14 May | Troy King | Tony -- I paid for it, as well as NT4 and Win2K, and every other piece of software I use, including shareware. I figure if I expect people to pay for my software, I have to pay for software when I use it myself. I get value from the software I use, sometimes not equal to what I paid for it (Sonar XL, VS .NET), and sometimes infinitely more than I paid for it (Excel, PowerBasic, VS 6.0). It does get expensive buying software for 2 desktops and a laptop, but like I said, I get value from it. What pisses me off though is the refusal of several companies to grant free upgrades when they release a new version 2 months after I buy something from them, because I absolutely would have waited had I known there was a new one on the way. I guess that's a different subject though.
Tue 14 May | ScottB | Three comments here... The old MS Office licence allowed you to take a copy home and install it there, as long at the licence wasn't being used on >1 machine at once. Most people weren't/aren't being as bad as they think. I don't think the enterprise licence (or whatever its called) of Office or WinXP require activation. Not sure how this affects the the licence, but it would be nice to be allowed to install at home. (So start saving!) I tried the frog thing, and right enough it worked. Unfortunately, I've now got a dead pet frog. Does anyone have any recipies?
Tue 14 May | Ryan | 'As far as I'm concerned it's free:' And worth every penny, too.
Tue 14 May | Nat Ersoz | Well, if you wanna know the truth, you have to mix and match the open source world to get the results you probably want: My mixes and matches go like this: MS Thing OpenSource ---------- ------------- Word OpenOffice & AbiWord Excel gnumeric Outlook evolution w/ connector ($69) Visio dia IE mozilla (very nice) I don't do presentations, so I don't know what powerpoint type thing there is. I don't use much KOffice (if any), but I do like KDE as a workspace - especially 'konsole' - a multisession command line terminal. I have mozilla on the kids windows game computer at home, and it is lightning fast. The MSFT security updates broke IE (I kid you not) and I got frustrated trying to fix it. So I tried out mozilla on win32 - very nice. I don't like the bloat of OpenOffice, so I use AbiWord quite often. But OO is the most word compatible thing out there. Gnumeric seems to be completely Excel compatible. I've never hit a problem here - but then again, I do simple stuff. Dia is not Visio compatible at all, but very usable. Evolution with connector (you have to pay for connector, it makes Evolution nearly identical to Outlook) is very close to Outlook. The only thing it will not do is shedule meetings (the invitation part is not implemented) - but it will accept them. Everything else works - and sometimes better, like threading a conversation. Very nice.
Tue 14 May | Brad Clarke | 'I don't think the enterprise licence (or whatever its called) of Office or WinXP require activation. ' That's correct; They are called the Corporate editions of XP and Office XP. I have Windows XP Corporate installed at home...one of the perks of working for a large multinational IT firm :)
Tue 14 May | Ori Berger | None of the Excel alternatives provides Pivot Tables, which is a shame because this is an extemely useful feature. On the other hand, almost no one is aware of this feature so it probably doesn't matter .....
Tue 14 May | Ged Byrne | Aren't pivot tables great. Why doesn't anybody use them.
Tue 14 May | Joel Spolsky | To tell you the truth just about the ONLY thing I use Excel for these days is pivot tables! (Seriously. I couldn't run my business without them.) The trouble with the 80/20 rule is that everybody uses a different 20% of the features.
Tue 14 May | MarkTAW | Which is why MS Office is so popular, especially in corporate environments. It's almost gauranteed to have your 20% in there *somewhere*.
Tue 14 May | Frederik Slijkerman | In that case, if someone could tell me how I can either insert pages in my Word document that contain nothing but a few pictures, or skip pages in the automatic page numbering (so I can print pages with images separately), I would be deeply obliged. :-)
Tue 14 May | Martin L. Shoemaker | << In that case, if someone could tell me how I can either insert pages in my Word document that contain nothing but a few pictures, or skip pages in the automatic page numbering (so I can print pages with images separately), I would be deeply obliged. :-) >> Now we're getting off track. This isn't Office tech support, so I don't want to waste anyone's time with Office minutiae. But if you email me, I think I know what you need to do.
Tue 14 May | Jan Derk | Ori Berger wrote: 'None of the Excel alternatives provides Pivot Tables' I already said that I'm not a power user and I haven't used Excel Pivot tables in years (I'm a geek, so I created my database which I query with SQL). But I took a look around and is the Data Pilot in the OpenOffice Data menu not the same as a pivot table in Excel?
Tue 14 May | Tanya | I set up a linux machine and attempted to use connector, and I cannot use it to synchronize with my pda, unless I go and shell out for one of those sharp linux PDAs, which I dont want to do. Its this sort of integration that lifts microsoft stuff way up beyond new fledgling projects like linux. One day, maybe, but at the moment I don't think its even close.
Tue 14 May | Martin L. Shoemaker | << One day, maybe, but at the moment I don't think its even close. >> Tanya, I side with you on this one; but we all have to remember that quality is an n-dimensional space, where n is AT LEAST as large as the number of people measuring the quality. That's why these debates make me weary: unless we can all agree on what constitutes quality up front -- never gonna happen! -- arguing 'best' vs. 'worst' is a waste of time. You might more easily get Saturn and Audi drivers to agree on what's the best car.
Tue 14 May | Chris Dunford | Martin - you're absolutely right, but what I think drives many people up the wall on this particular discussion (open source) is that the open source propronents often seem to run out of ammo after (a) it's free, (b) it isn't Microsoft, and (c) maybe it'll hurt Microsoft. There's almost no discussion of the actual merits, which makes the discussions almost completely pointless.
Tue 14 May | Adam | OK, here is another merit: The Code is open. If you 'Really' want to figure out why something is going wrong. You Can. It involves: 1) Getting the source code 2) Building it yourself 3) Stepping through with a debugger This is not for the average user. This is for the programmer. However, if you look at a lot of the stuff done in Excel or Acess, It is Programming. My dad runs Multimillion construction projectson an Excel Spreadsheet system he developed.Could he debug some complex Macro using the above steps, probably not. But I could. If you really wanted to figure out why critical application X is crashing, you could go to the source. Yes, very few people want to do this with office software right now. But: Spread sheets integrate nicely with Databases. People tend to build on top of success Open source Projects are easy to build on top of. Thus a possible market is to make an after market service that ties in with An office application. Perhaps it allows you to design a Purchase order in your spread sheet and import it into your Accounting system (Sure, no-one has ever done that) Yes, I know you can do it with ActiveX and COM (I've done similar things) But what if something goes wrong? How do you Debug? The other thing that hapens with Good Open Source Projects is that they get refactored. Someone will realize that the PDF capabilities of the word processor can be applied else where, pull that code out into it's own libraries, and now you can dynamically create PDFs. (iText, it is what I am working with now) Does any of this contribute the death knell of MS Office? Only from a contributor standpoint... If MS office currently does eveything you need it to do, why bother moving? Cuz MS will make you move. If You want to create an add on for an office product, why not just extend it using COM? Because that may not be the itch you want to scratch. Perhaps you want it to be network aware. Oh, just do DCOM. But you don't want to buy developer studio. Too Bad. There are lots of arguments for open source products. The most compelling were listed by a member of the Peruvian Congress: http://www.theregister.co.uk/content/4/25157.html But I think the most compelling has to be that we need to get off the MS Office Document Format. Does anyone disagree with that?
Tue 14 May | Martin L. Shoemaker | Chris, << but what I think drives many people up the wall on this particular discussion (open source) is that the open source propronents often seem to run out of ammo after (a) it's free, (b) it isn't Microsoft, and (c) maybe it'll hurt Microsoft. >> Now, the last thing I am is an Open Source fanatic. I have used Open Source tools for exactly two days when auditing an Apache Tools class; and for a number of reasons, I wasn't impressed. I like MS tools, and I'll be glad to give them more money. But to be fair, the Open Source proponents have a few more arguments, and there's more depth to their arguments than a simple summary would show: (a) it's free: Well, this IS a valid argument for some people. Basic economics says that the value of a thing is that which a willing buyer chooses to pay. If Open Source users find Open Source solutions to be good enough at a price of free, then necessarily they see the MS offerings as seriously diminished in value. They therefore assume (rightly sometimes, wrongly others) that other people are arbitrarily equating price with value. That's certainly not ALWAYS true: some see a lot of additional value in the features MS offers and their constant R&D. But this is a comparative value judgment, which can never really be settled other than by the market making 200 million individual choices. (b) it isn't Microsoft: I did my investigation, and decided that most of the ethical qualms people have with MS are -- IN MY OPINION -- groundless. Others look at the same reports and decide -- IN THEIR OPINIONS -- that MS has acted unethically, and they choose not to support poor ethics with their dollars. So for SOME people, this is an ethical decision, and I respect that. For others, it's rampant jealousy, and I have no respect for them at all. (c) maybe it'll hurt Microsoft: OK, this is (b), stretched to a vindictive extreme. Here I pretty much lose all respect. But I also find it kind of funny, because these people WILL find something to complain about, no matter what. Put them with a bunch of Microsoft users, and they circle the wagons: 'IBM, HP, and SUN all back Open Source, along with a lot of others.' Then I attended an Apache Tools class where most people were predisposed to Open Source, and what was the main topic of conversation? How SUN was being evil in undercutting Open Source efforts. Funny how I never hear that when the Open-Source-vs.-MS debates are raging. (I could tell similar stories about spying on Mac users in their natural habitat...) But then there's: (d) a confirmed belief that software is knowledge, and knowledge should be free. I differentiate these folks from folks who just want free software, yet expect to get paid for THEIR work. These people have a philosophical/moral reason for supporting Open Source. Now I have read their arguments, and find that I disagree on many fronts; but that I can disagree and still respect them for being consistent with their principles. and (e) a confirmed belief that development in the open leads to better software. Again, I have read the arguments, and I don't find the conclusions persuasive (again, largely because I think they assume measures of quality that are different from mine); but again, if they believe that open is THE ONE TRUE PATH to better software, then I respect their consistency in supporting open development. Now, I just paid $2300 for an MSDN Universal Subscription. I'm committed to development on the .NET platform with MS tools. But I recognize that there is a wide range of Open Source proponents, and some of them have some pretty good arguments to make.
Tue 14 May | Martin L. Shoemaker | << OK, here is another merit: The Code is open. If you 'Really' want to figure out why something is going wrong. You Can. >> A good argument that I missed. But this is a positive factor for such a tiny portion of the market, I usually overlook it. Of the customers I have had (prior to my career training developers, since they're a specialty group), pretty close to zero would see any benefit from this. Most would see it as a serious negative, if the Open Source code was ONLY distributed as source. (Fortunately, the Open Source community has largely moved away from that model.) Now for you, personally, this is no doubt a great advantage. Again, there are many measures of quality. << If MS office currently does eveything you need it to do, why bother moving? Cuz MS will make you move. >> MS has never MADE anyone move. They don't have that power. I know people still getting by on 16-bit Windows and 16-bit MS-Office. All MS has done is to simply make it overwhelmingly attractive/useful to move. That's an economic judgment each user is free to make on his or her own. << If You want to create an add on for an office product, why not just extend it using COM? Because that may not be the itch you want to scratch. >> As a hobby developer, you may scratch any itch you like. As a commercial developer, you should scratch the itch that satisfies the most users for the least investment. In the case of extending Office, that means either macros or COM (or a combination of the two). It's the cost effective way, even if you have to buy a brand new copy of Visual Studio (which costs, typically, the equivalent of five to ten developer hours, and saves you much more than that if you know how to use it). << But I think the most compelling has to be that we need to get off the MS Office Document Format. Does anyone disagree with that? >> Yes. It meets my needs, and is portable within my customer base and within the developers with whom I work. If someone CAN'T read it, I can print to PDF, or export to HTML, or just copy and paste. You may have gripes with it, but I just take it for granted. Again, everyone has different measures of quality.
Wed 15 May | Sam Longos | Martin -- your posts were very thoughtful. (a far cry from most of what you read on the net.) However, I take issue with a comment that you made, that 'MS never forced anyone to move to new versions'. That is untrue. If I'm running a business, and, hypothetically, my old machine finally gives up the ghost, I cannot call dell and buy a new machine with an old OS. And because MS set up impossibly restrictive contracts with all major OEMs, this effectively means that it is impossible for me, as a consumer, to buy a PC clone without microsoft's latest and greatest product. (Don't believe me? try buying a machine with Win3.1. You can't. If you tried to buy one with no OS, you'd _still_ get charged for MS' latest product. This was an issue in that little legal matter that MS just lost.) Even worse, MS is now stipulating that the OS that comes with a machine is only good on that _particular_ machine. So, if 'm happy with windows XP, and in 2007 this machine craps out, and I still want to use XP on a new machine that I buy, I cannot. If that's not 'forced', i'm not sure what is.
Wed 15 May | Martin L. Shoemaker | Sam, << Martin -- your posts were very thoughtful. (a far cry from most of what you read on the net.) >> Thank you. I try to see all sides when I can. << However, I take issue with a comment that you made, that 'MS never forced anyone to move to new versions'. That is untrue. If I'm running a business, and, hypothetically, my old machine finally gives up the ghost, I cannot call dell and buy a new machine with an old OS. >> I understand the idea, but I don't see it the same way. In a similar situation, I cannot go down to the local Ford dealer and buy a new Ford with a carburetor or with 1960's vintage emission control systems. If I want the vintage equipment, it's up to me to go hunt it down and figure out how to either fit it to a new automobile or else reconstruct a vintage auto to go with the vintage equipment. I see nothing wrong with MS phasing out old product lines. It's still ultimately your choice whether it's easier to upgrade to the new software or keep the old hardware on life support. That's why I called it a comparative value decision: you're not forced to upgrade, but you very well might be smart to do so. And in this particular case, I usually find it much easier to upgrade all at once: new hardware AND new software at the same time. It concentrates all the pain into one big lump, and then it's over. << And because MS set up impossibly restrictive contracts with all major OEMs, this effectively means that it is impossible for me, as a consumer, to buy a PC clone without microsoft's latest and greatest product. (Don't believe me? try buying a machine with Win3.1. You can't. If you tried to buy one with no OS, you'd _still_ get charged for MS' latest product. This was an issue in that little legal matter that MS just lost.) >> Yep. It's also a place where I think the court got it very wrong (with a lot of help from MS's INCOMPETENT legal counsel -- _I_ could have tried that case better, and I'm not a lawyer). Jerry Pournelle explains my disagreement here much better than I can, but the gist of his argument runs like this (with another auto analogy). Volume price deals are structured on a certain volume. If you went out and bought all the parts for a new Ford F150 Pickup and assembled them manually, the cost would be many times the cost of the assembled vehicle, NOT counting your time or what you would have to spend on special tools. Now in theory, Ford could offer all sorts of removable options on that truck; but past a certain point, it becomes more expensive than just giving you the 'expensive' options. I know this one from personal experience: air conditioning costs $500 and gives my wife a serious sinus headache. (What a bargain, eh?) So I specifically ordered her a truck without A/C. You wouldn't believe the run-around! They have all these option packages, simple combinations that can easily be installed or not as a group. No truck they could find lacked A/C; and they seriously contemplated giving me the A/C for free, just to close the deal. Only when I explained that it wasn't the money but the sinus headache did they go the extra mile to find the truck without A/C. So MS and the OEMs agreed to a contract which guaranteed MS installation on a certain number of machines, and which guaranteed the OEMs a certain price point AND a certain level of support. That's up to them. Pournelle makes a fairly strong case that Windows would cost more to EVERYBODY if they allowed the tiny minority to not have it. Now there are two ways to look at that: the minority can scream, 'Why should I pay more so everyone else can pay less?'; or you might check the numbers and find (as Pournelle did) that everyone INCLUDING the minority would pay more if the OS were optional. Are his numbers right? I don't know, but his analogy is enlightening. Again, try to buy that Ford truck WITHOUT a windshield. You MIGHT get the dealer to pull the windshield for you, but you'll pay for it anyway. You'll probably pay MORE for the labor spent removing it. << Even worse, MS is now stipulating that the OS that comes with a machine is only good on that _particular_ machine. So, if 'm happy with windows XP, and in 2007 this machine craps out, and I still want to use XP on a new machine that I buy, I cannot. >> Now this one is a pain, but I haven't studied it yet. I'm still on OEM Win2000 until my MSDN arrives. I hear people say what you say, and I hear others say it's not accurate. But I guarantee, either way, they'll have to back down from anything like this. << If that's not 'forced', i'm not sure what is. >> I have to stick with a literal definition: no threats of physical violence or other forms of coercion are involved, so it's not forced. It's your choice. You may not like the choices you face, but life is like that sometimes.
Wed 15 May | Ged Byrne | ---------------------------------------------------------------------- You may not like the choices you face, but life is like that sometimes. ---------------------------------------- Martin L Shoemaker. And here is the crux of the matter. The true benefit of open source is that it provides additional choices - not just the ones available from Microsoft. Open Source is the product of a lot of people who didn't like the choices, and did something about it. They also worked to help other people do something about it. People are like that, sometimes.
Wed 15 May | Martin L. Shoemaker | << And here is the crux of the matter. The true benefit of open source is that it provides additional choices - not just the ones available from Microsoft. Open Source is the product of a lot of people who didn't like the choices, and did something about it. They also worked to help other people do something about it. >> And THAT reason, I applaud. I don't want those choices myself, but I'm glad you have them.
Wed 15 May | Chris Dunford | Martin, Ged, Sam, Adam, Nicely argued. What a pleasure to read a thoughtful and flame-free discussion. Most of what I would say has been said. I have only a couple of comments. 1. An additional merit of open source is that it's open: that's true, of course. But the context of this discussion is 'can OpenOffice kill MS Office?' In my view, anyone who thinks that the actual openness of an open source app is a factor in dethroning MS Office is living in some alternate universe. I have no stats, but I certainly imagine that the vast bulk of MS Office revenues come from corporate purchases and OEM purchases for home users. Hackers, not so much. What percentage of Aunt Susies are going to be cranking up their VS.Net compilers to fix OpenOffice bugs? And how many corporate managers are going to tell their expensive programmers, 'Say, Bob, this table isn't displaying right in OpenOffice. I want you to take a couple days off, dig through reams of poorly commented source that you didn't write, and fix this for me. What's that you say? Our own release schedule? Oh, don't worry about that.' I really like the concept of source being available for software that I use (and I certainly might enjoy messing with it myself), but it's -very- difficult to see that being a factor insofar as killing MS apps is concerned. 2) We need to get off MS Office document format: that sure would be nice. But has anyone noticed that Excel 2002 can read and write its documents using XML, and that MS has documented the XML? Can the other Office apps be far behind? I don't want to give the impression that I'm anti-open source. I'm not. What I'm saying is that most open source discussions I see don't concentrate on the actual merits of the apps but on what they can do to MS. Scroll up and note carefully the title of this thread.
Wed 15 May | Ged Byrne | It is nice to get into an intelligent discussion, especially with such an emotive issue. Getting back on topic, I think the fact that an XML dialect is used for saving documents is a real benefit, although I can see it making the loading of large documents a bit slow. The potential for automatically generating documents, images and spreadsheets without having to mess about with the api appeals to me. I look forward to playing with it.
Wed 15 May | Martin L. Shoemaker | << Getting back on topic, I think the fact that an XML dialect is used for saving documents is a real benefit, although I can see it making the loading of large documents a bit slow. >> Hehehe... I can't speak for Excel, but have you ever opened a Word doc in a hex editor? I can't imagine an XML version could be any worse when it comes to size/speed; but it WOULD be more human-readable.
Wed 15 May | Justin Johnson | Isn't the bigger threat to MS Office from OpenOffice that someone like Dell (more likely Gateway or HPaq) will bundle it with OEM computers? I'm very happy with OpenOffice on Windows; in fact, I think it works better there than on Linux. If OEMs bundled it, a lot of small and mid-level businesses that supply themselves with Dells and MS Office licences would reconsider. That would be cutting the heart out of MS Office's main market.
Wed 15 May | Andres | >>If OEMs bundled it, They would get to know the lack of coercion by Microsoft that Martin was talking about.
Wed 15 May | Ricardo Antunes da Costa | >>If OEMs bundled it, I think it´ll never happen. If you bundle a Microsoft, or any other company´s product, the company that made the product is responsable for it. But if you bundle an open source product, your costumers will complain to you about the product´s bugs. That´s a headache I think no one is willing to have.
Wed 15 May | Nat Ersoz | >> That´s a headache I think no one is willing to have. That's why there is Redhat, and I suppose that's why there is Sun (OpenOffice). Dell offers Redhat preinstalled on their servers. For a short time you could get Redhat installed on a workstation, but not now. Where there is demand and a reaon, someone will do it... Dell just needs a reason - one that's big enough to overcome inertia of a proven business model. Obviously, there was enough reason to offer Linux on servers (plenty of reasons, 2/3 of web servers out there are Unix based).
Wed 15 May | Justin Johnson | >> They would get to know the lack of coercion by Microsoft that Martin was talking about. << I think that Martin's analogy is flawed--comparing Dell or Gateway computers to cars doesn't fit because cars aren't made to order; more specifically, Dell and Gateway don't have a bunch of pre-configured computers sitting around in anticipation of sales for those units with those options. My own story: my employer is a Dell shop. The Japanese president wanted a new laptop. I called Dell and asked if we could get Japanese Windows on it; no, of course not, so we'd have to purchase Japanese Windows separately; can I have it without Windows, since we have to purchase Windows anyway? No, of course not. End result: two copies of Windows purchased for one computer (the hypothetical alternative being purchasing the laptop from Sharp in Japan, and paying shipping and duty that outweighed the cost of Windows). Remind me again how MS' restrictive licencing terms with OEMs costs me less. >> I think it´ll never happen. If you bundle a Microsoft, or any other company´s product, the company that made the product is responsable for it. But if you bundle an open source product, your costumers will complain to you about the product´s bugs. << I'm not sure what you mean by this. Dell already offers MS Office or Works with their computers (I'm not sure whether or not they support it). Switch to OpenOffice, even on commodity home machines, and you've got approximately the same value-added component, with zero cost. Make it a standard component, and you're ahead of your competitors who sell boxes through Best Buy and Circuit City.
Wed 15 May | Ged Byrne | >>If OEMs bundled it, Lotus managed to get their Smartsuite product onto a lot of machines - and personally I consider Smartsuite to be the best of the lot, though IBM are sadly giving it little development now - but it made little difference. People would just install a copy of Office. Of course, if Microsoft managed to stop people from copying Office, things might be different.
Wed 15 May | Jon | S.C. wrote: 'I tried StarOffice 5.2 before. It was okay except that the equation editor sucks. Basically it's not WYSIWYG. I guess MS can't do too much about these free competitors. MS will probabily add new features frequently so that the other office software cannot catch up fast enough.' Kformula, a KDE/Koffice app, is a WYSIWYG equation editor. It is under development but works rather well. Kformula can accept and convert C function statements such as pow(x,3) + 5*x - 1/(1+x) and render the mathematics in 'pretty print', to use Maples terminology. With a little bit of editing, it will also accept the function statements from Scilab or Octave and convert them also. Kformula will interpret pow(x,2), x^2, and x**2 as x with the exponent 2. Also bear in mind that people participate in open source projects because they are fun and you learn a lot. Open source is not a commercial venture that it has to 'beat' Microsoft or any other proprietary software vendor.
Wed 15 May | Sam Longos | >>If OEMs bundled it, I foresee in the not too distant future OEMs bundling Open Office. It's nearly a foregone conclusion, on the low-end, that it will happen. Why? Simple economics. MS Office (what, like $400?) Can almost _double_ the cost of a low-end eMachine-style system. The for these OEMs that cater to skinflints, bundling an office suite that is as good, or better, than MS Office for $0.00 will be too good to pass up. The alternative, I suppose, would be bundling MS Works. Which, BTW, i've found to be _less_ interoperable with MS office than Open Office. Go figure!
Wed 15 May | Sam Longos | just some hard numbers, using the new king of the sloppy clone, Microtel. These should put some boundries around the conversation. (from http://www.walmart.com) MicroTel celeron without windows: $398 Microtel celeron with winXP home: $498 (so, XP adds about $100. no surprise.) Now, in addition to the OS cost, if you add in the cost of OfficeXP (going from the numbers generated at dells site when you configure a PC. my best guess at what a bundle would cost.) Office 'Small Business': $200 (They actually give you back $150 if you choose Works!, thus the markup for Office XP Is $150, over and above works, which is probably $50.) Office 'Pro' $399 (it's another $199 on top of office small business.) Thus, a microtel base PC with WinXP + Office XP would come out to about $700 for Office 'home', $899 for Office Pro. IF microtel decided to get bold, and offer a base PC with linux + open office, it could go for around $400 (give or take the mark-up that microtel would charge to put mandrake + open office on the machine.) Thus, price of the machine effectively doubles if the consumer wants to use MS products. You can see that Microsoft has a problem here. As the price of the software has become a greater % of overall machine cost, consumers have begun to push-back. (Of course, because they have a monopoly, the only viable alternatives to MS office that have arisen are free. And people are even questioning whether or not the free stuff will succeed!) Linux and Open Office have made rapid strides in usability over the past 2-3 years, and that - combined with the pricing problems that MS faces - is why I believe that it is inevitable that a 'low end' OEM will soon cross the line, and offer an MS free solution. Flame away :-)
Wed 15 May | MarkTAW | Yeah, I can see it now. For sale: Intel Pentium XXMVM computer, 8,000 megabytes of ram, 60,000 gigabyte hard drive, $0 in software...
Wed 15 May | Sam Longos | >>Yeah, I can see it now. >> >>For sale: Intel Pentium XXMVM computer, 8,000 megabytes of ram, 60,000 gigabyte hard drive, $0 in software... Sarcasm aside, before microsoft, there was really no thing as the 'packaged software industry'; software came with the machine that it was written for. It was all one big bundle. Or men in short-sleeve dress shirts & ties would write custom code for the machines, and get paid for their labor, not for a license. Perhaps we're coming full-circle?
Thu 16 May | Ged Byrne | The shrink wrapped market was around while Microsoft just did DOS and Basic - take Lotus 123 and Wordperfect, for example.
Fri 17 May | Bob Crosley | 2 points: 'If you bundle a Microsoft, or any other company´s product, the company that made the product is responsable for it.' This is flat wrong. The OEM license says that when you buy a product bundled with the machine, the machine vendor is responsible for support. If you call MS with a problem you're having with Windows on your Dell, they'll tell you to call Dell for support. It's how MS keeps their support costs down. On a side note, did you know that your copy of Office you bought bundled on a machine is licensed only to that machine? Any upgrade you buy based on owning that bundled copy can only be installed on the machine the bundle was originally on? The second point I wanted to make was to respond to this: 'You can see that Microsoft has a problem here. As the price of the software has become a greater % of overall machine cost, consumers have begun to push-back. ' For us geeks, the hardware is important. To most consumers and office users, the hardware is simply a means to run the MS software that they are really seeking. People buy machines to do things, not to own the machines. For most people, the headaches of going with 'non-standard' software outweigh the benefits of a lower price. That's why I don't think MS will ever really open the Office document format.
Fri 17 May | Bella | > That's why I don't think MS will ever really open the Office document format. It already has been open for a few years now. Excel 2000 files are native XML files. And it goes beyond data in cells, even macros can be represented in the XML. As far as this Office debate, I haven't read it....Sorry if the folowing is redundant. What is the theorem that says a technology can only replace another one if it LEAPFROGS it? I believe Gates has said that himself. Providing something that is 'close enough' simply doesn't cut it. There is LITTLE IMPETUS to bother switching. When the functionality of MS Office is LEAPFROGGED, THEN there there MAY be a threat. Until then, get ready for the worldwide domination that Microsoft has spend the last decade preparing for. Their subscription model will bring the world to its knees. Only a few annoying tekkies will be spared. While on the MS topic, the last time I coded with Microsoft tools was 1996 (since then it's been Perl, Sybase, Oracle, UNIX, Java, etc). Despite that, long live Microsoft and Gates, b/c I owe my entire career and livelihood to them. The insame amount of money we made in the last 5 years are all directly or indirectly due to the worldwide adoption of PC's (and the internet). You all would be programming mainframes without $atan himself, not to mention there would be 5% of the number of current programming jobs without MS's existance. Think of the programming you've done in the past 5 years. Think of the users your code served. Then, decide if your code would have been needed if there was no such thing as windows or microsoft or ms-office. Very little of the work most of us have done in the past 5 years have not touched MS/Windows/Office.
Fri 17 May | Jan Derk | Bella wrote: 'What is the theorem that says a technology can only replace another one if it LEAPFROGS it?' In the real world the Option A: $400 Option B: $0 and being as good and competible with option A argument is pretty convincing. Some won't care about the money, but many others will. I would not be happy seeing OpenOffice around if I was MS.
Fri 17 May | Jeff MacDonald | Would anybody out there buy a car with a different pedal alignment if it would knock $500 off the price of the car? Let's say the brake pedal is on the left, the accellerator is in the middle and the clutch is on the right...It's the same car (every part is identical), but the primary UI is different. So different, in fact, that you might have to change your driving style just to get used to it...you'd have to change your PATTERNS that are a part of your life. Now, I'm sure anyone reading this could adopt to the new arrangement (some of us might enjoy it more than the current arrangement), and it might even be a 'better' way to drive a car. However, the average driver would spend the extra $500 IMO just so they could operate a piece of machinery with the confidence and familiarity they've always known. Basically, in their minds, there is no REASON to change (keep in mind, we're talking about guys like your dad - the 'average end user', and quite possibly, the executive (still your dad) who make enterprise-wide policy on software purchases). Price doesn't really matter, neither does quality (in the short term). If something makes people happy, makes them feel like they're comfortable, and/or makes them feel like they're in control of their environment, people will stick with it, even if it means spending $800 for comfort vs. $600 for the 'unknown'.
Sat 18 May | Nat Ersoz | Actually, price does matter. I once worked for a large multinational (revenue = $6+B/yr). Price mattered. They quit upgrading office and declared that MS Word 7 was the starndard. They would hold off upgrading until absolutley necessary. With 30K employees, upgrading was as significant bite out of the profit line. This is not an isolated incident, and is occuring more often, especially today: http://biz.yahoo.com/smart/020502/20020425tech.html Well, sorry for turning Joel board into the MS commentl line...
Sat 18 May | Jan Derk | Jeff MacDonald wrote: 'Would anybody out there buy a car with a different pedal alignment if it would knock $500 off the price of the car?' You are right, very few people would. However the current situation seems more like: Would anybody buy a car from another manufacturer if the seat covers were green instead of blue and the car was free? While StarOffice 5.2 could well be compared with a car with different pedal alignments, OpenOffice/StarOffice6 got them just right. I do think that in the short term most people will still opt for the old manufacturer, because it bought all the advertisement blocks on the television and got dealerships in fancy mirror-glassed buildings in every city. But in the long term they are in trouble.
Sat 18 May | Sam Longos | >>'Would anybody out there buy a car with a different pedal >>alignment if it would knock $500 off the price of the car?' >>You are right, very few people would. Not necessarily so. The proof? Take a look at the radical, new BMW 7-series. The pedals are in the same place, but that's about it. The rest of the user interface is entirely different. Even the method used to start the car isn't obvious (it doesn't have a traditional 'key'.) Anyone who wishes to drive this car will need to endure at least 1/2 hour of retraining, and actually probably more time to really understand all of the cars new 'features'. Why are people willing to put up with it? Two reasons. One, because BMW is promoting these new features as being more logical, and easier to understand (once you're trained), and two, because the new UI aside, the car has other compelling benefits that people want (it is fast, it is quiet, it makes you look like a hotshot at the golf club, etc..) The point is, don't reject a change in the way people work out of hand, just because of inertia. People moved from DOS-> Win31 -> Win 95 -> Win98 -> win2k, and the economy didn't collapse under the expense of 'retraining'. Humans are adaptable. Many of these fears are overblown.
Sat 18 May | Bella | Sam, Your example is moronic. The BMW does not need to be COMPATIBLE with other cars. So slight adjustments are fine. However,, if it didn't fit in the roadways we have, that would be a serious issue. Also, people upgraded all those Windows cycles b/c they were BACKWARDS compatible. Yet another idiotic example. Get real, biased tekkie. Today, (and in the near future), there is almost ZERO reason to replace MS-Office. I have 2 phrases for you: LEAPFROG......... 100% COMPATABILITY Only handful of ranting tekkies, who probably still use ShitScape/Mozilla to browse the web, may bother. Most overbiased, purist, zero business sense tekkies I know are unemployed, so they don't share documents with anyone else anyways.
Sat 18 May | Sam Longos | >Only handful of ranting tekkies, who probably still use >ShitScape/Mozilla to browse the web, may bother. Most >overbiased, purist, zero business sense tekkies I know are >unemployed, so they don't share documents with anyone else anyways. This is the funniest post i've seen this weekend. Thank you.
Sun 19 May | pb | 'They quit upgrading office and declared that MS Word 7 was the starndard.' Considering that exchanging documents with external parties is one of the primary reasons to use MS Office, this seems rather silly.
Eckel is thinking in C# now .. | Sun 12 May | Evgeny Goldin
Honestly, I didnt read Eckels Thinking in Java by now (fortunately, hes not the only Java author so far). But I heard that both of his T in C++ and T in Java were good. May be.But now I see this guy already ported himslef to Python and C#: http://www.mindview.net/Books! That just seems plain wrong to me - how can one manage 4 languages in the expert level ? I mean, hes probably smart and experienced and can use 4 different languages at his work (most if us do it, not a big problem), but hey .. Youre *teaching* those languages, so you consider yourself to be an *expert*. I dont know how is it about him, but I think I should work at least 5 years with one language before I can think of myself as a real expert (and not so-called one). So, my point is - hes is bluffing. He isnt expert, hes a books writer .. Right, I didnt see his books but its hard to believe otherwise.
Mon 13 May | Tony E | I met a couple of authors who write for Wrox last year and it struck me that they had no real world development experience. Their activity was basically rewriting MSDN content in a more digestable form. It seems to me that the majority of the IT books are very poor with too much focus on delivery dates rather than real quality material. You have to be very discerning about what you buy, I always read at least a quarter of the book in the bookshop before I decide it is good value and never buy any books with a product name in the title anymore. I am currently studying a Maths course with the Open University and have been amazed by how good the matrial is compared with what we get in IT, it could be a lot better.
Mon 13 May | Ged Byrne | ------------------------------------------------------------- Basically, Larry decided he would like to translate 'Thinking in Java' into C# ------------------------------------------------------ Eckel Since Java and C# are so similar a direct translation of Thinking in Java seems straight forware. Convert the Java listings to C#, and update the surrounding text accordingly.
Mon 13 May | Dan Sickles | From this interview with Bruce: http://www.mindview.net/Etc/About/InformITRaw_html 'But then I moved to Python, and began to realize that both C++ and Java, being languages with strong static type checking, had again constrained my worldview so that my thinking was limited. For example, I would occasionally get questions from people, usually former Smalltalk programmers, who asked why I put so much emphasis on the concept of upcasting. To me, you couldn't really think about inheritance and polymorphism without understanding upcasting, so I patiently explained it to them. But then I started working with Python and being about 10 times more productive than I've been with C++ and Java. Python challenged many of my 'known facts' about object-oriented programming, and even programming in general. A big one is that strong static type checking is necessary for robust code.'
Mon 13 May | Dan Sickles | And one more from Bruce: Question: How would you compare Java and C++? Would you recommend a beginning programmer to start with one or the other? Answer: Perhaps I'm going to end up belaboring Python here, but my direction lately has been to direct people towards Python, which I think is a superior first language – it doesn't have all the weird nonsensical baggage that C++ and even Java have accumulated. And I'll bet that for most people Python will probably satisfy their needs and they may not need to learn Java or C++. But if they do, they'll be well-prepared because it has a much stronger object-oriented model, without arbitrarily restricting you to the limited concept of 'object' that both C++ and Java have.
Mon 13 May | Evgeny Goldin | Does static typing bother him ? I can't imagine building any serious system with dynamic one (Perl, for example, where you can switch {} to [] and the only thing that'll happen is a run-time crash .. someday). I agree that it's really attractive to program without static typing but than a maintenance is a nightmare.
Mon 13 May | Adam Spitz | > Perl, for example, where you can switch {} to [] and the > only thing that'll happen is a run-time crash .. someday Well, maybe. What happens to smart programmers is that their unit tests catch the error a few seconds or minutes later. Anybody interested in starting a thread about this, or has it been hashed out enough times elsewhere? :) I think it's an interesting topic.
Mon 13 May | Chris Tavares | The basic argument against static typing is this: 1) Statically typed languages use static typing to catch errors. 2) In order to work with these type systems, you need to spend a good deal of time up front during development writing your code so the compiler understands the right types of everything. 3) You also need to warp your design so that it fits within the limitations imposed by the static type system. The whole point of going through the pain of 2) and 3) is to catch errors. But in practice, you still have to test anyway, and test a lot, to get all the errors that static typing doesn't help with. So, if you still have to do testing anyway, why not use a dynamically typed language where development is faster, and just put type testing in where you really need it, in the test harness? The time lost dealing with type errors (which is often not much in my experience) is more than offset by the increased development speed that results.
Mon 13 May | Evgeny Goldin | I think static typing vs dynamic typing is a good topic to discuss about. Let somebody start a new thread - I'm too sleepy to copy/paste previous posts to it .. << What happens to smart programmers is that their unit tests catch the error a few seconds or minutes later >> Like everebody has a unit test ! No, no and no and we no (oh, 'know') it. Why would I hope that some unit test will *probably* catch a programming error ? If we'll trust unit test - what for do we need compilation checks then ? Let unit test crash the executable. << The whole point of going through the pain of 2) and 3) is to catch errors >> For me there were never points 2) and 3). IMHO, dynamic typing has it's advantages but I never saw any disdvantages in the static one. << But in practice, you still have to test anyway, and test a lot, to get all the errors that static typing doesn't help with >> Compilation can't catch all errors, what it does is catching the most obvious and most frequent ones (typos and the like) - that's the point ! Tests should catch more obscure logic errors where compiler can't help. But where it does help - there's no reason to ignore it just because it's still not 100%. Let it be X% - I feel great already. Besides, as I said, I see no disadvantages in static typing (I *worked* with Perl and I know how flexible it is to have a scalar which may be anything you'd like) and I felt never urge to wrap my design to fit into the typing system of some language Y. Those regular types we have from C are flexible enough to not become a barrier.
Mon 13 May | Chris Tavares | As an example of warping a design: I'm looking at code for a C/C++ language parser right now. The fundamental data structure is a symbol table. The problem is that the entry in the symbol table is radically different for a class method and an enum constant. However, due to the static typing, everything has to be stuffed in a 'Symbol *' pointer, and then when you actually use it, you need to typecast back to the 'real' type. Since you need to do runtime type testing ANYWAY, what's the point of having the static type system at all? All it did was cost you more work in order to get around it.
Tue 14 May | Adam Spitz | 'Compilation can't catch all errors, what it does is catching the most obvious and most frequent ones (typos and the like) - that's the point !' If you don't write tests, and you don't have bugs, keep doing what you're doing. If you don't write tests, and you find that some bugs still slip through the static type checker, try writing tests. And when you're good enough at testing to be confident that very few bugs are slipping through, try out a language without a static type checker. When I performed this experiment several years ago, it was humbling. And it was fun to try. :) I heartily recommend it.
Tue 14 May | Adam | <> As an example of warping a design: I'm looking at code for a C/C++ language parser right now. The fundamental data structure is a symbol table. The problem is that the entry in the symbol table is radically different for a class method and an enum constant. However, due to the static typing, everything has to be stuffed in a 'Symbol *' pointer, and then when you actually use it, you need to typecast back to the 'real' type. Since you need to do runtime type testing ANYWAY, what's the point of having the static type system at all? All it did was cost you more work in order to get around it. Hmm. Not knowing the setup of your code: 1. Make an interface Called symbol. Both Enum and Class entries implement symbol . (Pure Virtual class) 2. As many of the methods as you can, move to symbol. I'd be interested in seeing your current object model. In general I do not like dynamic type checking. Aside from the inherant latency, I just am too poor a typist to correctly get variable names consitantly correct. I like it when the compiler checks things for me. It especially helps refactoring: I use it as my first test (*Well at least it compiles!)
Wed 15 May | Peter Marklund | Joel, you are probably right that Bruce Eckel is not a guru with five years experience in all these languages. IMHO that doesn't mean that he is bluffing. I think that Bruce's strong general ability to teach (plus his books being a fun read, maybe not as funny as yours but still...) more than offsets this disadvantage. It is my experience, not least from University, that guruhood is less important than ability to teach. By ability to teach I mean for example ability to make the material comprehensible, accessible, concrete and attractive to beginners.
Sun 19 May | Hugh Wells | My impression of Eckel's books has always been that they are grounding books for introducing the language; not books about software development or engineering as such. In fact, I think they make that point. In that role, Eckel's books seem to me to be among the clearest and best around. I would recommend his books to anyone picking up a new language. To explain the language, Eckel doesn't really need years of experience in that particular language, as long as he has years of development experience, which I think he does. His teaching ability is the important thing, and it's excellent.
Sun 19 May | Evgeny Goldin | Peter Marklund, it was my post, not Joel's ;) I tend to agree with your opinion though ..
Sun 19 May | Evgeny Goldin | Ok, ok, I'm convinced now. Thank you, guys !
PHP + MySql | Fri 10 May | pb
It looks to me like PHP + MySql is the best way currently to develop moderately robust web apps on a budget. Low cost, good documentation, widely supported by hosting providers, widely used relational database, decent tools, etc. thots?
Mon 13 May | Adam | PostgreSQL Goo. We use it here and have really come to depend on it. It is a full scale database. Yes, it has it's problems, like eveything else. If you are going 3 tier, go with J2EE. Tomcat + JBoss is a powerful combination. I can't stand HTML: scripting languges. But thne I hate UI design in general.
Mon 13 May | Vincent Marquez | I'm suprised so many people are recommending Java for a 'cheap' solution. I myself have never coded a web application in java, but I've done b2b transactions with sites that were using java, and it is PAINFULLY slow. From what I've heard, java is only a viable solution if a company has plenty of cash to spend on hardware. Language of choice for me? definatly mod Perl. Fast, easy to code small stuff, powerful enough to do big stuff. MySql is a pretty decent DB, but it really doesn't even compare to the big commercial guys (DB2, MS SQL, Oracle). It IS fast with simple selects, but once you get going with lots of grouping and joins and whatnot, it can definatly become a headache.
Tue 14 May | Matt Christensen | Just because you've used slow java sites, doesn't mean Java is 'slow.' At my last job I wrote a web application in mod_perl. Worked great. But we started having performance problems. Migrated it to java, and it ran faster on the same hardware. Java and the servlet framework allowed us to do a bunch of sophisticated caching that was hard to do in mod_perl. The biggest problem with java is that it can be a memory hog. Mod_perl was a memory hog too; anyway, memory's not that expensive these days. But YMMV.
Sat 18 May | JD | I have used both PHP and Perl for developing web-apps. Over the time I realised that PHP code is more readable then Perl one. I love PHP for its readability of code. Its similarity with C. It's support for various platforms + web servers. Good support for various DBs and other tools like image manipulation/ PDF file creation. But there are some areas where you simply can't beat Perl. Just recently I had to make inteface to cable modem/cnr/cmts which is accessible through Web. You have no option other than to use Perl. Huge amount of reusable code for Perl. Really superb !! Conclusion : Pick up the right tool for your problem. JD
Sun 19 May | BH | Just to echo previous posts - although MySQL is getting better, PostgreSQL is supposed to be more ACID-compliant and has more features. There's no real downside to using Postgres as far as I know. MySQL seems to be vastly more popular for some reason, I'm not sure why. I guess that's 'mindshare' for ya.
Sun 19 May | pb | Postgresql is going to be a non-starter for most people beacuse virtually no hosting providers offer it.
Decepion by Joel | Tue 07 May | detective
Joel is using different nicks on this board. No wonder there are so many people that like him, or is it, no wonder, he likes himself so much. Thats why I dont like this type of forums where no identity is required. Anonymous posts are better than deceptive ones.
Sun 19 May | Hugh Wells | Detective, Hugh Wells is not Joel.
Tracking use of options to improve software | Fri 17 May | Albert D. Kallal
Does anyone build any type of logging options into their software to track usage of options? I am actually of the belief that I “know” what options are being used the most. However, that is not always the case. Here is a copy a log file from my tour software. The only real large surprise is the first option. I had no idea that this option was used that much (this is why I write logging software in my applications that keep track of options used). I will now endeavor to make sure that the users use the features in the software to *reduce* the number of steps to accomplish this most common task. Option Count ------- ------ Print Invoice (Single) 508 Print Invoice (all) 176 Create Booking 139 Change Bus 119 Name Removed - payments kept 73 Swap room names 66 Remove Single 53 Add Single 53 Change room 37 Pull Name from existing invoice 14 Book To tour 11 Un Book From tour 10 Remove from Bus 5 Any other good ideas for using the software to actually tell me what options are being used? (in place of actually asking the users?). Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Fri 17 May | Martin L. Shoemaker | Asking users: bad. Their memories will be faulty; and asking them to keep a log is a pain. Automated logging like you did: brilliant! Thanks for the great example!
Fri 17 May | IanRae | This is one of the benefits of on-line software. Every mouse click and keypress is seen by the server which can then track it and produce reports on most used features, most retries, etc. Of course for any softare, desktop or on-line, there are huge privacy concerns here. I wouldn't want my spreadsheet logging and e-mailing all my activity to some company...
Fri 17 May | Greg | Hmm, but this could be done for trusted users who beta-test. It could even pretty-format the information sent to the mothership, so once a week the app could ask the user if she wants to send it out.
Fri 17 May | Nick Hebb | I like the idea, and I think it would be much easier to pull off for in-house developers. Really cunning in-house developers would also capture the user ID, and analyze the logs to find out which features your boss, company executives, etc. used the most. The revised, management-friendly version would then be released, say, a month before review time. ;-)
Fri 17 May | Ron Zeno | Yes it is done, though it's not common. (I wrote about some results from such tracking in the 'enough already Joel' discussion.) Software that already includes code for scripting purposes or for profiling QA testing coverage is usually fairly easy to modify. For the tooled wordprocessor I mentioned, we tracked every menu item and dialog box plus meta-information on data entry. I don't recall the level of detail on the meta-information - it was along the lines of the number of charaters type in, any time the cusor was repositioned by the mouse, etc. Basically, information on how they created and modified documents that wouldn't be captured by other means. Of course, we were careful to keep the overhead down so that the performance hit was not noticeable and we did not collect any personal information. In addition to the log, we also collected the file containing the customizeable options for the software to compare against the defaults.
Fri 17 May | Zwarm Monkey | I heard the Microsoft did this with an Excel beta many years ago.
Fri 17 May | Alex Russell | I've gotta agree with whoever recommended that it be a beta-tester thing only. The possible privacy concerns of compiling this kind of thing into a release version are just a bit much for me to stomach. From a business standpoint, I wouldn't want to be on the wrong end of the lawsuit from cautious/paranoid users that feel their privacy is/could be violated.
Sat 18 May | Albert D. Kallal | A few notes should be made here. One thing that was suggested that this log idea should be only for beta. Actually, not at all! In fact, what I do is expose the log system to the users. This makes for a great built in audit system. I find that my users love this feature. Thus, if a user creates a hotel booking, but some other staff in the office changes that booking to a different room.....then who did it? The users can now easily check who did what. In other words, if Susan down the hall changed the room type, then most likely she knows what is going on here. My users love this, since if there is some type of screw up, then the correct person can be contacted. (wrong person cannot get blamed!). It is not viewed by my users as a tracking system, but in fact just helps the person on the phone, since they all know who last dealt with the customer. Hence, I get double use out of this log system. Hence, I don’t just “print out a log”, but I have a menu option called “booking History”, and this option simply is one of the menu options in the menu bar. It of course only displays the current information for the current booking (in a grid). This idea can be used for just about any type of applications. For me, I have some queries that “summarize the data”. Here is a example of what the log looks like (I doubt this will be readable -- can we imbedded HTML in this discussion group?) Time And Date Initials network Work Action Logon station 3/19/02 10:08:50 TD reception RECEPTION Change Bus 3/21/02 16:39:49 TD groups GROUPS Print Invoice (all) 3/21/02 16:41:39 TD groups GROUPS Print Invoice (all) 3/27/02 15:20:26 TD tammy TAMMYBOOK Change room 3/27/02 15:20:28 TD tammy TAMMYBOOK Add Single 3/27/02 15:20:29 TD tammy TAMMYBOOK Add Single 3/27/02 15:20:48 TD tammy TAMMYBOOK Pull Name from exisitng invoice 4/02/02 16:44:36 SS reception RECEPTION Print Invoice (all) A few more notes: The “Action” text is actually another table, and thus the size of the log is not that large (in other words, I don’t store the action text for each booking, but only a id number). Same thing with the time, and date field...it is simply a date field (which allows for both date and time). Hence, the actual size of a log entry is quite small, only about 30 bytes. So, don't just view a log as a big brother thing. Expose it to your users...and they in general will love it, and not view it as a evil. Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
consulting company (body-shop) rant | Mon 13 May | anon
How do companies (employers) benefit from dealing with consulting companies that are essentially match-makers? Note that in this case, Im only discussing the companies that unite employer and employee and then proceed to take their fair share of the hourly rate. My POV, is that these companies have a list of customers (employers) that they get help wanted lists from. The post the jobs on Monster, HotJobs, etc and then wait for their Inbox to fill up. Granted some companies serve as filters so the employer doesnt have to sift through hundreds or thousands of resumes. However, most Ive found only look for candidates that would not embarass them terribly by submitting their resume. This is what a headhunter asked me once... HH: I see youve been working with MTS. Have you ever done anything with COM? Me : ... My biggest gripe is that once Im in the door, why should these companies have a right to the money Im making for them. Ive been with a company for the last year and a half at the same client. They pay half my health-care, take care of my social security and take care of my taxes. (Which they get right approximately 60% of the time, I might add.) And they gladly take $20 out of each hour I work. I understand how developers benefit (with respect to GETTING the job), but I dont understand how companies (employers) benefit. Any ideas?
Mon 13 May | Bella | I think you answered it. Companies benefit by not having to search for people. No placing ads, no sifting thru resumes, no fielding calls. also, agencies may also do the initial screening, as you said. It's no cost to the firm, *you're* paying the agency.
Mon 13 May | anon | Their paying an inflated rate though. If I make $20/hr they're paying $40. They're paying a premium for the length of the engagement for the luxury of not having to sift through some resumes.
Mon 13 May | anon | >> Their paying an inflated rate though. Back to grammer school, should I go... They're paying an inflated rate though
Mon 13 May | pb | Get over it! Recruiting firms take 1/3 of an annual salary for doing far less. I'm so sick of people complaining about business practices that aren't that bad.
Mon 13 May | anon | pb, I realize that's how the game is played. Also, if you noticed my first post, I'm only talking about companies that continue to take their cut through the life of the engagement. Doing some rough math, I can say the consulting company I'm working for has pulled in roughly 91% of my yearly salary in the 18 months I've been here. Given, they pay some of my health care, so you could knock that down to 75%. I can understand I 'finder's fee' type setup. But these companies aren't DOING anything 18 months after the fact. Except screwing up my local tax deductions, but that's another story. ;-)
Mon 13 May | Matt Heusser | It depends. Does the company provide a paid vacation? How about paying you while you are 'on the bench'? If the answer to both of these is 'yes', then you have your answer: The consulting company is providing a service in that they remove the uncertainty ('fear') from the consultant by absorbing it themselves. In other words, they are taking a risk - granted, a relatively minor one, because if business _really_ goes down, they will do layoffs, but they are assuming some risks. Plus, they are doing all of the 'selling side' of consulting: Networking, Gathering contacts, selling services, etc. In conclusion: Don't compare consulting companies to regular employment, compare it to consulting on your own. By absorbing some of the risks (and providing you with multiple _different_ assignments, guarenteeing you'll get a variety of skills without making you look like a job-hopper) these companies are entitled to some compensation. How much of that comensation is equitable is up to you. If you think it isn't worth it, don't do business with them. just my $0.02,
Mon 13 May | pb | I forgot to mention that this arrangement also avoids any 'headcount' issues for the company. Not only are hiring costs avoided but so are firing costs.
Mon 13 May | Bella | > Their paying an inflated rate though. If I make $20/hr they're paying $40. I disagree. They set the rate. Then, the body shop finds the person who will work for the lowest amount, and pockets the difference. It's more like, they pay $40, but you can either make $20 or $40 (direct). Doesn't matter to them.
Mon 13 May | James Montebello | If the deal was so bad, the employers wouldn't take it. It's obviously worth it to them. Hell, paying someone 2x what they might take otherwise is only part of the deal. I've signed contracts where the client was on the hook for a lump sump payment of a FULL YEAR of salary if they took me on full time. I've seen clients pay that fee (not for me). Some companies will outsource all kinds of tasks at what appear to be hugely inflated rates over what it would cost them in house. Body shops can also worthwhile to the contractor, who doesn't have to do all of the bush-beating and relationship managment. Certainly, the individual who has their own client list will make more cash, and the smart people use recruiters to build their client list. Work for a place you got through a job shop once, then later they may hire you again directly. The recruiters know this, so they get as much money out of you on your first job as possible, figuring they're only going to be able to place you at a given job once, unless you're such a yutz that you don't maintain a direct relationship with the client after the first job is over.
Tue 14 May | John McQuilling | Some other benefits to the company are tax and insurance related. The headhunter is often the 'employee of record' which protects the company from IRS issues. The head hunter may also pay workers comp and other insurance. It is just a way to handle potential legal problems. Look at the problems Microsoft had with their temps.
Wed 15 May | Bella | The question asked why firms prefer using a body shop instead of going direct. (not the pros/cons of contractors vs. FT emps.) Either way, they are dealing with another corporation.. I suppose the whole Microsoft contractor bullshit lawsuit could be one reason, to avoid reclassification of long time contractors. Can't happen if they're officially W2's of another firm (the body shop)
Wed 15 May | anon | Thanks Bella, glad somebody was paying attention...
Wed 15 May | Bella | I'm only talking about companies that continue to take their cut through the life of the engagement. I can understand I 'finder's fee' type setup. But these companies aren't DOING anything 18 months after the fact. For your sanity, think of it like this....If it wasn't for them, you'd never be working there in the first place, even 5 years down the line. So they take their cut every hour, every day. However, I have turned down higher paying agency contracts (ie: I'd have netted more even with an agency cut) in favor of direct contracts just to spite the middlemen (and the give the client a much better deal on my services)
Thu 16 May | ian owen | Stop complaining about body shops! Experienced guys with a good reputation get jobs without 'body shops', it just takes time. The other issue is the body shop guarantees you get paid on time even if the client takes longer (your risk is minimum). If you are only an average guy thén you will always need the body shop to get you an above average salary. You win either way!
Thu 16 May | F.J. Weiland | I didn't see this listed previously in the thread - sorry if I just missed it and am being redundant here: One reason employers may want to deal with a body-shop instead of directly with an individual is E&O (errors and omissions) insurance. Many individuals who contract directly do not buy any insurance. I've worked on gigs where the client required that anyone they contracted with had a minimum of $1 million in errors and omissions insurance. Certainly not all clients require this, but it's not uncommon, either. Typically, the body-shop firm carries the E&O insurance and they are the ones in court if there's a problem later with the client. In looking into it for myself and my own S-corp, I was getting ball-park quotes a couple of years ago of around $3500 / year for an insurance package that included $1 million in E&O, workman's comp and some other things in the mix. That was just for me, also, not for a staff of contractors -- I suppose the premiums go up if there were more people being insured, but insurance isn't my bag.
Thu 16 May | Bella | > Many individuals who contract directly do not buy any insurance All of my direct contracts stipulated that I had a certain amount of general liability insurance
Sat 18 May | Hugh Wells | Anon, employers don't necessarily benefit from working through recruiting firms, but the system continues because recruiting firms do extensive marketing to employers. This is neither good not bad: it's just another business. This is a business in which you are the product being sold, wrapped up and marketed, and the recruiter's profit is the difference between what you ask for and what the employer will pay. If you're starting to think you're exploited, the answer is that, yes, you are. The profit recruiters make on each placement is generally higher than the person concerned would agree to in open negotiation, and sometimes is exorbitant. For example, recruiters might place you for $150 per hour and then pay you $50 per hour, which happens. Recruiting, as a business, works because programmers reply to job ads and employers respond to marketing. Recruiters sometimes are good at assessing candidates and advising them, and sometimes very bad. The industry is like advertising, where it's said that half the money is wasted, but no-one knows which half.
should I quit? | Fri 10 May | quitter
Hi, Im trying to think of a reason to stay in software besides the money. I got into the field I found it very easy to do, not because I have any particular love for sitting in front of a computer all day. I thought a good litmus test would be to think up some application I really wanted to have, and code it for myself. However, I cant think of anything I really would want to have, so Im thinking perhaps I dont have software in the blood. Has anyone else been in this position?
Mon 13 May | Jon | I'm in a similar position, though having been out of work for over a year, the market is giving me serious signals as to which way I should go. Software just isn't interesting to me anymore. Unlike when I started (for real) in the early 90's, it seems like there's ten zillion programmers out there. Everything's been done. If you write something new and good and ask money for it, someone will write an opensource knockoff. If not, there's always a risk of a patent lawsuit. So many business software projects are so ephemeral, likely to get tossed when the management decides to pursue another silver bullet platform. Many other software projects seem so inconsequential; ooh boy, another skinned MP3 player. Who cares? Plus, it's a bit of a technological hamster wheel. What you know already is likely to become unmarketable, because recruiters want buzzwords, not generally applicable skills. So you've got to learn the new buzzwords, but which ones? The technologies I know best are not marketable now, but I've little interest in shackling myself to a PC and a stack of O'Reilly books to learn other technologies - especially since that won't help me get a job since I won't have 3 years of experience with those new technologies. I know I'm not an uber-programmer, and as I lose interest, I sure ain't getting any better. And I'm definitely not happy working on software. I think I'd be much happier getting an MA in History or something. A low-wage job in a bookstore is strangely attractive, if not as a long-term proposition. On the other hand, I have those hefty college loans on my back. (I'm 30 and single, fwiw)
Mon 13 May | Jon | Regarding career changes out of software development, I'm also somewhat perplexed about that. I'd love to know if anyone has some good resources. I keep hearing about a lot of programmers burning out, or that lots of them leave around 30. But the only stories I ever read in detail are stories about stock option millionaires or Microsofties who retire young and buy a bowling league. I never see actual stories of people who have left the industry while still needing to make a living.
Mon 13 May | Johnny Simmson | Jon, why don't you try teaching history? http://www.jobhuntersbible.com/
Mon 13 May | Martin L. Shoemaker | << Jon, why don't you try teaching history? >> Depends: what sport does he coach? Sorry, that's an old, bitter joke a history major once told me. When he went into interviews, that was usually the first question he heard. At a lot of schools, 'history' is the department to hold coaches so you can have them on staff to coach. He had an uphill battle finding a job, because he actually LIKED history teaching and didn't coach anything.
Mon 13 May | xn | take 2 or 3 months off and travel. it feels great not to have to do anything for a while, but eventually you'll be ready to start using your brain again. go back to work for 6-9 months. lather, rinse, repeat..
Tue 14 May | Tony | I still recomend working less hours, you said that you have two contracts, let one go and stick with the other. It can be done.
Tue 14 May | Tony | Oh and another thing, I have felt the way you have and basically I dicovered that my job was'nt hard enough, once the challenge ramped up so did my enjoyment. Sometimes a break can be the opposite of what you really need, more pressure can also be the answer. Its a difficult thing to help sombody with, if you're going to jump of a bridge or something, quit. Otherwise, work the angles.
Wed 15 May | quitter | I think tony hit the right chord for me. I'm not an english major cum perl programmer for a dot com. (although I did work for a few dot coms) I've got a physics degree and got into programming as an undergrad because my advisor needed some help parsing some atmospheric data he had collected in antarctica. I do like technical challenges and think a lot of my ennui is due to just plain old boredom. I think I'll take a bit of time off, and maybe I can come back and try to start anew at something more science or engineering related. Bella is right, my career in 'IT' is peaking, and hopefully I can exit it soon. I'd much rather be solving problems for a research lab, than solving them for a bank...
Fri 17 May | robert k. | **this is Loooooong. read only if you got time ** Dear Quitter, I am in your shoes and I am 20 years-old and still in college. Half way into a college education that will nearly drain my parents of their resources, I find that I am eternally unhappy and wanting of something that really makes me want to live. On one hand, I feel that if my future computer science degree can earn me decent money, there is no reason to back out of it at this early of a stage. What if later on I encounter something that I just happen to enjoy? However, the counter argument is that if one is pursuing what one loves, one will continually strive to be the best possible at that activity. For example, that's why you see the best sports stars seem to always get better year after year while their body allows it. They always want to be better at what they do. Essentially, that is what we all strive to want, that is what we all would be doing if we lived in brick houses with white pickets fences, a porch, and Lassie running around with the kiddies. A few years ago when I was depressed, I thought to myself, 'Can the world really be this small?' You know, life does not have to be confined to the mold that you've become accustomed to day after day. Everyday that you wake up, you have the choice to go out and change something about your life. Whether you have financial or family or social obligations that hold you back, it still does not change the fact that you can, at any time, change your status. You live in a world that is vast and rich and full of opportunities. This is what you have to decide on. Truth of it all is that perhaps there are corners unturned in regards to the software business. Is it really possible that at the age of 27, you know EVERYTHING you like and dislike about the software industry? Could it just be possible that there could be something out there about software that you can enjoy doing? Of course, the other way to look at it is that the tiny microcosm that you live in perhaps doesn't plainly reveal all the possibilities that the world has to offer. Maybe if you go out and look around, you will find something else that you enjoy MORE than programming - something that you will love so much that you will never-endingly try to become the best you can be at it. Maybe that activity/job is snowboard instructor, I don't know. The final decision is whether you feel that your time is best spent to try and discover your true niche in programming or your true passion in life. Ultimately, you have to decide that for yourself. As for my personal decision, I think I will try and go as far with computer science as possible, and when it really seems like I cannot go any further, I will give one more push. And if after that one last push I get no where? Then I will definitely look for something else.
Fri 17 May | Martin L. Shoemaker | Peace! Well, Peace Corps, actuallly... I knew a developer once -- call him Jim. Jim was a really bright UNIX guy (didn't know a lick of Windows, but we got along anyway). A few years before I met him, at the ripe old age of 30-something, he was an extremely highly paid consultant managing and working a number of successful projects. He strived on the tension and the constant challenge and activity. Jim also had ulcers, high blood pressure, and (his doctor predicted) a heart attack in the relatively near future. The doctor gave him a choice: find a new life and a new attitude, or get his affairs in order for his next of kin. So Jim joined the Peace Corps for a couple of years. You know the drill: they sent him overseas to help grow some developing country, yada, yada, yada... Well, the Peace Corps is more than the stereotype, I learned from him. See, the particular developing country they sent him to (Fiji, I think -- somewhere tropical) was trying to modernize their information infrastructure; and Jim was quite a catch. So he did a lot of what he did in the USA, but in a different, more relaxed culture. And he got to see the world. And he got to get his hands dirty, because they needed MORE help than just with information systems. And he got to work closely with people who directly benefitted from his work. And he also got some lessons in limitations: he could try to help, but there were problems where he couldn't, AND there were 'problems' that were really cultural differences, and his way wasn't necessarily the right way. I never met Jim-the-incipient-heart-attack. Thanks to the Peace Corps, I met Jim with the relaxed attitude, Jim with the great sense of humor, Jim who could walk away from a problem because he was NOT his work, and Jim who enjoyed his life. Jim's solution is not for me. I love programming, and consulting, and training, and learning new technologies, and solving problems. I love my wife and our dogs and our horses and our home in the country. I ain't goin' nowhere. But if you're young and looking for a change, consider the Peace Corps. Like the military, they won't promise you a particular assignment; but there's some evidence they value information skills. And it might really help to meet the people who benefit from your work.
Fri 17 May | quitter | actually after my first dot-com flamed out, i went to east africa for 6 weeks and volunteered in a medical facility. it was good in the sense that it made me appreciate having a job, running water, not having malaria, or my jaw bit off by a hyena, etc. I came back refreshed and was good to go for about 18 more months, then realized i was bored and frustrated again. to robert k, if you are only 20 and already don't enjoy computer science, i would see what else you can get into, i don't believe it is really going to get better as you go on. the best paying software/IT jobs require the least amount of computer science knowledge. if you want to stick with computer science-y type stuff, start looking into genome/bioinformatics stuff. you will actually use more real computer science, as well as learn about actual 'real' sciences, like biology and chemistry. and it will pay better. beware, though, i think a lot of bioinformatics jobs are going to be the same old shit , but with different data in the database... FWIW: one idea I had been toying with is becoming a trader for a stock brokerage. i figure, if i am mainly working for money, why don't I just get a job where all I do is deal with money all day. So, i've read a bunch of trading books, and i'm not sure that profession is really for me, although it sounds like a lot of fun. one thing that I got out of the books though, is the better ones have a lot of discussion about the psychology of success, which I am finding very useful in changing my perspective on my career. So, if anyone out there is frazzled and frustrated, i'd check out the following books: New Market Wizards, Market Wizards, Trading for a Living, and anything mentioned in those books. i think really what it boils down to, is that i just dont really care about the problems I'm working on, because they are boring to me. certainly i can do the work, but i just no longer find it interesting. i'm going to try to get into a totally different area of programming (more 'engineering' vs. 'IT') and see if i find it more fun, if not...i'll probably flame out of the industry altogether. thanks for all the comments.
Sat 18 May | Bella | Robert K, You college kids crack me up. You have TO MUCH time on your hand to overanalyze things. Go do a few bongloads and try to get laid. That is your ONLY responsilbity to yourself and your parents, while in college. The rest is all hype. That should cure your depression at the same time, I reiterate my kids theory to you also: Once you have kids, these thoughts of 'satisfaction' will be moot. You'll be glad to have a paycheck. I suggest you go get married, get a mortgage, and have 2.1 kids ASAP. All your 'fulfillment' problems will vanish overnight! ;-)
Reinventing a Mainframe Programmer | Thu 09 May | JAS
Okay, you mostly seem to be more-or-less active participants in the great PC development revolution. Here is a serious question which is understandably much on my mind these days. How does a mid-life mainframe COBOL programmer/analyst make the transition to some of the newer technologies? No company, it seems, will hire and train anymore. (My current company made promise after promise for a chance to develop something in Java, but reneged time and time again. Now, wholesale layoffs are looming.) The few companies hiring all seem to expect applicants to come pre-packaged, off-the-shelf, with whatever combination of things they have in mind. Informal or self-training seems not to count (and I will not lie or fabricate just for the sake of landing an interview). Is back to school the only route? Is there any reasonable way to accomplish this transition, or should I just start practicing the phrase would you like fries with that?
Tue 14 May | Jack lives over there --> | Learn a simple starters language like VB. With your dev background and a few months learning while dev'ing personal projects, you should be able to get a career starting job. A year later move on to C/C++/Java/SmallTalk/Needle work/Nursing... I learnt COBOL, C, C++, and Natural programming at a tech collage, didn't work in programming 2 years, got a low level job writing Crystal Reports with a bit of side sys admin. 2 years later I'm an Analyst Programmer writing n-tier apps using VB... forget cert, forget school, personal commitment and a little patience (and possible luck) rules the world.
Sat 18 May | Hugh Wells | JAS, learn .NET. There will be a lucrative niche porting COBOL to .Net. The best way to learn would be to get it and use it, get one or two good books and actually read them and maybe then consider some sort of short course. I wouldn't normally recommend a course, but if you've been doing Cobol for years, you might need external prompts. Additional useful topics, as others have suggested, are DBA type things. You should learn SQL. With that combination, your existing background would be a solid foundation rather than being irrelevant, and you could capitalise on it in your job move. You should not set out to learn C++ or Java first off. There's substantial expertise needed for the types of jobs that need C++ or Java, and you probably would not be useful for a year. With .NET, you could be useful in four weeks.
The advantages of Methodology | Wed 08 May | Ged Byrne
In several XP orientated threads it seems that there are a lot of people who agree with most of the ideas in XP, but dislike its packaging as a methodology. Some interesting quotes are: ------------------------------------------------------------------------- the last person that made us wear uniforms was Hitler This engineer has never submitted to dictatorial nonsense of any sort, no matter how sweet the stock options... ------------------------------------------------------------- Nat Ersoz ------------------------------------------------------------------------- This REALLY IS an interesting socio-cultural phenomenon. Many of the quotes from XP proponents above are verbatim quotes from apologists for Communism and various cults. Probably fascism too. ------------------------------------------------------------ Hugh Wells ------------------------------------------------------------------------- I think most people are missing the point, that XP is mostly a way to sell books, consulting, and conference appearances. There are some interesting ideas in the books. Not sure what the big deal is. ------------------------------------------------------------------- anon It seems to me that they are argueing against the idea of having a methodology, rather than XP itself. So, is there any advantage to having a Methodology? I see the following advantages: 1) Team members can work together by establishing a common working practice and vocabulary. 2) It is easier for corporatations to adopt, because the structure of the team is already set out for them. 3) It is easier to initiate new members to the team. Ideally each member of the team to have a broad knowledge of best practice, but it can be hard work getting your average graduate to work his way through code complete. Some people prefer to just be told what to do. 4) It provides a standard for supporters to back, enabling them to raise the profile. 5) It makes it easir for mass market tools to be produced for supporting the methods. For example, we are starting to see the emergence of Refactoring tools. Sure, people have been refactoring for decades, but it is only since Refactoring as a named phenomenum appeared that companies are starting to market tools.
Wed 15 May | Ged Byrne | ------------------------------------------------------------------------ Hire good people and use it as a checklist. ------------------------------------------------------------Mark Taw I think a lot of companies think they can hire average people (cheaper) and use a methodology. As far as I can see they just waste money.
Fri 17 May | Andreas | Statistics dictate that the average company can only hire average people. They have no other choice. So perhaps they need the methodology: to run a profitable company with average people.
Sat 18 May | Hugh Wells | Ged, no, my querying of XP has nothing to do with an aversion to methodology. I'm a methodology guy. I might reply in more depth later.
How to spot a bad company ... | Thu 02 May | Hugh Wells
In another thread, I posted a link to the Programmers Guild, which has this article on how to spot a bad company: http://www.programmersguild.org/Guild/howto.htm It includes things like: the programmers work in open plan while the managers shun the communication benefits of open plan and have offices. Also, interesting quote on Tom De Marcos site (referenced from Joels front page): http://www.cutter.com/consortium/consultants/tdbio.html ...Companies that are stuck on the idea that, Well, a software person really shouldnt cost as much as a young lawyer for the corporate councils office, are simply not getting the people they need and ... theyre just not able to hire.
Sat 18 May | Hugh Wells | H1-B, or whatever - it's not programmers who've gone running to government for help; it's large employers who can't work within the existing economy. 'We can't find programmers who'll work for the wages we thing they should. Help, please. Let us bring in lots from overseas.'
Sat 18 May | Hugh Wells | Also, H1-B or whatever - your argument about talentless software engineers is specious. Neither the job market nor the programming labour pool are binary sets; they are continiuums. By bringing in a large pool of pliant workers, you anchor the bottom end of the market and thus the rest of it too. The engineers who might have taken the so-called low end jobs then have to compete against the mid-level engineers, lowering the salaries for those, and so on. The effect would peter out at the top end. However I happen to beleive in justice for all, and fair rewards for all. These imports are not being done to save lives or improve the well-being of third world children; they're being done to bolster corporate profits and end-of-year figures for little financial executives.
Books | Wed 14 Nov | Joel Spolsky
Its about time that I updated my crufty old list of recommended books at http://www.joelonsoftware.com/navLinks/fog0000000262.html . What books should I have up there? Ground rules: to keep this conversation on track, everybody gets to vote for ONE book, and one book only. I really want to hear what people think is the SINGLE best book on painless software management.
Mon 13 May | Joel Hernandez | These are (mostly) wonderful books - but recommended to death. A book that practically no one recommends, but that is the best 'how to think' book ever written for software developers is Michael Jackson's 'Software Requirements and Specifications.' If you find that you have a hard time marshalling your thoughts between their expression in code and design and architecture, or between implementations in algorithms and business rules, then this book is for you (or that very special team member who shares your confusions). At just over 200 pages, it's a little gem that belongs on every developer, designer, architect, and managers' desk.
Sat 18 May | Malcolm Smith | Book Reviews: I have given loads of VB/VBA courses and time after time I tell people to get hold of a C compiler and K&R. I don't do it for the same reason as you but to get the user used to the concept of pointers from the start. VB is full of pointers and most people don't know what the Set statement does. I strongly believe that once the concept of the pointer is grasped then one is well on the way to being in the top 5% of VB coders in a short time. As an exercise I find it fun to work through a linked list example with the students. It gets their heads working and if they can handle that then, well, they can handle most things in VB. The best programming book? Easily Code Complete. The best book for dealing with management; well anything which teaches basic unarmed combat techniques. As for setting up an investment plan those in the UK could do a lot worse than read Alan Potts' AGAINST THE CROWD. Not sure how it applies to the US though. Malc www.dragondrop.com / www.ukhorseracing.co.uk
Project Management using UML/Data Modeling | Thu 16 May | Nick Hebb
Has anyone ever used data modeling (UML, ERD, etc) as a means to track and communicate project schedules? I’ve never done this, but I have a vision as to how it would look. Let’s take a simple 3-tier ASP-SQL app as an example. Using the output from the ERD and UML I would create 5 columns. - The 1st column would be the UI and list each of the forms in the app. - The 2nd column would be the code behind each UI and list each of the methods and event handlers required. - The 3rd column would be a UML block for each of the COM components and list each class and its methods. - The 4th column would list any stored procedures or views. - The 5th column would be the output of the ERD and list all the tables. The diagram could be as simple or complex as the user wanted. Additional middle columns could be added as needed for each tier. Lines could be drawn to show data flow between the elements. Man-hour estimates could be placed next to each element along with a target completion date. Perhaps for large applications this diagram could get too large to make it practical, so maybe it would only work well for smaller applications. Once complete, the diagram would provide a map of the architecture, a project timeline, and communication tool to show managers / clients that the UI elements are only the “Tip of the Iceberg.” Can anyone see any basic flaws with this idea? Or, am I just re-inventing someone else’s wheel here?
Thu 16 May | Martin L. Shoemaker | Nick, I've done some VERY simple work using Activity Diagrams for scheduling. What they do well, of course, is handle alternative paths and stuff. It seems workable, but I haven't applied it on a project yet. Your ideas sound interesting, but I'm having trouble visualizing the diagram. Do you have any sample diagram you would like to share?
Fri 17 May | Nick Hebb | Martin, I could email you something, but trying to create and post a plain text version of the diagram to this site just isn't feasible. I'm just trying to come up with a way to show both the application structure and the project timeline/milestones in one easy to digest snapshot.
Fri 17 May | Martin L. Shoemaker | Nick, If you like, I'd appreciate an emailed copy. I think it sounds intriguing. Thanks!
modelling tools | Thu 16 May | No BS
anyone know of any good (FREE) modelling tools. something like the now unavailable together whiteboard edition or something. i just need something to put together UML diagrams with. code generation is not an issue. any pointers?
Thu 16 May | Stephan | http://argouml.tigris.org/
Thu 16 May | Martin L. Shoemaker | I was going to point you toward I-Logix Rhapsody, Solo Edition; but it looks like their free version is no longer free. Too bad.
Thu 16 May | Leonardo Herrera | I went to the URL posted by No BS, and the first thing I saw is a screenshot featuring a _lousy_ GUI. The I saw the word 'Java' and got strange flashbacks about unresponsiveness, strange behaviors, and non-standard controls (I'm using windows). And I left. Don't knew then, but a couple of minutes later, I realize that I _hate_ Java interfaces. I can almost smell them, and I can't help but hate them. Anyone else have this strange phobia?
Thu 16 May | Leonardo Herrera | Hm, the URL wasn't posted by No BS. My mistake.
Thu 16 May | No BS | I downloaded the argouml tool and it suits my needs quite fine. thanks stephan. i had similar flashbacks about the whole java thing - especially for a modelling tool. (a lot of these reservations stem from using Forte4Java) but this tool is working like a breeze. i'll still take more suggestions though.
Thu 16 May | Beth Linker | From what little I've seen of ArgoUML, it looks decent for a free tool. Java GUIs are slow and if you're used to the Windows look and feel, they can be disorienting. However, despite the speed issues I'm rapidly becoming addicted to JEdit (to the point of abandoning the much faster EditPadPro) for Java development on my Win2K box. For my current project, I've usually got at least 3 Java GUI tools running at once and none of them are fast (but some are otherwise quite good). JEdit does have a button you can click to request garbage collection which, while it may not really improve performance does make me feel slightly better about waiting for the screen to redraw.
Thu 16 May | Adam | Also, the poseidon UML tool is built on top of Argo, and has a little better support. Additionally, there is afreee comuunity addition.
Fri 17 May | mackinac | Stephan, Thanks for the link. I didn't try the ArgoUML, but looked around the tigris site, http://www.tigris.org . It looks interesting. Having used Rational Rose and System Architect, I often feel that SWE tools are an area where open source has a chance of doing a better job. Are there any other sites for open source SWE tool developement? I know about sourceforge of course.
Fri 17 May | EP | UML Pad is a freeware tool for drawing UML class, sequence, state, and activity diagrams. Much less capable than ArgoUML, but clean and simple, zips to less than 1 MByte and requires no installer. http://web.tiscali.it/ggbhome/umlpad/umlpad.htm
Fri 17 May | Dave Warner | I went through and tried all the open source and 'free' tools about five months ago and ended up just plain frustrated by their lack of functionality and buginess. Check out: http://www.objectsbydesign.com/tools/umltools_byPrice.html for a good listing of UML tools. As I stated in a different thread on this forum, I ended up buying Enterprise Architect and have not regretted the minor expense.
The bad thing about .NET is... | Wed 15 May | Fleeno Glarkenstein
...you cant search for it! Both Google and AltaVista strip the period off and give you every page that contains the term net. Thats a lot of pages.
Wed 15 May | chris | Put double quotes around .net
Wed 15 May | Troy King | 'The' bad thing, huh? Heh. Even though Joel calls people like me 'neat freaks,' I still can't stomach the idea of that huge a run time. In spite of what Joel claims, load times on bulky software are indeed slower, and memory-hog software does cause more paging and slows me down even more. All my machines are extremely fast, modern machines, and I notice definite load and GUI reaction-time differences on large apps. Unlike Joel, I don't measure my disk space in cost-per-megabyte. I measure it in how long it takes me to install, back up, defragment, and run, and all this bloated software costs me that time. I cannot believe that big .NET runtime isn't going to make the problem even worse. I also have a problem with constantly-changing libraries when the old ones work correctly, but that's another post altogether.
Wed 15 May | B | 20 Megabytes is big? I remember using statically linked xwindows crap in 1989 that was almost that big. I heard a rumor that computers have gotten more memory since then!
Thu 16 May | Troy King | b - Yup, they have, but I don't like to wait for it to load any more now than I did ten years ago. You know, it's programmers like you that make my machine slow... you assume that your app will be the only app running, so you might as well use whatever resources are convenient for you rather than trying to reasonably minimize the load you place on a machine.
Thu 16 May | Greg Neumann | The bloat and slowness may be a loss to seasoned Windows programmers, but is a win for those of us who might be interested in coding for that platform. The rumors of all the little insanities of Windows coding, is enough to keep many programmers away. Breaking reverse compatibility is the best thing that could have happened. Tight resource usage is at the very end of my wishlist. I want correctness and consistency first.
Thu 16 May | Change FOr The Sake Of Change Sucks | >Tight resource usage is at the very end of my >wishlist. I want correctness and consistency first. Yeah, well we don't have that either.
Thu 16 May | Nope | chris, if you can tell me the difference between the results of http://www.google.co.uk/search?q=.net&ie=UTF8&oe=UTF8&hl=en&meta= (without quotes) and http://www.google.co.uk/search?hl=en&ie=UTF8&oe=UTF8&q=%22.net%22&meta= (with quotes) i'd be interested. they look the same to me.
Thu 16 May | .peter | I always use the term dotnet in my queries. On google.uk: Results 1 - 10 of about 94,000. Search took 0.09 seconds That's too many results anyway. 'dotnet' is a good way to filter groups.google.com. You will catch all the dotnet newsgroups.
Thu 16 May | chris | wow, you are correct. I think that is a bug in google's search algorithm. I was under the impression that doing an exact phrase search would actually do an EXACT phrase search. Maybe this thread should be 'The bad thing about google.'
Thu 16 May | George Walkey | The one thing that amazes me about .NET is that Microsoft has finally managed to kill any advantages of using C/C++ versus VB for performance. Just as I was attempting for the umpteenth time to learn C's bass-ackwards syntax, ATL, MFC amd COM stuff (compared to my fav pascal/delphi - for the purist in me). Does having every computer language known to man compile down to a common run-time really accomplish anything? With all the things they could have done for the industry, and for the Studio, why flatten the language choices? I cant tell if they made C slower or VB faster! hehe. Besides, Ive been using VFP as a VB replacement for years, still do. Curious....
Thu 16 May | Nope | chris - yes, i had noticed that before some things just get stripped out of searches no matter what you do (it seems). bug or deliberate feature, i don't know, maybe sometimes it is useful but it would be nice sometime for it to do exactly what you say rather than what it thinks you meant. george - i was under the impression that 'every' computer language compiled down to 'a' common runtime already (for values of 'every' and 'a' less than 100%), being the instructions that the processor(s) run. its just one more layer of abstraction from the hardware as i understand it (i have not read that much about it, so i could well be wrong).
Thu 16 May | Nick Hebb | I've found the best way to Google for .Net stuff is to be specific - e.g., VB.Net, Microsoft.Net, etc. Always put it in quotes, and you'll get good results. The ironic one is 'C#'. Searching the MS Knowledge Base with the 'All Microsoft Search Topics' option selected yields a big fat nada.
Thu 16 May | Fleeno Glarkenstein | Double quotes doesn't work with Google. That's the bad thing about Google. There's a bad thing about everything!
Thu 16 May | Patrick Lioi | I'm curious as to the speed of the common code generated under .NET. I happen to like java, but the speed has always been nagging at me in the back of my mind. I'm particularly interested in how a c/c++ GUI will run under .NET. Anyone have good results with this?
Thu 16 May | Vincent Marquez | From what I understand, its not really a C/C++ GUI if you did implement the Windows.Forms namespace. You could code your whole app in C++, but when you use those '.net' classes for your GUI, your calling stuff that I believe was written in c#(I think, not sure about this), and compiled down to the common run time. So, your app may be a smidgen faster than if it was in VB, but the GUI part is going to be the same in any langauge.
Fri 17 May | RK | I'm late comer here. I feel nothing bad about .net. Its when and where you are using it does make a difference. Now as language barrier is removed I would choose the easiest language to get things done. In corporate circles if starting a program takes a little bit more time and hard disk space does not make any difference so long as you get the results. If you are in shrinkwrap business like joel (and myself) the problems may crop up if you are thinking of cross-platform etc. And also from what Ive heard .net remove some of the features of languages which does not fit CLR arch. My advice is do not put all your eggs in the .net basket. MS can bring another hailstorm and survive, not me and not you.
Fri 17 May | Mark Cotten | If I'm looking for source code for C# I use www.codehound.com. Don't have to worry about the # sign or '.net' - they only search C# and .NET web sites anyway. They search all the .NET newsgroups, too. They have search engines for VB, ASP, C#, SQL, XML, and a few others. Sorry for the plug but it's a good site.
Fri 17 May | Eric Debois | Friends tell me that command line programs written in .NET languages are just as fast, or faster than the same code compiled with a regular C/C++. Apparently it involves a JIT style native compile, so there is no abstraction going on there. I dont know anyone who has done any tests with the GUI though...
MS Too Big | Tue 14 May | MarkTAW
Perhaps this isnt the best place for this, but I read an article in Money magazine about Microsoft hording money. They currently have $40 billion in cash lying around... That was as of the publication date, so its probably more by now. Theyre taking their profits (around $1 billion / month) and just holding on to it... Their plan? To expand into other industries, such as telephony. Microsoft wants to make the software that runs the phones. Weve already seen the X-Box. Microsoft spends 17% of its income ($4.4 billion) on R&D. Somehow I doubt open source can keep up with that. Since theyve basically reached the limit of what they can do in the desktop market - slowdown is inevitable - theyve decided to branch out. http://money.cnn.com/2002/04/12/pf/agenda_msft/index.htm I realize this is likely to turn into a flame war, but I have confidence *some* intelligent conversation will pop up here.
Tue 14 May | Acowymous Nonerd | I seem to recall that the SEC forced MS to start carrying more cash, because of their huge exposure on stock options, all of which was backed up by -- wait for it -- stock! This Enron-like approach to security had the SEC nervous, and they told MS that they needed more cash on hand. I can't find a reference to this event now, however, and I'm wondering if I merely dreamed it. ISTM it was in the Wall Street Journal, but I can't recall for sure. Anyone remember?
Tue 14 May | Ori Berger | Bill Parish [ http://billparish.com/ ] has all the details and interesting analysis. I haven't read what he wrote lately, but back in mid '99, he gave proof that Microsoft is suffering from the (then unnamed) Enronitis disease.
Tue 14 May | Joe Blandy | I spend about 17% of my income and save the rest (after taxes) too. Maybe the government should come after me. After all, I'm just a greedy capitalist. Nobody would get hurt but me.
Tue 14 May | Nat Ersoz | >> I spend about 17% of my income and save the rest... This is waaaaaay off topic, but would you like help spending the rest? Funny, I save around 17% and spend the rest.
Tue 14 May | Doug Withau | This is a more direct link to the MS info: http://billparish.com/msftfraudfacts.html. It is a worth a read. I am truly afraid that many large corps around the world are cooking things like this. Enron may be the first domino to fall. It makes sense to hoard cash. That seems like the smartest thing MS is doing. They are facing the DOJ, states lawsuits, threats of breakups, and free alternatives to their products. I would be hiding money in my mattress if I had those problems. MS is full of smart people. They have to know that there current business model is in trouble. People are not upgrading to get new features. MS has a reputation for low quality (deserved or not is a different debate); the reputation will follow them forever. The poor response to hailstorm and subscription licenses gave the company another black eye. As I have said before, the sock price will fall off a cliff when investors perceive that open source can compete. The previous thread is not good news for MS. Wal-Mart is offering PC’s without an OS. The OEM’s want to break the MS agreements. All this is bad for MS. What would your company do if a judge was going to tell you how you had to build your product? When the sock falls, the house of cards described above will collapse. Now is the time to panic! Facing all these problems, MS is smart to build a war chest. They will need it and soon.
Tue 14 May | MarkTAW | The link to the Bill Parish article doesn't work...
Tue 14 May | zooey | Try this one... http://www.billparish.com/msftfraudfacts.html
Tue 14 May | open source programmer | I guess you guys need a lesson in economics. With all this money and all the research Microsoft does only few things make it to the real world and they end up 'taking' every innovation from other small companies. XBox is loosing around 60million a year. Microsoft tried for years to enter the Settop boxes and lost over a billion dollar and failed. Open source have a lot of support from big companies such as HP, IBM, SUN. The number of developers working on open source projects outnumber by far the number of microsoft programmers and they sure are smarter. In the open source world many can contribute but only the brightesdt programmers are accepted.
Tue 14 May | Frederik Slijkerman | And at Microsoft's, many can apply for jobs but only the brightest are accepted...
Tue 14 May | Nat Ersoz | 'And at Microsoft's, many can apply for jobs but only the brightest are accepted...' They hired me. That oughta categorically disprove that theory. Former micrserf #9396. I've met much birghter bulbs from the pack during my travels.
Tue 14 May | Anon when dumb | I want to work for microsoft. What do I need?
Tue 14 May | MarkTAW | I'm not entirely sure what that post had to do with economics. It sounded like another open source advocate ego tripping again. The real reason for this post is a link to the Economist article mentioned on the aforementioned Bill Parish website: http://www-personal.umich.edu/~kathrynd/share.pdf Microsoft is mentioned in the middle of page 3. This infinite floating of stocks reminds me of something my macroeconomics teacher said to me while I was in college. With regards to the national debt and defecit, he posed the question 'why can't the government just continue to float bonds to cover the cost of paying off the previous bonds?' I couldn't think of a real answer. I just wished I could float an infinite number of bonds in Sim City. I'm not sure of the legalities, but if you could float an infinite number of stocks, to the point where you have 500 billion stocks worth around $.75 each, why not reward your employees with stock options?
Tue 14 May | Microserf (still there). | ...a lack of moral integrity.
Tue 14 May | Acowymous Nonerd | 'why can't the government just continue to float bonds to cover the cost of paying off the previous bonds?' The reason is supply and demand. As a government borrows more to pay for its previous borrowing, demand for its bonds decreases. This is because of the risk of default. The U.S. might be able to do it, as long as everyone continued to trade in U.S. dollars. But if the U.S. dollar fluctuates against other currencies too much, the tendency of people to trade in U.S. dollars declines, and the same problem facing other governments is faced by the U.S> government. (An argument might be made that you could do only domestic bond issues. But that's constrained by current GDP, and the real question then is why do it this way at all.) Really, the problem is that if you owe too much, people don't trust you. It maybe ought to be different for governments (who, unlike corporations, can just print more devalued money, if need be), but it's not. Still, no-one has mentioned something that indicates the SEC was ever involved in actually telling MS to clean up its act. So maybe I misremembered.
Tue 14 May | anon | Money has been a known problem. The best rate of return has been from internal projects. Next is by investing in outside companies. Last is just having money in the form of money. But when it becomes hard to do #1 and #2, your only position is to accumulate money. Paying dividends is out of the question, since what does MSFT gain from it? Nothing, and they won't do it until investors really pressure them. The important thing to see is that large companies desire to dominate capital-intensive businesses. This is in fact GE's strategy in a nutshell, and applies to others like Wal-mart. Software's barrier to entry is incredibly low, which multiplies competition. If a requirement for entry is high amounts of capital, that deeply limits the possible competition. I think MSFT is mainly fishing, waiting. They basically would enjoy something as extreme as the PC revolution of the 80's. And maybe there's little pressure to find it immediately, since Gates likely won't be hanging on for very long. Anyway, why are we discussing this here? ;-)
Wed 15 May | MarkTAW | I dunno, there's a lot of MS related discussion here, so I thought this would be a good place to talk about this. I also find intelligent conversation here. It seems to be holding true. I had thought about the infinite supply problem of floating more and more bonds. I think my teacher may have shot it down but I forget the reasoning. Perhaps he asked me for a proof that it would fail and I couldn't. Or perhaps I didn't say anything about it. Isn't it normally a good thing when a company has a large liquid position? If they're carrying no debts and can handle a bad turn of events they'll survive even if their product doesn't do so well. Why is it so bad that Microsoft has a large liquid position? Why is Money Magazine writing that it may be a bad sign for investors? And if the Bill Parish stuff is true, then wouldn't a large liquid position help that as well? What would happen if every employee with stock options demanded them right now? Perhaps they plan on buying someone... Sun perhaps, or Apple (ha ha). I wonder what the DOJ would say about that. Or maybe they plan on buying the DOJ. Starting their own nation 'Micorosoftia' located in the Pacific Northwest. Or maybe they plan on buying an X-Box for every home in America to compete with Sony, who's kicking their console making ass. Ah well. Maybe the author of the Money Magazine article is short sighted and a sensationalist to boot. Maybe it was intervention by the SEC. Maybe it was a fear that they'd be perceived as another Enron. Maybe they are just ensuring that Bill Gates will have enough money to retire in style... he has enough money right now for all of New Jersey to retire in style. At least as long as Microsoft's stock doesn't tank. Anyway... enough economics.
Wed 15 May | Ian Stallings | >The number of developers working on open source projects outnumber by far the number of microsoft programmers and they sure are smarter. In the open source world many can contribute but only the brightesdt programmers are accepted open source programmer: ok, I'll bite. Are we using the same open source software? I am also a (albeit part time) open source advocate/developer but to say that the open source programmers are smarter is pretty subjective. Only the best and brightest? It's more like anyone who wants to help, no one is excluded. I see nothing wrong with that. There are some MS teams that are pretty advanced and solid, like the SQL team. But there are other teams that could probably do a little better *cough* exchange *cough* (I know, thats just as subjective). Just like there are open surce teams that are very far ahead such as the apache team, the linux kernel hackers, or the jboss team. But there are also others that are not as good. Its just a fact that all software will not be the same. I personally don't care who built it if the tool/app works well. >XBox is loosing around 60million a year MS also has about 38 billion in Liquid as I type this with another 5 billion in booked revenue (subscription model) on the books. More than any other company. I think they are using this cash for a number of reasons. The main one being to be prepared for a quite posible split up and also to prepare for potential lawsuit liability that amounts in the billions (EU) without passing on that debt to the share holders. When you are driving a company at 30% avg. growth for 20+ years you are going to reach a peak. But investors want growth not excuses so you try to tap into other growing and existing markets such as Interactive entertainment, telephony, and embeded spaces. They simply must continue to take risks inorder to achieve the same growth rates. Part of that risk is losing 60 million a year in hopes that you will gain a customer base. A typical MS maneuver that they can maintain because of their massive cash flow. But the long run is where they are shooting for (10+ years), not next quarter.
Wed 15 May | Chris Dunford | And ain't THAT refreshin'.
Wed 15 May | MarkTAW | PS2 has 10 times more users than X-Box. PS2 is now $200 and X-Box $270. I just bought a PS2 (the day of the price drop I was going to buy a DVD player, but hey PS2 for the less AND it plays DVD's...). I won't be buying an X-Box in the near future. I wish they'd use some of that 40 billion to give the X-Box away for free. =) They could then charge for online services related to games on the X-Box, which I won't be using anyway, cheapskate that I am. Yeah.. we'll give you the hardware because we know it's useless without the software, and that's where we'll make our money. Sounds like a good business model to me. At least, from where I stand...
Thu 16 May | Ged Byrne | The Amiga overtook the Atari ST back in the 80/90s. The ST had a much bigger base initially and was £100 cheaper. In the end, however, the Amiga was a better machine. So the PS2 two advantages aren't concrete. If the XBox is a better machine (Is it) with significantly better games (again if) then the extra price can give the look of the superior choice. It worked for Commodore.
Thu 16 May | Nat Ersoz | If Xbox is 'better', then it would have better games sales because the games would be better. Actually, I have that kinda turned around, right? The best console is the one with the best games - because that is what you play: games. Given that, http://biz.yahoo.com/rb/020424/tech_videogames_sales_1.html 'After registering six top-20 titles in the NPDFunworld report for March 3-16, the Xbox ended up with only two top-20 games for the full month, at Nos. 19 and 20.' Those numbers are for the US where Xbox has its stronghold. Game sales are considerably worse elsewhere. Additionally, we have a new price war unfolding. A complete blood and guts thing - totally unglued (very exciting to watch the titans battle!). http://story.news.yahoo.com/news?tmpl=story&u=/cn/20020515/tc_cn/microsoft_trims_xbox_price 'Doherty estimated that without the production switch, the price cuts would have Microsoft selling each Xbox for almost $200 less than it costs to manufacturer.' Dontcha love it? MSFT is taking some of that $40B, rolling up two Ben Franklins, and redistributing them with every box 'sold'. Sony is in a better position to sustain this price war. They're a verically integrate hardware manufacturer. The PS/2 uses a custom MIPS core wth built in 3D accelerator. That device likely has fewer transistors than the Pentium 3 alone. The PS/2 is a consumer device built by agruably the leader in consumer electronics. It was designed for high volume manufacturing by a company accustomed to thriving on thin margins. I'm also convinced that the 'hardcore' gamers play games on computers, not game consoles. Meaning that MSFT's target audience enjoys the computer more than a 'Nintendo' style box. This is certainly true for my 15 year old and 8 year old sons. You can vastly customize the keyboard and add 'mods' to games. Not so on XBox or PS/2. The game console crowd is into role playing games. Especially outside the US. fwiw,
Fri 17 May | Joe AA. | I'm not an economist, and so I tend to get lost with all of the inside jargon that makes it sound more important and somewhat real. But... I have always been under the impression that 'cashflow' was the big thing... I guess what has been called 'liquid'. I can't see where hoarding cash or locking it away would be beneficial for any company. As for floating... isn't it just a gamble? Betting you can use the money and be long gone before it has to be paid back? Sort of a mortgage on the hopes of the future generations to make more?
RealNames | Mon 13 May | pb
Amen!! Im so sick of RealNames. It is almost as silly as AllAdvantage. I asked 20 people at my company if they had ever used a keyword and not one had (ok, it *is* possible they did so without knowing about it, which does indicate *some* value in the service). But Teares current behavior is completely insane. Microsoft should not base its desicion solely on business concerns? Hey, Teare, maybe Microsoft came to its senses and realized its just plain dumb!
Mon 13 May | B | I'm so glad the bubble burst. It's fun to ridicule stupid people - when they were all getting rich *because* of their stupidy, that was just depressing. The fact that I didn't get rich off the .com bubble may mean I have have misunderstood who is actually the stupid one here, but cognitive dissonance tells me to ignore that thought. :)
Mon 13 May | Martin L. Shoemaker | I wonder if Teare is in violation of confidentiality agreements. It appears that, AFTER he was no longer an employee of RealNames, he released at least one document that was covered by an NDA (the Go! technical notes). Of course, if RealNames is defunct, no one may care...
Mon 13 May | Banana Fred | I love Teare's comment in his meeting minutes from his conversation with Microsoft. Microsoft clearly no longer wants anything to do with RealNames, but Teare casually assumes that Microsoft will let him keep their $5,000,000 investment so he can 'go on and try another business'. Teare: 'Board wants us to wind down the company in an appropriate way if MSFT wants to take out their cash, In that case you get ~5m. If you don't take your cash, we'll go on and try another business.' http://www.teare.com/scribe.htm
Tue 14 May | pb | And one more thing: IE isn't the only place RealNames could have gone to monetzie its keyword database. Overture is making a decent business doing almost the same thing. AOL might have been interested in combining its keyword database and baking it into Netscape or the IE bundled with each of the 35 million AOL clients. The search URL in IE is customizable by whoever puts the browser on the user's machine as well as after-the-fact. Much of this could have been carried out with a skeleton staff. There does remain an issue, however, where's the value?
Tue 14 May | Adrian Gilby | I believe RealNames was used to resolve 'Internationalised Domain Names' -- unicode-character-set domains used in (mainly) Asian countries. People from Asia might regard that as valuable! More info here: http://www.theregister.co.uk/content/6/25261.html Adrian
Tue 14 May | Matthew Lock | I lived in Japan for a few years and I never saw a domain name in a Japanese character set, they always used regular ASCII characters in domains.
Tue 14 May | Nope | matthew - the ability to use non us-ascii standard characters in domain names is quite new. maybe less than a year old, certainly less than two.
Thu 16 May | Gregg Tavares | I'm living in Japan now and I was here last year when they started registering non ASCII domains. Everybody rushed to get one. The problem with them is, very few people can use them. For example nearly all Japanese cell phones will browse the web but NO Japanese cell phones will let you enter non ASCII into the URL input control on the phone. I'm sure there's some software and older browsers that also won't let you entire NON-ASCII. Then you have this problem. Your company decides to use a non-ascii domain name. You go on a business trip to another country and you try to access your company's website only to realize that the internet cafe you are at or even the branch office does not have an input method installed that will let you enter the characters you need to access your site. In otherwords, non-ASCII URLs are not really a big win. At least it seems that way to me.
Fri 17 May | PeterL | commentary at http://www.ntk.net : 'We're condemning the court's decision as well as the government's prosecution. We're 3 years old, and Microsoft was prepared to give us the trust of owning a core part of the browser. That doesn't seem the behavior of a monopolist.' - KEITH TEARE, CEO Realnames (20% Microsoft Investment), June 2000 'Microsoft seems to be playing the role of the referee who decides whether any innovations succeed' - KEITH TEARE, ex-CEO Realnames, after MS cancel contract ... so the name you get allocated really does depends on how much you pay
Fri 17 May | B | The only thing bad I see about Microsoft in this story is that they were dumb enough to invest in Realnames in the first place.
Outsourcing Development Overseas | Mon 13 May | Name changed to protect the innocent
My company has recently outsourced their core development overseas rather than pay the higher costs of developers wages. They are planning to retain a minimal staff of developers at the company to install and liaise with clients, while the development is carried out overseas. Now I know this is a terrible idea for a company whose core is software development, but I would be interested in hearing any stories you might like to share if you have been in a simular situation.
Mon 13 May | Miles Barr | The company I worked for over the summer outsourced some smaller projects to a development team based in India for cost reasons. The bottom line is 'you get what you pay for'. The code quality was low and required a lot of time on our end to clean up the code. Some stuff had to be dropped and redone by us, other things worked but was painful to maintain. The whole idea behind the outsourcing was that we had solved the problem before and the programmers didn't want to do it again. In the end, being an intern, I was stuck with cleaning up code, which is just daft because I was on more money than the outsourced programmers and could have done a better job from the outset.
Mon 13 May | IanRae | I don't know about going overseas, but any transfer of a large body of source code is very difficult to pull off. Several years ago the company I was with bought a product containing 700 KLOC, and like most code after a half dozen releases, it was a mess. With only source code comments and a few out of date design docs to go on it took months to do anything useful with it. Hopefully your senior designers are going over for several months of tech transfer to the new group...
Mon 13 May | Brent P. Newhall | We've done some outsourcing with a firm in India, and while I was not directly part of the outsourcing project, I talked with those who were. The consensus seemed to be: 1) It required a lot of co-ordination, and there were a number of surprises. Particularly: 1a) The overseas developers needed to be told *exactly* what we wanted, in greater detail than we needed to tell local developers. I mean, hey, they didn't know us and we didn't know them. 1b) The time differential caught us off-guard; while we were working, they were in bed asleep, and vice versa. Real-time communication was practically impossible. 1c) We didn't get status reports. We'd send them a specification, then would wait for several weeks until the completed code was sent to us. When you're working with people in the same office, you get an idea of how they're doing almost through osmosis. This was a completely curtained experiment. 2) It was successful. Despite the problems, we could push certain bits of development to other people and not worry about it. It's almost like customizable COTS; specify what you want, then the shrinkwrapped package appears on your doorstep a few weeks later. It may contain some surprises, but it solves certain problems. As with most things, this wasn't a silver bullet, but it had its uses for us.
Mon 13 May | Andrey | Hi, All Why US companies outsorce mostly to India, not Russia, Ukraine? Are there any special reasons? This question is a bit selfish:))
Mon 13 May | Marshall Harrison | 'My company has recently outsourced their core development overseas rather than pay the higher costs of developer's wages.' I'm curious as to the cost defference between using local programmers and using off-shore developers. How much did it cot per hour to use the Indian programers. NO! I'm not hinking of outsourcing to foreign developers.
Mon 13 May | Bella | I think you also need to be smart about WHAT you outsource. Some tasks are easier to 'break off' than others.
Mon 13 May | SZP | Software development in the United States is dead. I'm from Pittsburgh, and as a child in the late seventies, when it seemed apparent that the steel mills were in trouble, all the steel workers said things like, 'This country is the greatest in the world, and US Steel is one of the biggest companies. They'll never export *our* jobs.' Well, it's only twenty odd years later, and there are no steel jobs at all in the 'Steel City'. It's a heck of a lot easier to export software jobs! Your company doesn't have to build a huge steel mill overseas - it only has to send over a few laptops. And it costs huge money to ship the steel back to the US after it's made. To ship the software back here, it only takes a click on the 'send' button. I'm obviously biased, but it's my contention that American software engineers are the best in the world. But let's face facts. In ten or fifteen years, the American software engineer will be as rare as the American-made TV.
Mon 13 May | David Clayworth | My company splits development between Canada and the UK. While this isn't strictly outsourcing, it probably shares some of the same problems. My personal recommendations: Spend money on communications infrastructure; Don't underestimate the effect of culture differences; Read 'Global Software Teams' by Erran Carmel.
Mon 13 May | Bella | SZP, Great analogy. People are too biased towards their own self interests to ever see something so obvious so clearly.
Mon 13 May | Nat Ersoz | Sounds suspiciously like 'rise and fall of the American programmer' o me. I'm also a Pittsburghian by birth and the first 20 years of life. I don't think the analogy holds at all. The Steel industry in Pittsburgh suffered from: . lack of plant investments and upgrades . bloated management . inflexible union rules . expensive environmental regulation . imported steel being dumped below mfg cost . requires very high capital investments and high debt loads Software, OTOH, has very few similarities with steel. The only item which might be up for discussion is that of domestic cost vs. foreign cost. I think that topic was covered under another thread about H1B visas. Along with low barriers to entry comes the 'threat' of capital and money flow. Software development is very portable and can be very transparent in its nature. This is very different from Steel. At its core, there ain't no such thing as an 'American' job. Its yours if you earn it.
Mon 13 May | Chris O | SZP, 'In ten or fifteen years, the American software engineer will be as rare as the American-made TV.' I was just wondering why you say this. As in australia it seems like >90% of the shows on telly are 'Made in USA'. What happens ? Do you guys just send us all your shows because you know they suck and then watch TV from Canada or something ?
Mon 13 May | xn (an american only slightly embarrased to be a home and away fan) | i think he meant tv sets, not tv programming.
Mon 13 May | Bella | Sounds suspiciously like 'rise and fall of the American programmer' to me Did Yourdon's book focus on outsourcing? I always discounted it considering it was written in the early 90's, right before the greatest tech boom ever, when the American programmer was neck deep in money. Was it just ahead of it's time? Then again, he wrote 'Rise and Ressurection' in 1996. Broken clock syndrome ?
Mon 13 May | Martin L. Shoemaker | << Sounds suspiciously like 'rise and fall of the American programmer' to me >> It was 'Decline and Fall...' And yes, it sounds very similar. << Did Yourdon's book focus on outsourcing? I always discounted it considering it was written in the early 90's, right before the greatest tech boom ever, when the American programmer was neck deep in money. >> Not quite outsourcing, but similar: the Japanese 'software factories' that were going to put us all out of work. The reasons why were similar to but not identical to the ones being cited for outsourcing. << Was it just ahead of it's time? Then again, he wrote 'Rise and Ressurection' in 1996. Broken clock syndrome ? >> 'Rise and Resurrection' did a careful analysis if why he was wrong in 'Decline and Fall'. I don't have a copy with me; but it seems like the problem identified was that the hardest parts of the job were simply not as automatable as the proponents claimed. That's not as relevant for the outsourcing shops as it was for the factories. But outsourcing has a lot of problems. It can be and has been done successfully, just like any number of other 'hot' trends (XP, Agile Development, Unified Process, you name it); but like all of those, it has also shown some spectacular failure. Outsourcing requires a process change, not merely throwing money at the problem. I've known some really good Indian developers, as well as Filipino developers, Jordanian developers, Chinese developers, Russian developers... We have no monopoly on smart people who know the technology. So the work can be done anywhere -- IF the process is in place to support it. Time lag, language differences, culture differences, technology differences, proper separation of analysis and design and development tasks... All of these have to be addressed. I have a friend who likes to ask why people try all the fads out on the software development team. Why don't we try paired management? Why don't we try rapid accounting? (Oh, yeah, Enron did that...) The next time someone touts the benefits of outsourcing development, point out that managers overseas cost a lot less than do managers here, so maybe we should outsource management.
Mon 13 May | Daniel Shchyokin | In a typical big software company or ITShop only about 2-5 percent of the total buget is spent on people who code: that is if big SW company spends 10% of budget on R&D (10-20% is typical in the industry) that means Executives- 2-3% middle managers, product managers, project managers, producers, business analysts ... 2-3% QA, Admins, Architects (other people who dont code) 3-5%... i.e After accounting for all the Layers of non-coders, the coders account for only 2-5 percent of a companies total costs! Now, afcourse you can say ok, but that still buys us twice the programmers, but (figuring that the average Indian(not sure about chinese,taiwanese, thai or russian) company charges between 20-30 dollars an hour (and yes this is the actual range) (and lets say an Amercian Programmer costs roughly 50 dollars an hour 50-80k + benefits), but a)twice the programmers does not equal twice the productivity b)communicating with people overseas does incur higher management costs (you cannot simply draw something on a whiteboard, or write a quick email, everything must be speced out in gory detail) so the actual, real cost savings are something like 10-25 percent (of your 5 percent), because god knows you still need all your managers
Mon 13 May | Daniel Shchyokin | Some other important differences between making steel beams and applications 1. do you really trust sending your source code overseas 2. if it is an integration project, how do you replicate the hardware (especially since some of it would be illegal to send over) 3. What about test data, do you want to send your test data overseas as well! 4. When support has an escalation, who do they go to if the engineers are all in india (afcourse this isn't quite the same problem if you outsource support as well)
Mon 13 May | frankenstuffer | >'Now I know this is a terrible idea for a company whose >core is software development' It seems to me that this would be exactly the kind of development that a shop in india would be best at. One huge deliverable like a word processor or a browser that is very clearly spec-ed out, with a staff of translators working on language issues. Didn't Sun send its Java shop to india to take advantage of this?
Tue 14 May | Jenna Haydn | Well, the good news is that productivity is the important metric, not just plain cost. If your communications has to go so far, with non-technical management, productivity will die. And there usually is a need for speed to deliver product. That's why the situation is entertaining, not scary. All of your mechanisms are subverted. No interviewing, no control over morale or customer feedback, unless you have the skill for this. But congratulations for those companies who can manage this situation well. Competiing on price is valid competition. After all, western countries have the advantage of higher capital and infrastructure. Andrey, maybe the 1 billion people make India a more visible target. ;-) The most competent overseas team I've seen so far though came from Romania.
Wed 15 May | Harvey Motulsky | We first outsourced (to a company in the Ukraine) to convert our Windows program to Mac. This worked great. Fixed price, not too far off schedule, and we agreed about what was a bug fix (included in fixed price) and what was a new feature (we pay extra). We now use the same company to do new Windows development. That is quite different as the spec is fluid. We pay about half what it would cost per man-month here, but my guess is that it takes three times as many man months. But no management issues. No offices to maintain. No personnel problems. I don't think we are saving money. We are getting quality programming, just not quickly. Communication is an issue. Not a great success. Not a failure. When we finish this verison, I'll have to decide what to do next. Bottom line. Outsourcing works great in situations where the specifications are really clear -- like converting from one platform to another. How well it works with a less complete, and more fluid, spec is more problematic.
Fri 17 May | skautsch | The only instances where I've seen outsourcing work well were ones in which (a) a few years of foundation building was allowed (you get what you pay for); (b) an engineering team also existed in the U.S. (which did help with quality assurance); and (c) the management of the outsourcing was taken very seriously. One fulltime person in the U.S. who had no duties *other* than managing the overseas team. I'm not worried about the flight of *too many* jobs overseas because (a) most American companies simply don't have the know-how to make it work; and (b) there's a lot of shops - thousands, in fact - that consist of 1-5 developers. In this environment, outsourcing simply won't work. BTW: If outsourcing was so easy, why does the U.S. software industry so desparately push for H1B increases? If they *could* send all of our jobs overseas, they would do *that* instead of using H1B's. What I'm dying to see are consultancies that offer outsourcing for (a) CEO's; (b) Boards of directors; (c) the morons who *run* our software shops.
Fri 17 May | Joe AA. | 'What I'm dying to see are consultancies that offer outsourcing for (a) CEO's; (b) Boards of directors; (c) the morons who *run* our software shops.' Wow!! That would be cool! One of the companies I used to work for went the offshore (India) route recently... about a year ago. It was because it was (#1) cheap, in that 20-30 dollar range. The first thing 'shipped' over was maintenance and production support callout - the time difference coincided with the middle of the night. More recently though, they have turned over some development projects. Did the quality improve? Nah, local people wind up fixing the delivered bugs. Did the time to deliver improve? Nah, small things still take forever. It's just cheaper. I should also mention that this company (as in the 'C' classification above) has the approach of throwing as many people on a tiny problem as possible, and then spending months in committee discussions over the important things... like the proper color of gui pushbuttons. That's why I ain't there any longer...
Fri 17 May | outsourced | I've never been able to get a straight answer out of anyone as to whether or not outsourcing saves money. I've been in two situations where my peers decided to oursource development (to India) and in both situations the costs difference between adding another internal team and hiring the external team were minimal. However, the indian firm promised 3x as many developers. The software we were building was not firmly spec'd out so both situations were a disaster. I.e. we really did need another team of 3-5 highly skilled and adaptable senior local developers who could work with us, not a team of 50 bottom of the barrel programmers difficult to communicate with. The thing I found most strange about the decisionmaking process was that the outsourcing firm was not going to save us any money from the get go. The actual price was similar to prices quoted from USA outsourcing firms, as well as just hiring a few more people. Its just that the offshore place promised more warm bodies. It seemed as though these factors swayed the decision to outsource: 1. USA outsourcing firm was 2 guys in a shack, wanted $200/hr, indian firm was also about $200/hr, but they promised something like 15 guys and a slavedriver assigned to the project 2. hiring some more guys locally would have taken a long time. the indian bodyshop was ready to go at the drop of a hat. What I'm wondering is: In most cases, do offshore outsourcing firms actually come up with a significantly less expensive bid than what the project would cost internally, or outsourced within the US? I.e. does XYZ corp say 'we can do your project for $15K instead of $150K!' or 'our firm is $20/hr, not $220!'. I've actually never seen this happen. However, I've only been in the situation 2x, and am wondering what other people's experience is.
Fri 17 May | Daniel Shchyokin | One thing I always wanted to see if it would work is a hybrid consulting company, i.e. some code gets sent overseas, but key components,integration,testing stay in the US.
Project Management Software | Mon 13 May | Intekhab Mufti
Can someone plz recommend a good web-based project management software? The software should be able to track schedules, deadlines, emails, task(s) assigned to team members and display MS Office documents. I am looking for an inexpensive solution.
Mon 13 May | Matt Heusser | 'Xtreme Programming Installed' by Jeffries, et al, is all ya need. Oh, and some 3'x5' index cards and a pencil. :-) (Seriously, read the book. It'll presents and interesting case, even if you don't use it.) regards,
Mon 13 May | Nat Ersoz | Check XPlanner. www.xplanner.org
Tue 14 May | A. | Nat: 404
Tue 14 May | anon | http://xplanner.sourceforge.net/ But is XPlanner better than Sourceforge or the better-programmed GNU Savannah? My company uses an expensive package that I've only touched once. It seemed too bloated. Looking at all these, they're just packaging a bunch of mediocre products (bug tracking, etc) behind one interface. But I suppose the learning curve is kinder.
Tue 14 May | andrew | I sort of agree with the first response to the question, although I don't know the XP Project Mgmt. book. I've never been on a project where the PM aspects *needed* to be improved by a piece of software. So often, PM needs more understanding of people's roles and abilities, more frequent and close contact with developers and clients, and more obsessive attention to the schedule, budget, and deliverables. Seriously, get a huge wall (or a whole room) and get everything on it, get a calendar and update it as often as you can, get a spreadsheet and make sure that every hour possible is tracked, and yes get those 3x5 cards and break everything down into small tasks and organize them.
Tue 14 May | skautsch | Why is everyone forgetting to mention Post-It's? They're great because they stick to the wall by themselves. When you're trying to chart a critical path, there's nothing as good as Post-It's! (JMO)
Wed 15 May | Nope | 'is XPlanner better than Sourceforge or the better-programmed GNU Savannah' fuck knows. i can't even get it to run.
Wed 15 May | Evgeny Goldin | I've just seen the printout of 'Rational Suite Enterprise'. Has no idea whether it's good or bad, but it's description seems to meet what you need: http://www.rational.com/products/entstudio/index.jsp Does anybody has any experience with this tool ?
Wed 15 May | Nat Ersoz | I've used Rational's 'ClearCase'. I hated it. It forces you into creating a branch and merge with every check out and check in. Some config mgmt type admins love CC. I hated it with a passion. Some good tools for source control: Perforce, RCS, PVCS. Liked 'em all. I like Perforce best of all, but it is $600/seat. Mighty powerful though. Mighty powerful.
Wed 15 May | Martin L. Shoemaker | << I've just seen the printout of 'Rational Suite Enterprise'. Has no idea whether it's good or bad, but it's description seems to meet what you need: http://www.rational.com/products/entstudio/index.jsp Does anybody has any experience with this tool ? >> Limited experience. INCREDIBLY powerful tool. INCREDIBLY expensive tool.
Fri 17 May | alekzander | << I've just seen the printout of 'Rational Suite Enterprise'. Has no idea whether it's good or bad, but it's description seems to meet what you need: http://www.rational.com/products/entstudio/index.jsp Does anybody has any experience with this tool ? >> I've used it, it's amazingly clunky. I'm not going back to that thing *ever*. None of the thousands of dollars customers pay Rational go to improve usability.
application platform? | Sat 11 May | curious_dev
Is there an app environment *for non-programmers *db and os independent *scalable *flexible *plug-in oriented Delphi, Powerbuilder tried getting there. But they need some amount of programming and they are probably not that scalable. Oracle forms approach addresses some of the issues.
Mon 13 May | Brent P. Newhall | To answer the original question: No such tool exists, that I know of. Some tools manage to match one or two of the criteria, but not all. However, I beg the community's indulgence as I wander off briefly on a tangent relating to the concept of an environment 'for non-programmers.' I will warn that this is my first attempt at codifying my thoughts on this matter, so my explanations will probably be vague. We've worried about this problem at work, where we're developing an application that should allow any user to automate certain processes within the app itself. Our target users are engineers, their managers, and executives, so we've wanted to make this automation easy for those who aren't classically-trained programmers. From our discussions, I've come to believe the following points (which are generalizations, I readily admit): 1. For people who know what programming is but can't program themselves, programming is a complex skill approaching black magic. It's seen as a strange ability to write weird instructions that make a computer do all sorts of incredible things. 2. Programmers tend to have a surprisingly narrow view of the nature of programming. They tend to think of programming in terms of writing in a high-level language (or at worst ASM). Macros, for example, are seen as 'not really programming.' But macros are using specific computer instructions to create specific computer behavior, right? 3. Programming can be thought of in very broad terms. One can get down to semantic questions -- for some programmers, programming *is* using a well-defined, ISO-standardized language, and that's understandable -- but IMO, programming is simply a matter of using specific computerized instructions to create specific computer behavior in a repeatable fashion (this latter being the program itself). That's a vague definition at best, but I think my point is reasonably clear. 4. Programming can be presented through tools that are quite unlike traditional high-level language tools like IDEs. These tools can be understood and used by 'non-programmers,' e.g. secretaries and executives. How? Ah, there's the rub, and we're still hacking away at that problem. But I believe it is possible, and that it's worthwhile to think about programming in these terms.
Mon 13 May | Dan Sickles | You can go a long way toward your goal with Zope. www.zope.org
Tue 14 May | still_curious | Business applications require programming expertise just as much as bookkeeping requires accounting expertise. (After all, accounting is just adding and subtracting numbers, right?) Moreover, business requirements change over time, and application rules need to be carefully readjusted over time to reflect the changes in business needs. >> It is a question of how much expertise the business analysts need to have to design a collection business rules. The bar has been coming down for quite some time (c/c++ ->java/javascript/jsp ). I am looking at an application builder environment like visual basic wherein i define the data model and specify a bunch of rules about the flow (in a declarative way) and that is all. This business rule/data model enforcer/engine could be written in servlets/ejb approach, talk to different databases and be independent of OS/databases. The 'cajun' (new bea app dev environment) is approaching this area. They have a bunch of controls and heavy ejb/java programming is not required (or atleast that is the idea as the version matures). So, it is about business process design. This environment can have authoring end, runtime (client end and server end) and is independent of db/os.
Tue 14 May | James Wann | > It is a question of how much expertise the business > analysts need to have to design a collection business > rules. > > The bar has been coming down for quite some time > (c/c++ ->java/javascript/jsp ). I am looking at an > application builder environment like visual basic wherein i > define the data model and specify a bunch of rules about > the flow (in a declarative way) and that is all. This > business rule/data model enforcer/engine could be > written in servlets/ejb approach, talk to different > databases and be independent of OS/databases. We'll, in the scope of declarative business rules, there's versata. Which is declarative, though they exist strictly within the J2EE universe/religion. As with all current rad-like tools, it'll only get you 80-90% there toward your goals. Getting something like this to finish (spit and polish) will still take a good chunk of programming time. In the end, tools like this won't be the end all. Business app projects typically lose money and waste time because of poor requirements gathering and prototyping, and that's the real limiting factor behind quickly getting an application to market. As the rules become more complex, you'll find that the percentage of time that is spent coding goes down tremendously, replaced by planning and testing.
Tue 14 May | still_curious | We'll, in the scope of declarative business rules, there's versata. Which is declarative, though they exist strictly within the J2EE universe/religion. >> interesting, I am not sure how generic it is . 'll take a look at it. I agree that planning and testing takes lot of time. I think the following issues related to code also aggravate that issue. *not enough understanding of the problem: rad tools can't help the situation but if they support rapid changes as well, incrmental planning will be possible. *testing: I am not sure how typical business apps/internal apps are automated. In the case of app platform with declarative approach to business rules, it should be easy to add simulation modules that can try different data sets etc. This is not super easy. since user is in a restricted environment, it should be possible to try different variations of data sets. I am loudly wondering if it makes sense to pursue an idea in this direction. Or is it going to be like your thinking...apps are complex--so RAD tools can only take me this far..why get stuck into a restrictive environment...develop an app in java/c# or whatever and keep doing the changes.. but those apps are stuck for one designed paradigm...how are mobile devices/pdas/speech interfaces faciliated..In the case of restricted app environment, new modules can be added by vendor to render this stuff on to mobile devices etc..the bizapp developer is really free from those issues.
Tue 14 May | Benji Smith | There will never be an application development platform for non-programmers. Never. Programming is not about learning arcane syntax. It's not about using curly braces and semicolons. It's not even about being 'into computers.' It's about breaking down a complex problem into increasingly simple steps until the problem can be solved automatically by following those steps. No one will ever be able to develop applications without learning how to think through a problem logically, regardless of how intuitive or simplistic their application development platform. A typical example: 'In tic-tac-toe, different games can be played in such a way that different sequences of moves result in an identical board. However, not all possible board combinations are valid games (i.e., there can never be more O's than X's on the board, but there can be one more X than O). How many different valid games are there that produce unique board combinations (ignoring board combinations that are identical simply by rotating the board)?' I don't know the answer to this problem (in fact, I just made it up), but I do know how I would start approaching it. There are efficient algorithms for figuring this out, and there are inefficient algorithms. It would take me a while to hit upon an efficient algorithm, but I could start working on it because I know how to break down a problem rationally. I have a little bit of practice with this kind of thing. And problems like this aren't rare. Sorting algorithms and validation routines and word-counting algorithms all require this kind of logical thinking (especially if you're going to use efficient algorithms). My point is: there are no magic tools that you can use to develop the algorithms to solve logic problems. And that's all programming really is. There are easy ways to design user interfaces (VB or any visual RAD tool) and there are easy ways for non-programmers to interface with a database (MS Access). But, to do anything meaningful with the data in your application, yes, you do have to be a programmer.
Tue 14 May | still_curious | Most of the business problems are about getting data from user and let that run thru some workflow (bunch of users) and interact with other systems and get back. Very minute portions of this are highly algorithimic. Average bizapp developer should be comfortable about problem solving but need not be an expert about efficient searches and sorting algorithms. given that, isn't there lot of scope for such app environments (author, run, deploy all within) Versata is one name that came up. Remedy's arsystem has some of the markings.
Wed 15 May | Benji Smith | If all you want to do is have users put data into a form, submit the data to the database, and view the data in a friendly format, that type of application already exists. It's called Access. (And even Access is too obscure for many users.) Putting an additional layer of abstraction on top of Java (or some other HLL) doesn’t help to make programming concepts any simpler to non-programmers (although such paradigms can make programming concepts easier to learn for wanna-be programmers, which I think is fantastic). I imagine though, that that's not what you're talking about. I assume that what you want is some sort of point-and-click application development environment with no variables, functions, operators, conditional structures, loops, or classes. Those are programming concepts, after all, and they would confuse non-programmers. Well, no matter how abstract you get, any application development environment will have to let you put data into some sort of container (an array variable) and perform some kind of operation on that data (functions or methods). You'll need to let the program make decisions about that data (if statements) and you'll need to perform an operation multiple times on the same data (loops), once for each row of data, for example. Now, you can represent these concepts any way you want. You can use an existing high-level language like java or whatever. Or you can represent the concepts graphically with different colored tinker-toys. Either way you do it, it is still a programming language, even if it’s the TinkerToys language. You can't represent programming concepts by removing the programming concepts. You can only change the way that the abstractions are presented to the user.
Wed 15 May | still_curious | Hi Benji, You are right on the broad concept. ie. However abstract it might be, it is a question of brining programming concepts in terms of non-developers. (better visual interface etc) also it has the potential of masking off all the complexities of several variables (security, load balancing, multi device access etc..) Versata was mentioned earlier. It seems like good tool. Haven't opensource folks attempted this problem? This is a great way to answer regular dev environments and attract business analysts etc..
Thu 16 May | Matthew Lock | Non-programmers can't build Access applications because they don't know how to design tables. Normalisation is quite a hard technique that escapes most non-programmers.
Fri 17 May | Benji Smith | Matthew Lock: >> Non-programmers can't build Access >> applications because they don't know >> how to design tables. >> Normalisation is quite a hard technique >> that escapes most non-programmers. Formatting a Word document is quite a hard technique that escapes most non-programmers. No matter how simple, no application development platform will ever be simple enough to make the job reasonably do-able for non-programmers.
best looking software pundit? | Thu 09 May | beefcake
Im writing a magazine article for the society of womens engineers, regarding the 10 best looking pundits in the software industry. So far, Ive got: Jakob Nielsen Phillip Greenspun Don Box John Dvorak Tiger Woods John Seymour Edward Yourdon Can you folks help me round out this list? I need to find 10, and Id like to at least have 50 to chose from. Please, no open-source figureheads...our readership is not into guys who cant hold down a job.
Tue 14 May | ScottB | ScottB is pretty good looking.
Fri 17 May | Sri K Ganjam | Roger S Pressman Steve Mc Connell
updated topics first | Wed 15 May | Nathan DeWitt
Joel, Is there a way you could keep track of which topics have been updated, and display them first? i think thatd make it a little easier to find topics that have changed, rather than trying to remember how many posts there were on a topic last time you visited the site...
Wed 15 May | John C | I'm pretty sure the most recently posted-to topics go to the top. And the 'ixReplies=' bit in the url changes with the number of replies so that your browser will show any newly posted-to topics as unvisited.
Wed 15 May | Jutta Jordans | >I'm pretty sure the most recently posted-to topics go to the top. I don't think so. The most recently added topics go to the top of course, but posting to them does not change their order. > And the 'ixReplies=' bit in the url changes with the number of replies so that your browser will show any newly posted-to topics as unvisited. yes, it does, but I would still like an extra marker for 'new' or 'updated' since the last visit. It happened to me for the third time now that my machine crashed while IE was running (not IE's fault though, I guess, since I was debugging some nasty multi-threading issues) and ate all of my internet history. In that case I have to browse through all threads again. Have fun,
Wed 15 May | Joe AA. | Doesn't seem to me like new replies forces a topic to the top. It would be much 'nicer' if it did.
Wed 15 May | John C | >>I'm pretty sure the most recently posted-to topics go to the top. >>I don't think so. The most recently added topics go to the top of course, but posting to them does not change their order. Really? I'd been under the belief that it did. I wrote a discussion forum for my own site in a similar manner to this one and made it order by most-recently-posted-to-date as I thought this one did!
Wed 15 May | Chris Dunford | It doesn't, but it would be much better if it did.
Wed 15 May | pb | It doesn't and I think Joel wanted it that way. I believe he said he wants old topics to die out and a continuous supply of new topics.
Wed 15 May | Chris Dunford | Could be (I don't know), but I learned way back in the 80s as a CompuServe sysop that thread management works best when you key on the age of the newest message, not on the age of the first message.
Wed 15 May | pb | Not if you want threads to die.
Wed 15 May | Chris Dunford | Why do we want active threads to die? What we want is for dead threads to die.
Wed 15 May | MarkTAW | Then again, threads like this one and the Open Source V. Microsoft threads would live forever.
Thu 16 May | pb | That time and new subjects have more weight in determining the death of a thread here than they do elsewhere is refreshing.
Thu 16 May | Nathan | >I'm pretty sure the most recently posted-to topics go to the top. And the 'ixReplies=' bit in the url changes with the number of replies so that your browser will show any newly posted-to topics as unvisited. Unless you set IE to only remember your links for a few days, rather than weeks.
Thu 16 May | Brent P. Newhall | Here's how it works, assuming default browser preferences: Threads are sorted by creation date, with the threads created most recently at the top of the list. New posts to a thread will *not* move that thread to the top of the list; the thread will stay right where it is. However, whenever a new message is posted to a thread, the URL of the thread changes slightly, so that thread will be displayed as a new link. Threads with no new content since your last view are colored purple, while threads with new content are colored blue (assuming default link colors; substitute your own if you've changed your browser's default link colors).
Thu 16 May | MarkTAW | Yeah we get all that. Each post also has it's own unique ID, which is mostly hidden. Your post, for example is 8288, and can be accessed via the URL http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=8288
"PeopleWare" | Mon 13 May | Matt Heusser
Last fall, I read PeopleWare, and thought COOL. This Is The Way It Should Be. Then last week I read The Practice Of Management by Peter Drucker. Written in 1954, it was the first book in its genre - modern business management. They still teach out of it at MBA and management programs. Its a classic. Guess what? I believe the principles behind Peopleware were clearly and consistently listed by Drucker 30 years previous. And they are still taught in MBA school today. Am I wrong? And if Im right, why dont we ... practice them in American Business today? And maybe Practice of Management should make Joels list ? .... comments? regards,
Mon 13 May | Brent P. Newhall | >>why don't we ... practice them in American Business today?<< For the same reason that eXtreme Programming recommends a lot of well-known practices. Just because they've been discovered and shown to work does not mean that they are universally followed. There may need to be more pushes to make sure that they *are* followed in the future.
Mon 13 May | Evgeny Goldin | << why don't we ... practice them in American Business today >> I think De-Marco gives an answer - because things he's talking about have a long-term impact that is actually hard to measure (satisfied workers, higher productivity and better products). And this is 'plain nothing' for some executives. Pushing your workers and not following De-Marco's advices has a really attractive kind of short-term impact (say, faster 'cost-reduced' delivery or lower furniture cost) which is 'really something' for the same executives. There are still other manages which are simply stupid for reading smart books about right way of managing people - they think they already know it or that there's nothing to study here ..
Mon 13 May | Nat Ersoz | I think more fundamental is that so many managers are interested in empire building rather than production and core competencies. I really think it is that simple.
Mon 13 May | Johnny Simmson | Out of all the companies I've worked for, I'll bet none of the managers have ever heard of Drucker, let alone read him. I've only come across only one MBA in the workplace and she was the CFO. Other than that, I think a previous poster is spot on about too much of a focus on the short term. The only thing that matters is this quarter's results.
Mon 13 May | Matt Heusser | >I've worked for, I'll bet none of >the managers have ever heard >of Drucker, let alone read him. There's a test: Leave a copy of Drucker's 'Practice of Management' and DeMarco's 'PeopleWare' visible inside your cube. See who notices ... you might be surprised. Or not. :-)
Tue 14 May | andrew | It's also true that many many principles of good Design (visual, conceptual, architectural, interactive) have been around for a long long time. User-centered design processes that can save time, effort, and money have also been around for some time. Yet most places still flail around with no design process and no good approach to people management. There seem to be many areas where the obvious improvements to a process or situation stare us in the face but aren't implemented.
Wed 15 May | Norrick | Taking an informal poll around my workplace, I have found that I am the only person in the company who has read either PeopleWare or any book by Drucker. Scary.
Wed 15 May | Adrian Gilby | Perhaps they've read the books but are afraid to admit it within earshot of bosses/managers who might regard such books as a threat. Or is that too cynical? Adrian
Thu 16 May | mackinac | >>>... Or is that too cynical?<<< Too cynical. I think other posters are right. The main problem is short term thinking, particularly among middle management. The top executives in a company may take a long term view, but anyone below that level is thinking about how they are going to get their next promotion. Drucker sounds interesting, so I ordered his 'Principles of Management'.
Thu 16 May | Matt Heusser | You mean 'Practice', not 'Principles' above, right? Incidentally (Wierd?) my father read 'Management: Tasks, Responsibilities, Practices' in his MBA program in like 1979. (I think that's the book anyway; he still has it on his shelf. It's a big, huge, thick red book that just says the word 'Management' on it. That's the closest amazon match I could find. :-) He also wrote 'Principles of Non-Profit Management' and a couplea others. It's a bit dry, but if leadership & motivation is a personal passion, I think you'll find the book worth your $15.00 or so. If you post your opinion, maybe we can get Joel to add it to his list ...
Thu 16 May | mackinac | >>>You mean 'Practice', not 'Principles' above, right?<<< Oops. Right.
UML where to start? | Mon 13 May | Peter Ibbotson
I keep feeling I should be using UML with something like rational rose to keep it all in synch. However Ive never been taught it and neither have the other developers (its a large database app) and were starting the move to .NET. So I have some questions: a) Best book to start with? b) Tools - Should I perhaps start with the VISIO stuff that comes with VS.NET (while reading a UML for dummies type book) and move over to rational once Ive sorted out some simplistic models? c) Is it even worthwhile? d) What are the pitfalls e.g. does it force relationships into the database which then cant be broken? How painful is changing schemas? Version control of the schemas might turn into an issue. e) Should I give up and go on a course or get someone in to do a week long training session. Having browsed the Rational site, it all looks like a good idea but I feel I should do some paper based reading first then pick a tool.
Mon 13 May | Peter Ibbotson | Oh BTW this is part of a move from a traditional thick client-server app to a three tier model, so we're throwing most of the existing code base away although keeping most of the schemas and code functionality. This means my starting point is trying to model much of the existing database.
Mon 13 May | Martin L. Shoemaker | << I keep feeling I should be using UML with something like rational rose to keep it all in synch. >> UML is great. ROSE is good, as are other tools, but UML has to come first. I will NEVER tell you NOT to use a tool; but if tool issues (costs, complexity) get in the way, learn UML first, THEN learn the tool. << a) Best book to start with? >> Two answers: * Fowler and Scott, 'UML Distilled'. * Schneider and Winters, 'Applying Use Cases'. Fowler recommends Schneider, Schneider recommends Fowler, I recommend them both. Probably start with Fowler, but you can't go wrong either way. After those, look for Ambler's 'Elements of UML Style'. It's not released yet; but I've read a review copy, so it has to be coming soon. This is a must-have book to help you communicate with your diagrams, which is the point of UML. To think about how much modeling you need, I recommend Ambler's 'Agile Modeling'. I'm about half-way through with it. I don't agree with everything he says in there; but I agree with a lot of it, and I think he makes a good case for pragmatic modeling over formal modeling. Given your particular needs, I might suggest 'UML for Database Design' by Naiburg and Maksimchuk. I can't actually recommend this one, because I haven't read it yet (it's number two or three on my reading stack); but Ambler mentions it favorably in 'Agile Modeling'. I skimmed it in the book store, and it looked good enough to be worth a read. << b) Tools - Should I perhaps start with the VISIO stuff that comes with VS.NET (while reading a UML for dummies type book) and move over to rational once I've sorted out some simplistic models? >> Start with paper, pencil, and Post-It notes... AND one or more coworkers to help you argue about a problem, using the diagrams as a way to communicate your arguments. I have tried teaching UML and a tool simultaneously, and it's just too much. Now I teach UML by hand first, and THEN teach ROSE or XDE or Visio. Visio has some problems, by the way, if you're going to do code generation. (Many people won't, but I think there's a great case to be made for code generation.) It's not quite a full-featured modeling tool, but it ain't bad, especially if you've paid for it already. If you're in the .NET environment, my tool of choice right now is Rational XDE. << c) Is it even worthwhile? >> First, full disclosure time: I teach UML a couple of weeks (or more) per month. I speak on UML at conferences. I'm writing a book on UML and .NET. So when someone tells you UML is all about selling consulting and books, they're talking about people like me. Decide for yourself how much faith to put in my words. Given that... Heck, yeah! I can't imagine writing code any other way, now. I sit down (either alone or with a team) and model requirements. Then I turn those into an architecture. Then I turn that into components. Then I turn those into code. But at every step of the way, I build a model before I build the real thing. And I make all sorts of mistakes in the model; but it's cheap and easy to change. I can throw the whole thing out and start over again, if need be, and it's STILL cheaper than getting the code wrong and having to throw THAT out. If we were talking about any other field of engineering, no one would even ask the question: modeling is just an accepted design technique, period. Use it where it helps, skip it where it doesn't. Will modeling be that effective for you? Not right away. I tell my students to expect UML to be a net productivity LOSS the first six months. Modeling is a new skill set, and new skill sets take time to master. If you have a crisis right now and have to solve it tomorrow, use they tools you know now. But if you have ongoing problems you want to solve for the long term, then modeling is a useful skill set to add to your toolbox. << d) What are the pitfalls e.g. does it force relationships into the database which then can't be broken? >> That depends a lot on the process you apply. For instance, if you just use UML to get your thoughts right, then never generate code or a schema from it, then nothing is forced on you. I use schema generation. I am an OO developer, NOT a DB guru; and I have learned to trust ROSE to translate my object model to a schema. Then I take my schema to the local DB guru and ask him or her to explain it to me. For the most part, they tell me that it's roughly what they would do, only they might name things differently (though I can fix that with ROSE). That makes it better than I could do myself. << How painful is changing schemas? Version control of the schemas might turn into an issue. >> Depending on the tool, you can reverse engineer new or existing schemas directly into your model. << Having browsed the Rational site, it all looks like a good idea but I feel I should do some paper based reading first then pick a tool. >> AND some paper based practice, if you ask me. << Oh BTW this is part of a move from a traditional thick client-server app to a three tier model, so we're throwing most of the existing code base away although keeping most of the schemas and code functionality. This means my starting point is trying to model much of the existing database. >> UML works well for databases; but ER has a longer history, and is more entrenched in the DB world. So though I applaud you investigating UML, you might want to compare the benefits of ER. Now if you want to do more than the database, then UML is definitely the way to go. For instance... You say 'we're throwing most of the existing code base away although keeping most of the schemas and code functionality'. That sounds like a golden opportunity to 'harvest' most of the requirements straight from the existing application, as well as from end user docs. Maybe even from a reverse engineering effort, if the app and docs are difficult to comprehend, or if there are complex algorithms to be captures. Then those harvested requirements (expressed as Use Case and Activity Diagrams) would complement your DB model, providing a place to hook in the functionality you need to implement and to tie it to the DB.
Mon 13 May | Alyosha` | Martin: My exposure to UML was one poorly taught semester-long class in college. I came away with the impression that UML was nothing more than a glorified whiteboard; and didn't enable me to do anything more than a decent set of coloured markers could, with the possible exceptions of automatic stub generation and the ability to email my whiteboard to coworkers. I am mystified asto why it would take me a row of books in order to learn how to draw diagrams on a whiteboard. As a form of documentation, UML seems decent, but like all documentation separated from the code, it's only a matter of time before the two become out of sync. Since you are clearly more experienced in UML than I am, can you tell me what it is about UML that I am ignorant about that makes it so great -- because I still don't get it.
Mon 13 May | Martin L. Shoemaker | Alyosha: Thanks for the great questions. I'll answer as best I can. And because of posting problems, I'll answer in pieces... << My exposure to UML was one poorly taught semester-long class in college. >> Don't even get me started on learning design in college... Well, too late, you got me started. But I'll keep this rant as brief as I can, because you couldn't know you were hitting a hot-button issue for me. And this is NOT a criticism of you nor of your question; it's just what happens when the hot button is pressed. You had a one-semester class. That might have been, what, fourteen weeks? Let's call it sixteen for trimesters. Now a week gets lost on finals, a week on mid-terms, and a week ramping up the class at the start. So that's thirteen weeks. Let's assume this is a tough class, with six hours per week in class. Let's further assume this is a REALLY tough class, with, say, three hours of homework for every hour of class. That's 24 hours per week on this one class. (I NEVER had a class that tough. Hope I never do!) But of those 24, six are classroom lecture and discussion; and I figure at least that many have to be reading and study. That leaves 12 hours per week for project work. That's about 156 hours for all projects over the class. Even if that's devoted to various aspects of ONE project, that project is 156 hours. That's a small enough project that code-and-fix can be very effective, ESPECIALLY when compared to a new tool, new notation, and new process that you're trying to master. (Realistically, I'll bet that total project time is closer to 50 hours.) So it's very hard to make students appreciate the benefits of UML in a class like that. They can go through the motions to get the grade; but they are justifiably convinced that they could have gotten the same results with a lot less effort if they'd skipped UML and went straight to code. I tell my students they might need six months to gain productivity with UML. As a rough measure, that means about 1,000 hours of work. No college class comes close to that. This is no slam on you, nor on the class (even if it was poorly taught, as you say). It's just hard reality: it is very hard for a college class to teach you to appreciate process and tools and standards. The scope of such a class is usually so small that they cannot demonstrate the benefits of UML, only lecture you on them. Well, you learn it better when you experience it than when you're lectured.
Mon 13 May | Martin L. Shoemaker | (continued...) << I came away with the impression that UML was nothing more than a glorified whiteboard; and didn't enable me to do anything more than a decent set of coloured markers could, with the possible exceptions of automatic stub generation and the ability to email my whiteboard to coworkers. >> Well, here's where we again have to distinguish between UML the notation and the wide range of (often expensive) UML tools. UML the notation can be practiced very successfully with your whiteboard and markers. See Ambler's 'Agile Modeling' for a lot of discussion on this. A whiteboard and a copy of 'UML Distilled' may be all the UML tool AND all the UML training you need. The fact is, I have a vested interest in convincing you that you need UML training -- from me, of course -- but there are enough people wanting UML training that I don't need to rope you in to keep myself busy for the foreseeable future. So I can be straightforward when I say that you could learn UML all on your own. After all, I did; and if I can do it, anybody can. (My living comes from people who want to learn far more quickly than they could on their own and who want some guidance around common pitfalls.) But that copy of 'UML Distilled' is important, because it will show you a common language which will cover many diagrams you need to draw. Imagine if you sat in a requirements meeting, and the participants were speaking different languages: Russian, Urdu, English, Sankskrit (is that a language, or just an alphabet?), and Pig Latin. Even if everyone understood every language, the meeting would be a madhouse if you didn't settle on a common language. AND the choice of language matters: if you're discussing quantum mechanics, Sanskrit would be a lousy choice, because it was never designed to handle many of the quantum mechanical concepts. Russian or English would be a much better choice. The common language matters a lot, and needs to be both common and rich in the problem domain. Well, UML is a pretty common standard; and it's rich in the domain of modeling. And remember: modeling is the important skill here; UML is just a notation for expressing the models. A model lets us explore alternatives early, in a light-weight fashion, before we commit to code. Modeling is a lot easier with a good modeling tool (though Ambler raises some counter-arguments in 'Agile Modeling'). But UML tools are a whole different ball game. There you have to figure out which features you need and what you can afford. I have my favorite, for reasons I'm happy to explain when people ask. But the merits of the tools are a separate issue from the merits of the notation. And we have a third factor to separate out: your development process. UML is no process, only a notation. This is where I think many tools fall short: they let people draw pictures and create models, but don't help them to know which pictures to draw or which models to create. That's really not a UML issue. Your process should dictate what needs to be drawn in which models.
Mon 13 May | Martin L. Shoemaker | (continued...) << I am mystified asto why it would take me a row of books in order to learn how to draw diagrams on a whiteboard. >> One book gets you started: again, 'UML Distilled'. That's a tiny little book that will teach you how to communicate better using that whiteboard. The other books may discuss particular modeling issues (databases, Web apps, etc.) or strategies (agile modeling, use case modeling, etc.) or processes (unified process, etc.). Others are authoritative guides to the notation (the Three Amigo books). Still others may be trying to get the point across in a different way: as much as I like 'UML Distilled', I find some people don't get it, and may benefit from a different explanation. And no doubt, some books are just out there to sell books. But beyond the surface (how to draw) are a lot of complex issues that deserve more specialized books.
Mon 13 May | Martin L. Shoemaker | (continued...) << As a form of documentation, UML seems decent, but like all documentation separated from the code, it's only a matter of time before the two become out of sync. >> That's an issue you have to settle when selecting a tool. I rely heavily on code generation, and my code and design are never out of sync by more than maybe a half hour. Others have reasons to hate code generation, so they have to decide how much time to spend manually keeping the design and code in sync. Then there's the Agile Modeling approach: throw away temporary models. Some XP folks take that farther, throwing away ALL models once they have served their immediate purpose. The theory here is that the code is the sole source of authority, not the model. If that's how you think (I STRONGLY disagree, but your mileage may vary), then a whiteboard is probably the best UML tool for you: model it, solve it, code it, test it, and erase it.
Mon 13 May | Martin L. Shoemaker | (concluded) << Since you are clearly more experienced in UML than I am, can you tell me what it is about UML that I am ignorant about that makes it so great -- because I still don't get it. >> I don't think you're ignorant; you're pragmatic. You want to solve problems, not chase bandwagons. That's laudable. But it sounds like you're looking for the forest when there are plenty of useful trees in front of you. UML just isn't as complicated as the plethora of books and tools might lead you to believe. (In my UML classes, the students spend the first day just analyzing requirements and designing a system on paper, with me teaching them absolutely the minimum UML they need to actually solve problems. THEN I can teach them why UML is great, and teach them details of the notation and a particular tool. Once they've actually solved a problem with UML, they're much more eager to learn.) Here's an experiment, if you have some time, some helpful coworkers, and around $30 for 'UML Distilled'. Describe to me a current or recent development problem, something that's chewing up some hours. (If no one else wants to see the experiment, maybe we should take it offline.) It shouldn't be a process problem such as clueless managers, corncob developers, or such. It might be something as fundamental as obscure requirements, or as detailed as a really ugly implementation bug. I'll describe a strategy for how I might use UML to help resolve the problem; and I'll even give some reference pages in 'UML Distilled' to show you how to draw the relevant UML diagrams. Then you draw the diagrams and try to iron out the issues. When you're done, report back on whether the UML diagrams helped to think about the problem, or even to solve it. I can't guarantee I'll prove the benefit this way, but I find it works most of the time. (Notice also that I did NOT offer to solve the problem for you, for two reasons: I'm too busy; and the goal is for YOU to learn to solve the problem, not for me to solve it for you.) I hope this helps!
Mon 13 May | Alyosha` | Martin: Wow. I appreciate the copious and informative feedback. Just when I thought this board was going to the trolls ... =-) I agree completely with your comments regarding learning design in college. In my personal experience (having recieved a degree in Computer Engineering), I learned ten times as much in a one-year internship than I did the whole four years of college. Certainly the class would have been much better taught if we weren't forced to use UML to model toy problems; it would have been far better to introduce us to a large project already using UML. I will take your advice and take a look at UML Distilled. I think my problem is simply a lack of exposure to any seriously large enough projects that would benefit from models -- the largest problems I've faced at my previous work were entirely process-related. [The projects there were all 'toy problems' motivated by a sort of get-rich-quick mentality so common in the recent years; I would imagine a significant number of people in my field can relate]. Fortunately now I am blissfully unemployed, so I have far more time for reading Joel! =-)
Tue 14 May | Peter Ibbotson | Many thanks for that Martin, sounds to me like get some books at the weekend, read and digest then get stuck in. As you correctly say since I'm currently planning on keeping most of the schema I'm tempted to go with the Rational XDE system and use that to extract and model the current system, I do however of course have already have full licenses for VS.NET which comes with the bundled Visio bits so I think I may start out there with a small model then flip over to Rational and try out the two way code to diagram synching (also the auto test generation sounds good). Rational is however expensive (Circa $3.5K per seat) and I'm looking for some details of what it doesn't do well or where folks have had problems. At least they have a test version for download but it's often been 12 months in that it dawns on you what the tools aren't doing for you or do badly. I remember a bad experience with Pharlap 386 extenders were by the end of the project it was only really being used as a loader, the rest of the features could have been ditched. Of course it's difficult to know at the start what the problems are and it's possibly impossible for you to explain them until I've had more experience. In particular I'm worried about the two way code stuff and how fragile it is along with the test suite code. Related to this is how to test multiuser concurrency and deadlock issues with a database does rational give any help with this? In particular we'll be swapping our database locking model from being 'pessimistic' to 'optimistic' i.e. moving from the lock record, update record, unlock record model to a update record, get exception, repeat/deal with exception. Also does rational deal with stored SQL procedures as part of the two way process? (BTW I assume ER stands for entity relationships?) Anyway Martin thankyou very much for your feedback and suggestions, what level is the book aimed at and do you need any reviewers? Another thread was discussing when to bring in consultants, this is one of those areas where I can see the point in getting in trainers / consultants to help get you started, but the aim is more of a mentoring process rather than a get in, solve the problem, take the money, walk away kinda thing.
Tue 14 May | Martin L. Shoemaker | << As you correctly say since I'm currently planning on keeping most of the schema I'm tempted to go with the Rational XDE system and use that to extract and model the current system, I do however of course have already have full licenses for VS.NET which comes with the bundled Visio bits so I think I may start out there with a small model then flip over to Rational and try out the two way code to diagram synching (also the auto test generation sounds good). >> Visio will do the reverse engineering just fine, IF you're in Visual C++, VB, or C#. I'm not sure how they do in other environments. In fact, Visio does a BETTER job than XDE in at least two particulars: * Right now, XDE will ONLY work with C#. * XDE does not understand C# indexers. Visio does. I expect both of these to be fixed with XDE 1.1. Where Visio falls short is in code generation, again in two particulars: * When Visio reverse engineers your code, it builds a hierarchical model structure. That structure actually makes a nice way to organize your model. BUT when you generate code from that model, by default, the code is generated in a hierarchical directory structure that matches the model, NOT in the directory structure you started with. This can be overridden one class at a time, but it's the default behavior. * If you DO override the default behavior to force the code to generate back where you started, it overwrites all your changes! I can't speak for XDE for sure, because it's still too new; but with ROSE, once I learned a few simple rules, it NEVER overwrote my code. It may be that there are workarounds for both of these problems, but I've been too busy to look for them. So if you want to see the structure of your code using a tool you already have, Visio is a great choice. << Rational is however expensive (Circa $3.5K per seat) >> Yep! I love the tool, but fitting it in the budget is a nightmare. I think XDE is worth every penny. So is a 747, but most of us won't be buying one of those any time soon. << Of course it's difficult to know at the start what the problems are and it's possibly impossible for you to explain them until I've had more experience. >> Worse: there ARE problems, but I have to start using the tool to really remember them. I think the benefits vastly outweigh the problems, so I tend to forget the problems; but that particular cost-benefit equation has to be calculated differently for every individual. Problems I can tolerate may be insurmountable for your projects. << In particular I'm worried about the two way code stuff and how fragile it is along with the test suite code. Related to this is how to test multiuser concurrency and deadlock issues with a database does rational give any help with this? In particular we'll be swapping our database locking model from being 'pessimistic' to 'optimistic' i.e. moving from the lock record, update record, unlock record model to a update record, get exception, repeat/deal with exception. >> I don't know their testing tools very well. I don't have a license for them. Sorry, but I can't help you on these questions. << Also does rational deal with stored SQL procedures as part of the two way process? >> I don't do enough database stuff to be sure, but I think your stored procedures are ignored both when reverse engineering and when generating code. << (BTW I assume ER stands for entity relationships?) >> Yep. ERDs, or Entity Relationship Diagrams, are the standard way of documenting DBs. << Anyway Martin thankyou very much for your feedback and suggestions, what level is the book aimed at and do you need any reviewers? >> If I EVER finish (I'm way late), the book will introduce UML and a lightwieght process, and then it will show models of the .NET environment and framework. It will finish with a case study of applying UML and the lightweight process to analyze and design a .NET system. I will need reviewers, but I'm not sure how the publisher wants to select them. Drop me a note and I'll keep you informed, if you're interested. << Another thread was discussing when to bring in consultants, this is one of those areas where I can see the point in getting in trainers / consultants to help get you started, but the aim is more of a mentoring process rather than a get in, solve the problem, take the money, walk away kinda thing. >> Agreed. I've had some students take my course, then not do anything with it for almost a year. By that time, they forgot almost everything I taught them. They then brought me in as a consultant, and we worked together for a couple of weeks -- first week, me driving; second week, them driving, me kibbitzing -- and that time, the lessons stuck. Mentoring can jump start a process change, IF the goal is knowledge transfer, not just solving the immediate crisis.
Wed 15 May | Dave Warner | Toolset: Enterprise Architect is a very clean, well-designed tool for UML from Australia, which I've used for the past few months. It has all the UML models, forward and reverse code engineering in C++/C#/VB.Net/Java, database schema support (configurable to the nth degree), XMI import/export and superb, responsive technical support. The price is $149.00 US, and there is a 30-day trial edition. The product is stable, fast and feature rich. This is one of only two pieces of software I've bought in past three years - CityDesk was the other. Here's the address: http://www.sparxsystems.com.au
Wed 15 May | Martin L. Shoemaker | Dave, Thanks! As an instructor, I try to at least know what tools are out there, and to check them out when I have time. This one goes on the tool list for the students.
Thu 16 May | Rick | Google is your friend: http://www.ajug.org/info/tech/uml/uml.html is a good on-line introduction that gives much credit to 'UML Distilled' by Fowler & Scott. I won't repeat them here, but he lists some web references at the bottom of the page.
Stallman, Baby... | Sun 12 May | Nat Ersoz
In another thread, Tony said: Oh and as regards this Stallman character, anyone who thinks that all software should be free and the prospect of charging money for software was a crime against humanity should be burned at the stake. True, true... But, yknow... Ive been more sympathetic to RMS in the last few months as the DMCA and SSSCA has begun to take its bite into my potential hide. Software is a form of speech, and I should be free to write whatever I want for whatever reason I want. It only becomes a crime, when used as a crime. Ive begun to respect the NRAs position more and more lately. It is a reduction to least common denominatorism when the rights of a few are limited merely because the actions of many (though certainly not a majority) employ those rights in criminal actions. I can even see a clear path of the potential for my conversion from country club Republican to hacker anarchist from todays vantage point. Its not just about technological innovation versus Media companies protection - though that is certainly a political lever to be pulled for specific advantage. No, its about more than that. Its about Freedom, period. Its about the freedom of expression and the enjoyment of our constitutional rights, that as the declaration of independence states: the power of the government derives from those governed - not the other way around. And as the bill of rights states, those powers not specifically ascribed to the government reamin with the people. While on most days, Ill chose Eric Raymond (ERS) as poster boy for OpenSource (and Im not even certain about ERSs view of free vs. open software) , Stallman certainly has earned my respect for what he accomplished with the GPL: Software which was written as free must remain free. While Im not convinced that all software is free (as in speech), certainly software which was intended to be free must remain free - without condition or exception. These days, I often prefix Linux as GNU/Linux. Just to make the point...
Mon 13 May | Tony | Putting it all in perspective, this guy slept at the office (I wont do that), did'nt pay rent (I have to), was young (I am older with a family), perhaps his view has changed, maybe he would never dream of working for free now, whereas once all he wanted was a fast computer and free cans of Dr Pepper, who knows, who cares?
Mon 13 May | Frederik Slijkerman | Alex: Thanks for your explanation. I guess it's a matter of personal preference, but still, the idea that software should be free strikes me as a bit unrealistic. Oh well...
Wed 15 May | i love gnu | Actually RMS's ideas about software aren't that insane. its pretty much standard utopian schtick. However RMS is a real nutjob. I live inside emacs and my livelihood depends upon GCC so I shouldn't diss the guy, but dig up some of the old stallman rants about population control and asteroid mining to get a feel for what stallman is really like in real life.
Wed 15 May | Adam | For discussions on insanity, please See 'Zen and the Art of Motorcycle Maint' one of Joels Books. The follow up Lila also fills in some details. All I can say is I really, really like the GPL software I've been using. A lot.
Thu 16 May | Nope | adam - i could not get on with 'lila' at all (i did not finish 'zataomm' either, but that was because i had to take it back to the library). what _was_ all that stuff about the boats? some kind of metaphor, or what? i thought the ideas about cards was excellent, if time consuming.
eXtreme, life-altering pair programming | Fri 10 May | Sammy
I thought it would be interesting to point this Passage out. This spontaneous pair programming session occurred between Richard Stallman and Guy Steele. We sat down one morning, recalls Steele. I was at the keyboard, and he was at my elbow, says Steele. He was perfectly willing to let me type, but he was also telling me what to type. At the end of: [ http://www.oreilly.com/openbook/freedom/ch06.html ]
Mon 13 May | Ilja Preuß | Tony, it sounds like you where PP with the same partner for eight hours a day. I would get sick of that too - in fact I am currently in the situation of just having one partner and we pair only approximately six hours a day and need very frequent breaks. I do like pair programming *much* more when being able to switch partners every couple of hours.
Mon 13 May | Ilja Preuß | Ian, 'My personal view is pair programming is great for debugging, knocking out prototypes/spikes, and teaching newbies good practices but maybe not so good when you start to do the same things over and over again. After 100 EJBs each one started to look exactly the same when I paired and eventually we split up because we found it more productive at the time, as the project wound down.' In my experience, when pairing gets tedious, you most probably missed an opportunity to automate. For example, couldn't you have been even more productive by writing a script to generate most of the EJBs code?
Mon 13 May | Ilja Preuß | '[...] and then there are problems that are solved by cranking out gobs of code.' I *never* worked on a problem where 'cranking out gobs of code' by hand was/would have been the most effective solution - and I can't imagine one. Seriously.
Mon 13 May | Ian Stallings | Ilja, I think we did miss an opportunity to automate. We could have created a good portion of the EJB code using scripts. They are basically the same architecture and I think we actually decided on automation, but unfortunately as the project wound down but we got sidetracked by internal company problems that eventually lead to that companies demise. We could deliver solid products on time with low bug counts, but that really means nothing if you have no sales. This effected our work and I'm sure also contributed to my own malaise and it's hard to be objective in times like that. But I did carry away practices that I love to use such as unit testing everything, automating everything I can, continous integration and daily builds, refactoring, etc. It was quite a learning experience for me.
Tue 14 May | Ilja Preuß | Ian, thanks for the report!
Tue 14 May | Tim Moore | Ron Jeffries had an amusing quote on the xp mailing list a few days ago. Paraphrased, 'it's called pair programming, not pair living!' It is recommened that you're only paired during actual coding tasks. Obviously that doesn't make up the entirety of our days, so we also need personal spaces to perform other tasks. Also, it's recommended that you change partners frequently, even more than once a day. This might help lessen the partner annoyance factor. ;-)
Tue 14 May | mackinac | >>>Paraphrased, 'it's called pair programming, not pair living!' <<< The reading I have done so far (a few web pages) indicates that XPers advocate placing all developers in a bull pen or 'war room' environment. Irrespective of whether or not one is pair programming with one person continuously, there is no personal space in such an environment.
Thu 16 May | Brent P. Newhall | >>The reading I have done so far (a few web pages) indicates that XPers advocate placing all developers in a bull pen or 'war room' environment. Irrespective of whether or not one is pair programming with one person continuously, there is no personal space in such an environment. << From the experiences I've read of, the 'war room' is not the only space in the building, though. There are cubby-holes or cubicles or personal offices or whatever around and/or outside the war room. Developers can break off into these private areas. Either way, we're arguing theory when the proof is in the practice. XP is about aggressively trying out new practices for improving software development, even if they may not work. Whether it's better to keep programmers together constantly or to let them break off is moot if one is unwilling to attempt the basic principle. IMHO, at least.
Thu 16 May | mackinac | >>>From the experiences I've read of, the 'war room' is not the only space in the building, though. There are cubby-holes or cubicles or personal offices or whatever around and/or outside the war room.<<< I reviewed a report of a study on a warroom environment. It did mention that hotelling cubicles were available. These at least provided a place to make phone calls. Although the cubicles provided PCs, developers would come in off hours to do work when they wanted a quiet work environment.
.Net without change the fonts for diferents DB's | Tue 07 May | Fabio Hayashi
Is it possible construct an application whithout depends a database? For example: Construct an application in Dot Net and this application can execute with Oracle, SQL, Sybase without change the fonts.
Mon 13 May | Roland Kaufmann | Store the name of the driver (e.g. System.Data.OleDb.OleDbConnection) and the connection string in the Registry. Load the driver class using reflection and use the constructor that takes a string: the connection string. That gives you a generic IDbConnection reference that points to the specific driver. Use the CreateCommand() method to create commands and the ExecuteReader() method to get IDataReader objects from the driver without knowing the real implementation. The only snag with this approach is that you have to confine yourself to writing portable SQL (which may not be possible for all queries) and perhaps limit your support to drivers that have a sensible interpretation of escape codes.
Thu 16 May | Will Glass-Husain | Hi, Don't want to get into a religious war here, just reporting on one successful experience as a user of the Torque library. But a quick response: Chris: For single queries that return a set of records, there is only one call to the database. The caller receives a List of objects, each one of which maps to a database record. (and has been preloaded with the record data). The exception is when a record references a key in another table. Torque will automatically retrieve the cross-referenced record with another query when you ask for the related record. (this is probably what 'you lose' is referring to). For a good description of how Torque works, read the Torque Tutorial. Skip all the configuration details for the moment, and note the clarity of the code that reads/writes to the database. (this is what I like). I'm sure there are other good systems out there... however I've gotten good productivity from this one. On a separate note (no connection to Torque) Scott Ambler has written several excellent white papers on mapping objects to databases. The Design of a Robust Persistence Layer For Relational Databases Mapping Objects to Relational Databases As a minor point in the paper he claims that traversal queries, (which Torque implements as noted above), are actually more efficient than joins.
Thu 16 May | Will Glass-Husain | oops, messed up on the hyperlinks. anyone know if I can edit a post? WGH
ADO vs. ADO.Net | Wed 20 Mar | Joel Spolsky
Today I spent a pleasant hour amusing myself with Chapter 13 of Bill Vaughns ADO.NET book (http://www.amazon.com/exec/obidos/ASIN/1893115682/joelonsoftware). From two miles up, it sounds like ADO.NET is a giant leap backwards from ADO (not that ADO was all that hot). Then I tried playing around with it and discovered that the sheer number of concepts you need to do a simple SELECT is much greater than ever before. DataSets, DataAdapters, DataTables, ... it seems like the minimum number of things you need to memorize to be able to do your garden-variety SELECT, UPDATE, DELETE, and INSERT has gone up a lot since ADO. So I thought Id ask here -- am I missing the point or is it really that bad? Are any .NET developers using the old ADO for performance reasons? (Please, lets not let this degenerate into random .net religious chitchat. I just want to hear from developers who are experienced with ADO.NET vs. ADO in particular.)
Thu 16 May | Eddie Frederick | I too am very interested to see if anyone has made a port of the Data Access Application Block over to Oracle. I began the process quite some time back and haven't had a chance to finish it. One disadvantage is there is no native way to dynamically discover the parameters for a stored procedure in Oracle. I had to manually build a stored procedure in the database and use that call to do the dynamic discovery. I also ripped out all of the XMLReader code due to Oracles lack of native XML support in 8.i. If anyone has had great success with porting the DAB to Oracle please let me know!
another missed world | Tue 07 May | karb
Custom software. All software built for governments would fit into this category, as would (in general) software written for a specific company by another party. How is this different from internal software? Well, the standards are much higher. Also, competition is usually involved to procure the contract. Finally, customer satisfaction will directly affect future procurement as well as (in government cost-plus-award-fee contracts) profits on the current contract. (this is by no means a complete definition, just a few points off the top of my head) It is also different from consultingware, because the software is usually built from scratch. Im surprised this was omitted, because I was under the impression that this was the world most programmers inhabit most of the time. :) On the games front : the no-update thing definitely applies to console and arcade games. However, PC games (to the chagrin of PC gamers) occasionally have severe problems in early versions, and users are forced to wait for patches to alleviate problems. And, in the case of online games, users are usually _forced_ to patch their software to the current version to be able to play online.
Wed 15 May | Joe AA. | 'The stuff written for the man often needs to be of very, very high quality, since it performs some mission critical task' Conformance to red tape doesn't imply a high quality... and I would consider business programming to be mission critical as well. For that matter, if government software fails, we'll just get our taxes raised to pay for it. Businesses can go out of business if they tried to raise prices too high. I've primarily done the internal development route. I have to agree with Darren. Consultingware... essentially a 'product' developed with the assistance of high priced consultants at one company and sold (with customization required of course) to another, in my experience has been the lowest quality I can imagine. Internal development quality seems much more dependent on the 'attitude' of the development staff and the pride they take in their work. Lower quality will always be delivered by people without some sort of primary stake in the success of the software.
enough already Joel. | Sun 28 Apr | Michel
Do you read what you write? Choices reduce usability! do you think you are contadicting yourself? Bloatware-do you remenber what you wrote on bloatware? The more options the better, yet choices are bad. You might think the two are different but when you have a zillion number of features and you are not sure which one to use, thats the same as having many choices. Soap, do you really know anything about soap? You just learned and wrote your first soap program a few month ago. Joel reaads about something, then write his toughts without really having any experience thinking hes so smart then learn it and contradict himself.
Wed 15 May | Joe AA. | I think I buy at least the 'long term' study results. The short term might have a builtin selection error... like still in the learning/exploring of the app curve. Personally, I dislike bloatware. I also dislike the bloat caused by excessive runtime requirements - even if it is 'built into the operating system' (sic). There is a house of cards being built... a application requires a ton of multiple interrelated third-party 'products' merely to do a simple 'hello world' type of functionality... and it probably requires specific versions of those products (like java runtime) to accomplish it. For what? All in the name of increased developer 'productivity'? All that seems to mean with the quality of applications these days is that a mindless coder can put out the same junk faster than he did before. Hey, after all, that third-party card collection has existing bugs that the coder doesn't have to recreate as features!! I have found that people tend to believe because something exists (like in code) that implies that it is necessary and needs to be there. I hope refactoring catches on in a big way!
One Dimensional usability | Sun 12 May | Halcyon
For those having trouble grasping how academics (usability researchers & engineers) vs consumers (those who actually use the product) view usability, I recommend you the little-known, but nevertheless excellent thesis by Turkka Keinonen: One-dimensional Usability - Influence of usability on consumers product preference http://smart.uiah.fi/home/smart-1Dusab.html Quoted from the abstract: The designers evaluate products according to the reference model. The users and non-users recognise the importance of usability on a general level, but their search behaviour does not allow a meaningful comparison of the user interfaces. Only a fraction of their verbalisation is related to logic, ease-of-use or presentation, and they do not recognise obvious usability defects. Their usability related product evaluation is simplified by the following heuristics. Feature heuristic refers to consumers’ tendency to regard the number of features, or the existence of spesific features as an indicator of product quality. The one-dimensional usability heuristic omits the influence of user interface design. Only the number of buttons and display elements are applied to assess two related usability concepts – versatility and complexity. “It depends on the way you use it, one needs a better one, another a simpler one, but the quality is the same.” Products are either easy to use with few features, or they are versatile and difficult to use. The results support the twofold idea of usability. Apparent usability as expected by the consumers and actual measured usability are distinct dimensions. The design for usability has to consider both. Its conceptually heavy, do not expect to surf through it in 15 minutes, unless youre profoundly versed in HCI jargon.
Tue 14 May | andrew | It sure is heavy. I am versed in HCI jargon and that thing's a mutha. It's a pity that it seems like a good concept, but the author is 1) clearly writing for an academic audience and 2) simply not a skilled writer. I don't mean that the writing's bad because the author may not be a native speaker. I mean that this is Bad Writing, full of needless complexity instead of lucid clarity. Can anyone summarize the most interesting and applicable ideas here?
Ant and Make - Why did Ant win? | Thu 09 May | Alex Moffat
I have a theory about this. Well, if I didnt I wouldnt be posting would I:) It attempts to explain the success of Ant using the framework of the Innovators Dilema by Clayton M. Christensen. What Im looking for is constructive (or otherwise) criticism of the explanation and your view on why Ant is now the build tool of choice for Java projects. I think its pretty interesting that a new tool like this can take over the ecological niche of an existing and much more fully featured one. A possibly even more interesting question is, Is it possible to conciously design a program and surrounding ecosystem so that you can deliberately repoduce Ants success? Anyway, heres the theory http://www.zanthan.com/itymbi/archives/000037.html
Tue 14 May | rwh | One really annoying problem with 'make' for Java development is that the '$' syntax for Java inner class files conflicts with make's variable syntax. And then it conflicts again with Unix or Cygwin shell variable syntax.
Tue 14 May | Nat Ersoz | '$' should be disallowed in any syntax. What a butt-ugly thing to have in anything outside of double quotation marks...
Tue 14 May | Nat Ersoz | Oh, except for Makefiles, '$' somehow fits the context...
Shrink-wrap Development | Tue 07 May | Marc LaFleur
I’ve been developing shrink-wrap software for a little of 6 years now. In that time I’ve come to learn the true meaning of being “alone in a crowded room”. There are thousands and thousands of developers out there. However, if I manage to meet more than one shrink-wrap software developer in a year, it’s a miracle. This fact alone makes development of shrink-wrapped software one of the most difficult tasks in the software industry. We lack any true source of information, assistance, or community. When most developers have a problem, they post a question to a newsgroup and quickly receive an answer. When I post a question to a newsgroup I’ll be lucky if anyone even understands the question, let alone have an answer. One good example came up recently. We are investigating changing the database we use for out flagship application. The current system we use has some very convoluted (and expensive) licensing issues. It seemed obvious that taking a look at Microsoft SQL Server (really, the free MSDE product) would be worth some time. We had a number of questions that came up (how do we handle schema changes, how can we automate deployment, etc) that are never asked in the internal development sector. All of the documentation and all of the books available are only geared to the internal developers (or occasionally the web developers). The problem is, I don’t care how John Hancock or BMI handles a schema change, I care how Intuit handles a schema change. What I would like to see is a shrink-wrap software community. A place (website) where developers that work on shrink-wrapped software packages can share experience, ideas, and solutions. While someone rightly pointed out that only 10% of the industry fall into this category, it is still a heck of a lot of people…. And Joel, yet again you hit the nail on the head. So far you are the only one I’ve found that writes worth while articles for us shrink-geeks.
Tue 14 May | X. J. Scott | <> Scott, by 'software methodology discussion groups', do you mean to include this one? This of is one of those groups right? Just curious -- am I the exception to this 'never' rule, surely not the only one here? Actually I had sort of assumed that a lot of people here were selling or in control of their own products because of the nature of the discussion board... aren't most of us in the same general corner as Joel and that's why we're here? Anyway, you may be right about the 'new shrinkware' -- seems like a lot of good niche software out there is made by 1-3 people. And not all of us are competitively restricted by the Big Corp. since there is no Big Corp. Also few of us making these sorts of things even compete with each other at all since we make different things. As for myself, I keep up regular friendly email contact and 'share secrets' (some but not all) with my two 'most threatening competitors' as the benefits outweight the disadvantages in my opinion.
VB faster than C++?? | Tue 07 May | Albert D. Kallal
There was a recent thread talking about speed of C and C++. I find that VB can actually run some things faster than C++ I just tried the following loop in VB (version 6). The loop is to 2 billion. When I turn off all the error checking stuff to optimize speed in VB, it runs very fast. The loop runs in about 7 seconds. (actually 6.8). I am using a pIII 600mhz. The vb code was simple dim i as long for i = 1 to 2000000000 next i In C++ (version6), I can’t get the loop to run in less then 20 seconds. Anyone have a suggestion as to how to get the following loop to run faster? If I turn on all the optimization options, then the loop of course does not run, since the compiler sees that nothing needs to be done! If I change the long t2 to Volatile long, then the loop does run, but again it is *much* slower than VB. Any hints how to get C++ to run this faster than VB? My only point here, is that one would expect a simple loop in C++ to be *much* faster. Of couse a simple little loop does not tell the whole story either...but I am new to C++, and was very surprised to see that VB6 was able to run this loop faster than VC6 int main(int argc, char* argv[]) { long t2; char j[50]; cout << Type go, then hit enter to start << \n; cin >> j; for (t2 = 1;t2 < 2000000000; t2++); cout << “done” << \n; return 0; } Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Mon 13 May | Albert D. Kallal | Gee, the source for the bench marking! That sounds so official. These are just simple looping things. However, the point made here is that we are simply executing a few instructions in VB, or C++. This does not tell the story, but it certainly demonstrates that C++ is not faster than VB due to executing some simple instructions. It (*can* be faster because it is a different tool, and allows one to interact with the computer in a different way. People should not be shocked that VB run this fast....as it not why C++ has the upper hand. I also mentioned, I am new to C++, and thus don’t know to really speed it up. Anyway, the loop code was posted. The 2nd VB stuff (that was supposed to be slow, and again ran faster via VB then the C++) is re-posted also. int main(int argc, char* argv[]) { double a[3]; long i; long j; char myin[50]; cout << 'type go, then enter to continue'; cin >> myin; for (j=1;j < 20000;j++) { a[0] = 1; a[1] = 1; for (i=0;i < 1000;i++) a[(i + 2) % 3] = a[(i + 1) % 3] + a[i % 3]; } cout << 'done' <<'\n'; return 0; } Here is the VB Dim ti As Single Dim a(0 To 2) As Double Dim i As Long, j As Long ti = Timer For j = 0 To 19999 a(0) = 1 a(1) = 1 For i = 0 To 999 a((i + 2) Mod 3) = a((i + 1) Mod 3) + a(i Mod 3) Next i Next j MsgBox Timer - ti MsgBox CStr(a((999 + 2) Mod 3))
Tue 14 May | Troy King | Albert, you still missed some of the point. Given that VB and C++ are both compiled languages, if you're able to compare anything, at best it will be how well each compiler generates code. As it was pointed out earlier, if you actually build a release-optimized image from your sample code, every decent C++ compiler will remove the useless loop anyway. If you're coming over from the world of VB, and you're looking for night-and-day speed differences, try PowerBasic ( http://www.powerbasic.com/ ). It has BASIC syntax, provides all the datatypes used by the Win32 API, builds the smallest, fastest Windows apps this side of hand-optimized Assembler, and doesn't require an external runtime. It also has built-in keywords for regular expressions, TCP/IP, and other nifties.
RealNames and their MS "contract" | Mon 13 May | David Fischer
I skimmed the essay Joel linked to, regarding RealNames and MS terminating their contract. It seemed to me that the contract RealNames had with MS was to pay MS large sums of money and in return, MS would let RealNames write code for them. Im not a business guy, but that seems kinda backwards. Dont you normally *receive* payment for services rendered; not pay to render services? The rest of the essay didnt make much sense to me. I didnt really follow his whine of reasoning.
Mon 13 May | Chad Hulbert | This seems akin to a store paying to set up shop in the mall. RealNames payed for a primo location, at which they could make enough money to cover their 'rent.' Wouldn't have been my first choice at a business model...
"More Programming Pearls" by Jon Louis Bentley | Sun 12 May | Evgeny Goldin
I have authors second edition of Programming Pearls and consider purchasing an old copy of More Programming Pearls. Did anybody read both MPP and PP 2Ed ? Are those books equal ? Does it worth having both ? Thank you !
Mon 13 May | Evgeny Goldin | Thank you ! That's exactly what I hoped to hear ;)
the new economy and pair programming | Fri 10 May | baked woven wheats
Hi, I am currently living the internet dream: sitting at home in my underpants programming, for pay. I have an LLC with three other people, none of us see each other in real life, ever. My pal and I who do most of the programming (the other fellows are more systems type guys) want to try out a modified style of pair programming. Are there any good tools I should check out which will allow my programming partner and I to try out remote pair programming? Ive looked into groove and that isnt really what I want. Maybe some weird VNC hack, where one person could spy on the others screen? Anyone else tried something as hare-brained as this? thanks!
Mon 13 May | Sammy (needs to wake up) | Unclear. xp examined (the blue one) has at least two chapters on this, but talks about dubious-sounding tools like 'TUKAN.' The TAO Group, which creates a corba orb, apparently uses a hand-rolled videoconferencing tool. I think you want to get in touch with these opensource projects which use XP. Best to ask which ones exist on an XP forum. We will have to wait for programming tools to catch up with groupware. Or we can look at the roots of pair programming. I believe it's a way of enforcing code reviews with nearly 0 administration. More like using a quick read-eval-print loop where you get instant feedback on your braindead design decisions. So if you have a culture where there is a constant awareness of each others' code.. especially since there's 3 of you, you could Improve on most peoples' xp practices. Maybe you need a culture where kibitzing is a good thing. In distributed dev, I can see fights happening, where they don't in real life. Good luck, I think things like this make dev much more satisfying. Always need to improve or you die...
.net again, for a change | Tue 23 Apr | Rob Moir
that 20 MB runtime is a real showstopper. Yes, this is an advantage to Delphi. Im starting to suspect that Microsoft doesnt care -- they are perfectly happy to have a development environment that is excellent for internal/corporate applications, where they dont compete, but borderline useless for shipping, commercial, shrinkwrap, where they do compete. Or maybe they dont care because everyone should be using XP or W2K at the very least according to MS, and it wont cost much to bundle the run time in as part of XP SP1 or W2K SP3.
Mon 13 May | Banana Fred | bold test slanty