last updated:02 Dec 2002 14:37 UK time
Joel On Software Discussion Forum
JOS Statistics - Recent Comments
(Comments added for week ending Sun 01 Dec 2002) | View Other Weeks
Palm programming | Sun 01 Dec | PC
Does it sound like a good idea to learn Palm programming? I do web programming and have possible requests for Palm applications. I think it might be hard to learn but dont mind as long as theres a lot of demand for it. I know C but dont have any real business experience with it. I have a feeling I can learn fast enough but then again wont know until after spending time on it. In other words, my question is: is there really a lot of demand for Palm applications, is that demand likely to continue for long, and can someone who is not used to worrying very much about memory limitations learn it in a reasonable amount of time?
Sun 01 Dec | Agnus Moorehead | I think the latest pricing moves by Dell in the PocketPC arena, assuming they are copied by the other PocketPC hardware vendors, is going to pretty much kill of the Palm hardware platform in the next 12-24 months, except (maybe) for the extreme sub-$100 Palm throw-aways. Given this hypothesis, you might want to consider learning the PocketPC platform instead. Get this - the tools for PocketPC are all free from Microsoft. I've developed for both Palm and PPC, and with the recent developments in PPC hardware, I don't see much of a future for Palm, so any future PDA development for me will be for the PPC.
Sun 01 Dec | prograndma | I primarily do mac OSX programming, and server-side java programming. I am working on something for a hospital, and want to create a handheld version of the client. And that dell device is just what I need. this might be more related to Marvin Motherboard's post, so I apologize for redundant questioning. 1) What tools do I need? (Agnus says they are free. What exactly should I download?) 2) What type of dev box shoud I get? I can theoretically spend about $2K on a dev machine, but am paying for my experiment out of pocket , so I would like to minimize costs. thus if I can get what i need for $599, great! I get paid a lot and can write off equipment, so I don't want to get a pile of crud just to save money, but I will ONLY be using this machine for pocketPC development. Any suggestions are appreciated!
Working remotely without pain ? | Sun 01 Dec | Evgeny Goldin
Hello, There are many applications for remote connections. Did any of you succeed to do it without noticing the difference ? I dont mean *any* difference (say, diff in colors and resolution arent important), what I actually care is diff in speed. So far, a couple of programs I tried all gave a noticeable and painful delay for all my actions ... What about the built-in service of Windows XP ? What Im trying to achieve is to work (and not mimic working) remotely from the laptop sitting inside the LAN. The network connection is wireless. Is it possible or theres no chance ? Thank you !
Sun 01 Dec | Stephen Jones | Wireless netwrk connections are slow. The old standard was 1Mbps and that was never achieved. To make things worse the speed drops drastically as you move away from the base station. My advice is to get a long run of CAT5 , two RJ45 connectors, and borrow a crimper.
Sun 01 Dec | Simon Lucy | Current wireless products are much better, though it always depends on the environment. You should get in a reasonable environment the quoted 11Mb using 802.11b.
Sun 01 Dec | Stephen Jones | The tests I've seen for 802.11b suggest an average much, much slower than the quoted max. The same roonm as the base station might get you the max speed. As you said, it all depends.
Sun 01 Dec | Ryan LaNeve | I get a full 11Mbps with my D-Link wireless AP as long as I'm within 50 feet or so. In other words, it pretty much only saves me the hassle of a cable running across my floor. It goes about 200-300 feet before complete signal loss. But as long as a signal is there - no matter how weak - the Remote Desktop Services (aka, Terminal Services) of Windows XP Pro work just fine, assuming the settings are tweeked correctly. I use RDS over a VPN connection with a cable modem to work from home and, other than being limited to a single monitor with RDS, there's no difference from being in the office. Having said that, I actually don't use RDS to do anything other than administrative type work. All coding I do running locally so that I get back my second monitor. The only issue there was using a revision-control system built to work over TCP/IP (that is, getting *off* of VSS). Sure, the initial 'Get Latest' isn't as zippy as being in the office, but it's still more than adequate. And once that's complete, the remote connection is no longer needed until check-in time.
Sun 01 Dec | Nick Hebb | I don't wear a pyramid hat made of tin foil, believe in conspiracy theories, and all that - but on the subject of wireless I've got to admit that I'm a little paranoid. It started out when a former co-worker swore he could 'feel' the wireless signal in his home network. It freaked him out, so he reverted back to a hardwired network. I looked into the subject, and a study commissioned by the Canadian government found that a small percentage of people could feel the signals. Another study (published in Nature, I believe) found that the use cell phones will produce a temperature elevation in the brain. The temperature elevation is slight in adults, more pronounced in teenagers, and significant in young children. The long term effects are not known. Since I have young children, I decided against a wireless home network. I'm not trying to spread my paranoia, but I'm not sure that the march toward onmnipresent wireless signals a good thing in the long run.
Sun 01 Dec | Nat Ersoz | The reason that cell phones can elevate skin temperature is that it is so close to the skin. Since radio waves dissipate as 1/r^2, where r is the distance between the transmitter (phone) and receiver (skin), the proximity of an 802.11 wireless transmitter (30 mW) to your face is far less than that of a cell phone (750-1000 mW). Bottom line: I'd doubt anyone's claim that they can feel 802.11 E&M waves when they are in the vicinity. In fact, 'the vicinity' is much larger than you might think. I went 'war driving' several times in the last month, just to see what I could see. Put the laptop in the car, put my Cisco card in 'listen mode' and fired up 'AirSnort' http://airsnort.shmoo.com/ . I found that while driving my kids to football practice I encoutered on average 3 wireless access points per mile along the drive. There might be more, but I was driving at 30-40 mph, so I may have missed some along the way. About 1/3 of those were WEP encrypted, the others were in the clear. So, in other words, as you drive along the streets in your cars, you're encountering other people's 802.11 wireless stations. Does your friend feel those? Additionally, I was trying to crack my own WEP at home, just to see how vulnerable the known 'initialization vector' vulnerability is. I ran many FTP downloads to get the packet capture size up, but never found any 'interesting' packets (see the airsnort page for the definition of 'interesting'). It turns out that thought perhaps a bad design, the 802.11 vulnerability is not so bad as reported - at least when used as a home network.
Sun 01 Dec | Albert D. Kallal | There has been a number of threads here. As mentioned, by far and away the best solution is windows terminal server. That is the RDP protocal. It is also the same stuff used for win xp remote support. I use it daily, and it rocks. As mentioned in this thread, you can hardly tell the difference. In other words, anything faster that a 56k modem is great. TS is even workable on a modem. Since the wireless network is quite a bit faster, then 56k, then RDP is ideal…. If your server is running IIS, then you can actually web-enable any software you have with a few mouse clicks using this technology! (why bother re-writng for the web!). Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Sun 01 Dec | Ryan LaNeve | Sorry, but I have to chime-in on something... Running a desktop application via Terminal Services/RDP does not, in any way, 'web-enable' the application. In my opinion, to say an application is 'web-enabled' because it can be run over TS/RDP is a gross misrepresentation and belittles the work of those who do actual conversions from desktop to browser-based application. I've sat in far too many product demos where the sales rep (or even technical rep in some cases) will utter the phrase, 'it runs through a browser', when in fact they're doing nothing more than initiating the TS/RDP connection using the web-interface for TS/RDP. I now walk out of such meetings when such a rediculously misleading statement is made. How can I possibly believe anything else the person says from here on out? Don't get me wrong - I love TS/RDP, and I certainly use it to run traditional desktop apps from a remote location. But never in a million years would I say 'I 'web-enabled' the app'.
Why some programmers are 2+ times more productive? | Sun 01 Dec | Mac
What do you guys think of this article? The programmers stone http://www.reciprocality.org/Reciprocality After spending several hours reading all the chapters, I still cannot exactly grasp the important points. If any of you can elaborate itd be greatly appreciated.
Sun 01 Dec | Mac | I don't know why the tailing '/ro' were cut off. The full path is http://www.reciprocality.org/Reciprocality/r0/
Sun 01 Dec | Scot | There is not much new under the sun. These ideas have been around in different belief systems / religions for a long time. From what I can see, there are many half-truths followed by faulty conclusions... or should I say non-sequiters. IMO, there is a reason it is hard to understand... and the problem is not with you.
Sun 01 Dec | J. D. Trollinger | Although 'M0' keeps coming up and seems to be some kind of key concept, I can't find it defined or explained anywhere on the site. The whole thing seems like a bunch of gibberish to me.
Sun 01 Dec | X. J. Scott | Hoo boy! One of my favorite sites... breaking into the domain of jouel's word. When World's Collide! (It's like that episode of Seinfeld where George didn't want his girlfriend to meet his other friends.) I admit this guy sounds like a crackpot but I read all his stuff a while back and I like it. The way he presents it makes it sound kooky, particularly with this 'M0 entity' thing, but I thing it's a sound hypothesis worthy of further exploration. His central thing is that people are socialized to become addicted to dopamine, and hence to 'boredom products', meaning things being the same today as they were tomorrow. People don't like change. They are threatened by it. They will kill to stop change. Why is that? He says because we are socialized this way. THe process through which we are socialized is called 'the M0 entity' which he talks about liek its some sort of supernatural being with a mind of its own, but its really just a name to describe the idea that the process itself is self-perpetuating. I don't think he actually believes the process is a 'entity', just that describing it as one conveys more of the idea of how powerful the process is by virtue of it's addiction. Anyway, so he proposes that when things don't change too much, you get happy due to elevated dopamine levels. He thinks you get addicted to this surge of opiates - just like a heroin addict. Children who ask too many questions of the teacher threaten the teacher's state of boredom and routine and thus must be medicated with Ritalin. Engineers who ask too many questions threaten the company's bordom state and are laid off or run out of town or put on Prozac. Politics as usual prevails. People are asleep. Are we attacking iraq? Well then we must always attack Iraq. Are we not attacking Iraq? Well then we must never attack Iraq. Things must stay the same. Internet chat rooms must stay the same. Anyone who threatens the internet chat room's stasis must be driven away. Blah blah blah. Anyway, he suggests some ways in which his hypothesis can be proven correct or disproved -- he is not married to his conjecture, he just thinks it's interesting and explains a LOT. As do I. I think it's a really cool idea. Yes, the m0 thing is explained in there somewhere but I too had a hard time finding it. It took me a while to digest all the stuff and I got rather excited about it. It seems fighting the M0 entity means not backing down from fighting BS and flushing your Ritalin and Prozac down the toilet. Maybe spending less time on the internet and playing video games. Maybe taking up swords and overthrowing the government. Who knows! It's worth looking into and I found it a really exciting idea.
Sun 01 Dec | . | much of that website is pure crackpot, but a lot of it is very interesting. good link. not sure if labelling people as 'mappers' and 'packers' helps the author's case, but his examples do seem to correspond to those folks who have a 'clue' and those who don't, within my sample space.
Sun 01 Dec | Intern | there are some interesting ideas, but serious problems with that author's 'research.' For instance: From http://www.reciprocality.org/Reciprocality/r3/index.html: 'Little Known Fact: When he was a student, Neils Bohr's tutor was Soren Keirkegaard, the creator of existentialism, who personally bit him on the neck and turned his mind so far inside out it nearly went all the way around.' Soren Kierkegaard died in 1855, Niels Bohr was born in 1885.
Sun 01 Dec | Albert D. Kallal | What an excellent question. (but for sure a not a good website!!). I have to admit, that Peopleware and a good number of books talk about how a top developer is MANY TIMES productive as the others on the team. However, none of those books actually makes an effort to understand why! Is there any traits that developer has, or any methods that the developer uses that could analyzed, and trained / explained to other developers? One could perhaps just dismiss the whole issue, and just assume it is a issue of intelligence. Just like some students perform much better then other students. Is there any reasons beyond just better intelligence that makes a top student better then lessor performing students? It would bet that it is probably is just one of intelligence. However, there still may be some things that can be taught. Is there a list of habits, and approaches that top notch developers use? By the way, the numbers for studies show that on software teams there is a MUCH larger variance then just two times. In fact, several studies show 28 times the difference. That means one developer working for 1 month will produce 28 months worth of work compared to other developers. That is over 2 years!! In fact, this means often that 1 developer can output more work then whole rest of the team combined. Gee, I certainly for one would like to find out if there is anything that can be learned from these kinds of talented star developers… Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Sun 01 Dec | Matthew Lock | I think being productive in programming equates to knowing lots of little shortcuts which add up to a lot of time saving. One of my colleagues refuses to use regular expression and recently spent 8 hours building a routine to validate an email address in PHP. I built the same code using a regular expression in 30 minutes. In this case I was 16 times more productive than my colleague.
Sun 01 Dec | Gregg Tavares | I agree with Matthew's point. The more stuff you know about the more possible *quick* solutions you have at your finger tips. I'm not a Java programmer but my Java friend who is very fast says that the main thing about Java is knowing all the libraries inside and out because more often then not there is already a library that already does what you need. Obviously that's not all of it but it helps.
Sun 01 Dec | Intern | 'It would bet that it is probably is just one of intelligence. However, there still may be some things that can be taught.' I wasn't aware that the world has settled on standard definitions of 'intelligence.' ;-) I know many very intelligent people that completely suck at computer programming. I do think the reciprocality guy might be on to something or other, but since so much of what he writes is anecdotal, sketchy, false, or nonsensical, you kind of have to discredit the whole enterprise. The recent fringe psychology trend (which isn't so 'fringe'...it is mentioned in many mainstream articles) of linking attention deficit disorder and autism with attributes necessary to be a good programmer are suspect at best. I know people diagnosed with attention deficit disorder, and they would not make good programmers. I know some very good/productive programmers, and they don't seem to exhibit any ADD symptoms. Probably 80% of what it takes to become one of those 28-times-as-productive programmers is just caring enough about your work to be that productive, and continually improving yourself so you can be that productive. I don't think that figure is unique to programming. There are surgeons who are 28 times better than other surgeons. There are writers 28 times better than other writers. There are pro basketball players (Michael Jordan) who are 28 times better than other pro basketball players. People have looked into this type of 'genius' performance in the past, and have narrowed down a lot of the variables to simple 'desire' and 'practice.' Check out http://www.gladwell.com for an interesting article about 'physical genius.'
Sun 01 Dec | T. Norman | It all comes down to training and talent. Other endeavors have people who are 2-10 times as productive as the average Joe. That's just the variability of the human being. For example, most people cannot run a single mile in 6 minutes. Yet there are hundreds of marathon runners who can run 26 consecutive miles at that pace or faster. In basketball, some players average 2 points a game, and others average 20+ points. Some people can play chess against a dozen people simultaneously and beat all of them. There are math problems that can be solved by some students in a few minutes while others will take hours or never solve it at all. What is interesting is that the most productive programmers (in terms of time to complete a given task) tend to write the least number of lines of code, and the number of lines of code per unit of time does not vary much from programmer to programmer. The reason the superprogrammer is so productive is not that he/she is churning out ten times the lines of code per day; it is that they use far fewer lines of code (in a proportionately smaller amount of time) to accomplish the same task.
How to start oversea project outsourcing? | Wed 27 Nov | Jack
I have been a consultant for 5 years with good tracking record and still employed in US. But with no sign of job market turnaround and probably more and more project outsourcing to foreign countries (simple reality of capitalism), I am seriously entertaining the idea of jump gun (proactive!) – to work as liaison/project management on outsourcing projects. Recently I have been corresponding with a consulting company that also wants to do oversea outsourcing (again, simple reality of capitalism). I want to equip myself with more knowledge when the discussion gets more serious. Can anybody provide me some info on how to get started with oversea project outsourcing, or where I can find information? Any information (legal, tax, ...) would be helpful. I myself is Chinese citizen. Many thanks and good luck to you all.
Wed 27 Nov | -j | I really hate this topic. With high unemployment in the US Tech area right now, why in hell should you do this? The idea behind capitalism/business should not be greed (as it appers to be here) but creation of valid long term sustained economic growth. Small companies in the US support 90%+ of the economy that's feeding you!!! Small compaines that create jobs that create familes who buy cars that need homes, ad nauseum. Too many people in my backyard (and that poor guy in Jacksonville with 1 pack of balogna, I feel for ya, and hang in there) are hurting for jobs right here. Like their skills aren't good enough - you're just too greedy to help them out. Sure your profit margin will be lower, but that's what's so screwed up now. Be a human above all else, and possess compassion for those around you. Then get yourself a lawyer who specializes in international contracts and bring that work back into the US! My 0.02
Wed 27 Nov | Jack | I don't think I like this topic either, but I am nobody and I can't change the fact that more and more companies outsource projects overseas. I just finished a two-day training of WSAD5 and half of the trainees are from Satyam. They are going to get my job sooner or later. And the company's CIO already recommended all software projects to be outsourced (domestic or oversea). I can't make much difference for the sociaty and I am not a civil rights activist, I in some way just want to see what I am up to.
Wed 27 Nov | anon | You may hate the topic, but ignoring it won't change anything. In addition, it is unfair of you to pick on Jack. Jack was just stating how the markets work, and trying to figure out how to protect himself. Smart move, Jack. I expect I will lose my job and that I will have a very difficult time finding a new one, partly because more and more work is being outsourced overseas. This is similar to what happened to the textile workers. I am doubtful that programming is going to be a viable profession in the U.S. 10 years from now (except for very small niches). I suppose I will need to change careers. I have no idea what I will do. For the sake of argument, let's assume you are right. Companies shouldn't be so greedy. The reality is that they are. The philosophical and moral questions you raise are interesting, but are not practical. Companies are greedy. Companies have always been greedy. Companies will always be greedy. Companies will try to save costs. The direct costs of programmers in China, or India are one-tenth of the costs of a programmer in North America, Western Europe, or Japan. Therefore, companies will outsource to China and India. You may not like that. I don't like that. I don't see a viable way to prevent it. The next step is to try to figure out how we can be relevant. Jack has the right attitude. Apparently, there was a book written in the early 1990's on this topic by Ed Yourdon: 'Decline and Fall of the American Programmer' http://www.amazon.com/exec/obidos/tg/detail/-/013191958X/qid=1038433972/sr=1-1/ref=sr_1_1/002-9150676-6564040?v=glance&s=books From the summary on Amazon, I gather that Yourdon believes that the only way for American (Western European and Japanese) programmers to stay relevant is to improve the quality of their code. Would someone who has read his book care to comment? Based upon what I have seen of management decisions, I don't think most companies care about quality. Most companies treat programmers as grunts. My experience is that most companies want programmers that can bang out code as fast as possible. The result is unmaintainable spaghetti code, but it was cheap to develop. Therefore, I don’t buy Yourdon’s solution. I’m sorry your thread was highjacked Jack, but it is an interesting topic. I know this may be another emotional topic, but please let’s keep things professional and polite. Please take another moment when replying to make sure you use reason, not emotion. I thank you.
Wed 27 Nov | mackinac | Yourdon seems to have changed his mind and later wrote 'Rise & Resurrection of the American Programmer'. http://www.amazon.com/exec/obidos/tg/detail/-/0139561609/ref=pd_bxgy_text_1/002-2410317-2533617?v=glance&s=books But I have not read either one.
Wed 27 Nov | ... | Probably the lead role will go to westeners, with cheap labour doing the grunt work. At the moment industry has a notion about software development that has been created by westeners developing software. What industry does not know is the effect of different temperments of the Western and Eastern software developer. Who gets going when the going gets tough, who do you think? When there's nobody else's idea to steal and you've gotta do it yourself, who will do it first? Overseas outsourcing will be the worst thing that even happened to IT, eventually it will be stopped for all but the most trivial of developments because in about 5 years industry will figure out that it doesn't work.
Wed 27 Nov | Stephen Jones | Dear -j, If you wish to be a racist, all well and good (though why you should expect somebody who describes himself as Chinese to take the side of 'fellow Americans' is beyond me). However, please don't try to pass off your economic protectionism as philanthropic concern for the rest of humanity. It is even more hypocritical coming from somebody in a profession dedicated to automating people out of jobs -- though as I have said on anoither thread computing hasn't even been that successful at that. Jack, as far as I can tell outsourcing to India (China is way behind in software development, but the place where all the hardware manufacture is outsourced to) and to a much lesser extent other Asian countries falls into three categories. First very basic data entry stuff; Yale, I believe, outsourced the scanning and subsequent OCR'ing of much of its library to Cambodia; the company that was given the job of checking up on the criminal records of teachers in the UK brought many educational institutions to a halt this September because it had send off all the paper forms to Dehli go be entered into computers more cheaply. There are not really many interesting openings there and the work is likely to dry up in the next ten years once the old records are online and people get out of the habit of using paper forms. The second is where projects, or software applications, are developed on their own in India. There is a multi-billion dollar Indian software industry with some pretty heavy players in it. So if you feel like competing against some pretty lean and hungry twenty-somethings, and earning a third to a quarter of the salary you get back home, away you go. The third type of outsourcing is where a company sends a large part of its project to be done by coders in Taiwan or Bangalore because they are under the illusion it is economic to have their software developed by people speaking a different language who are a dozen time zones and as many culture zones away. If you're lucky enough to find a large company that has the money to try and clean up the mess it's got itself into then great. If you are in a company that is thinking of outsourcing, then first of all tell your boss it's a lousy idea (not too emphatically but let it remain on the record) and then when it all hits the fan, put on your martyred look and explain that you were against the idea in the first place, but that for the sake of the company you will spend the next couple of years cooped up in five star hotels in tropical paradises (hint - don't let them outsoure to places like Mongolia). Anyway I'm off on holiday tomorrow to Sri Lanka, which is full of people -j thinks should not be given the chance to have a decent job. If I get an internet connection set up I'll post a few more thoughts on the subject.
Wed 27 Nov | Stephen Jones | Dear ... (by the way are theseminimalist names some sort of statement I'm missing) When you count to ten you are using the Hindi number system. I believe about 30% of the programmers at Microsoft come from the sub-continent. the best manual for Red Hat Linux was written by a Bangladeshi, and a long list of etc.s There are probalby many differences between 'western' and 'eastern' programmers, but I doubt if they have anything to do with their attitude to code. Or perhaps, as this is Joel's site, you are comparing the East Coast to the West Coast. Now there you'll have a point :)
Wed 27 Nov | nerdles | i could be missing something, but I thought the 'overseas outsourcing' thing was big about 5 years ago, and has now been discredited? i don't really think being a liasion between a fucked team of developers in bangalore and a fucked company in the US (or wherever) is really much of a step up from being a fucked developer or consultant, yourself.
Wed 27 Nov | Prakash S | SIGH! I have a feeling this thread is going to snowball into the one like the H1-B thread! Anyways, to answer the original question: Many people are trying to leverage their domain knowledge in staring outsourcing projects. Identify your domain area that you are going to work on. Then identify companies that want work outsourced, and finally find companies in India who are interested in such work. Things to look out for: . You will be the point man with respect to the domain area, and in most cases explaining the domain area to the people, you are outsourcing the project too. (I am assuming that you do not have a person proficient in your domain working at outsourcer’s site.) . Give the companies a Pilot project, see if it lives up to your expectations, and then take it from there. Give them clear deliverables, timeline, etc. If you do wish to outsource to India, I know a few companies who are interested in such work. Drop me a line.
Wed 27 Nov | Prakash S | -j The basic tenets of business of business are “make” a product for as less as possible and sell it for as much as possible. This is the basic principle on which almost all companies are based. They continently forget the social responsibility associated. With software, all things being the same, except that A charges $100, while B$ charges 5 – who would you go with? Obviously, A. Going with B is difficult to justify. More of development roles will be shifted to places like India for this reason. There are opportunities for people with very good communication skills, computer knowledge and domain knowledge in the outsourcing industries. Many people have lost white-collar jobs due to automation and more jobs will be lost in the future (See Tom Peters books, Project 50, etc). Organizations like to concentrate on their core competencies and outsource the rest. Nike does this, they research, advertise and brand. They do not own a single manufacturing unit.
Wed 27 Nov | software engineer | 'Organizations like to concentrate on their core competencies and outsource the rest. Nike does this, they research, advertise and brand. They do not own a single manufacturing unit. ' The assumption implicit in outsourcing programming is that 'software engineering' is like manufacturing, or like some other type of engineering. It isn't.
Wed 27 Nov | Prakash S | It has not got there yet, but the basics are the same.
Wed 27 Nov | software engineer | no, it really isn't. most engineering projects (a bridge, a dam, a car, a pacemaker) you design a lot of shit up front so that you can produce a jewel that doesn't change once you finish. the point of software is that it should be flexible and easily modifiable so that you can adapt it to your needs as you go along. this is not really amenable to the outsourcing model, where you ship off a blueprint and expect a 'product' to be shipped back. it works a bit better with shrinkwrap, but even then the upgrade cycle is usually so fast (3 - 9 months) such that it takes too long to communicate with a faraway team, even with the magic of the internet. even Joel, who is mr. boring engineering methodology, does not outsource, for these very reasons.
Wed 27 Nov | Alberto | Whats the difference between sitting in New Delhi coding, and sitting in your home office, 20 miles up the road coding? You have fast internet, fax, phone, copier, and of course the same stuff installed on your PC. What is different? I mean this seriously, I'm not trying to stir people up. What is different? Why does one work and the other doesn't?
Wed 27 Nov | Malcolm | I think the reality is that, given a competent programmer who can easily communicate in English there's not much difference in theory. The same types of jobs that a programmer 20 miles away could do, could be done from across the world. But in my experience the reality is much different. Successful telecommuters work in roles that respect the fact that they aren't having regular face-to-face communication with coworkers. This might mean that they are working on a very well defined, separate project (e.g. we have a driver for printer X, please write one for printer Y), are the lone supporter of some legacy system (noone else has a clue about this payroll system, so I might as well maintain it from my cabin in the Ozarks), or have some mechanism in place to ensure regular communication (e.g. Fridays in the office). Managers don't tend to use overseas outsourcing for these types of situations, in my experience. They feel that they can eliminate an entire team (and the associated costs) by outsourcing a whole project or subproject. And I think they achieve similar results as they'd see if they sent half of their dev team 20 miles down the road, and added a 1/2 day delay between all communications.
Wed 27 Nov | analyst | Stephen Jones, how was -j being racist?
Wed 27 Nov | Matt Conrad | <> If you are coding to order, you have much better contact with the users and their needs if you are 20 miles away. Not a small thing. From what I've heard outsourcing is fine if the organization knows exactly what they want, can explain those needs perfectly clearly, and can size up the quality of what's delivered for themselves. I'm sure there is a company like that out there somewhere. :) Matt
Wed 27 Nov | Albert D. Kallal | I will tell ya why this does not work!! I as a habit tend to avoid these posts. But, I shall put in my 3 cents worth her also. First, Ed Yourdon’s book. – Decline and Fall of the American programmer. Gee, too bad old Ed did not release the book this year! There is a defeatist theme in the book from the point of view that we here in North America are doing a poor job (and thus risk loosing the whole industry to over seas companies). However, most the of the book is on software management, and software quality. He did seem to believe that in the early 1990’s we where going to loose the software industry to foreign competition. (the book was published in 1992). Of course for the next 8 years the industry absolutely boomed in north America. So, it really was crappy title for other wise a EXCELLNET BOOK. It also was before any hint of the internet existed (which by the way, does/would support the concept of outsourcing). Ed also was very vocal in the year 2000 speaking tour. So, I have to say that this guy sees publishing opportunities, and likes a bit of controversy thrown in. However, that book is really not about the decline of the software industry, but what practices should be adopted for good software development. It is very good book on software methodologies, and has good chapters on software metrics. It certainly belongs on any good software developers shelf, and I can see my hard cover copy as I type this. Hence, it is a excellent book. It is actually dated a bit, since the whole PC and net revolution REALLY picked up steam in the mind 90’s. So, much is written about mainframe, and pc type stuff in his book. Don’t let the title of the book fool you, it is an excellent book on software development, and what good companies should do. By the way, I was NOT aware of the “Rise & Resurrection of the American Programmer'. I never heard of this title, nor seen a review. Hum, perhaps I will order a copy. Now, back to this outsourcing issues. First, a good many y2k projects were in fact outsource to places like India. However, y2k work was 100% drone dead beat work. Scan and replace code. Add some y2k “offset” to every date value. Real low value in the sense that any good developer would avoid this type of work anyway. Also, the y2k work was easily outsourced since no usability, and designs had to be communicated to the other end. (this is most important!). When software has to have a lot of usability, and testing with users, it is has to be done with the target audience. Outsourcing does not lend it self well to this type of development model. It turns out a lot of system type software does NOT need usability type stuff. Hence, software that does not need “end” user testing, or a lot of user interaction is a great candidate for outsourcing. If you are writing a driver, or a database engine, a large portion of the project has NO UI. These types of software was thought to be a perfect candidate for outsourcing. However, most of that kind of software is also exactly perfect for Open Source. Hence, work on database engines such as MySql, and the ton of “OS” level type work we see is now see is open source. (Linux for example). Thus, much of the real stuff that is good candidate for outsourcing is also good for open source. This is another reason why I believe outsourcing did not take off. (in other words, much of what can be outsourced is being done already). The other main problem with outsourcing is the usability/designs/interface stuff cannot occur very well when the project is outsourced. This is especially the case when language barriers exist. Even culture can hamper this. I have had many beers with some project managers who have in fact outsouced software projects. I don’t have time here..but the stories are amazing! (they actually flew over about 30 people from another country!). Now, if you are going to outsource software, then you need an excellent analyst, and someone who can write VERY GOOD functional specs. If you don’t have those skills, then outsourcing is not possible. To have those skills means you are an excellent communicator, AND also a excellent designer. If you are looking to become a “outsourcer” person, then you better have great analyst abilities. If you can write up excellent specs and designs, then you can probably do well as an outsourcer. That means that your specs AND designs are very good. (by the way, those companies overseas are desperate for these types of people, since they are the “KEY” to making this whole process happen). With out excellent designers and analysts on this end, the outscoring cannot occur. Of course, if we have no more programmers here, then we will not have people capable of design something to outsource…will we? You are not going to create a good analyst without that analyst have good designs and programming skills. Hence, if we loose too many jobs, then outscouring will not work. If a compnay tries to get rid of too many develoers, they will also loose the ability to outsource! The other big issue that that everyone has overlooked: Coding is a small part of the cost of software! Everyone here is fixed on the idea that coding is the hard part. I hate to bust every ones bubble, but coding is not the hard part. It is the design and the functional spec that is the hard part. The problem thus today is that most companies DO NOT properly design and spec the software. Companies do a TERRIBLE job of design and specking out software. The problem here is that to outsource a project the spec and design must be done correctly! If companies finally did start specking and designing the software correctly, then the cost of developing software where would drop so much, as to make the need to outsource disappear! In other words, the second a company gets to the point where they can outsource, they have also reached the point where it will not need to outsource! I don’t understand why this is not obvious to people. With good software designs, and good specs, the code practically writes it self. Further, the better the designs and specs, the smaller time is spent on coding. Have any of you actually looked at a software company today? A VERY SMALL portion of the staff actually write code. Companies with first rate designs and spces can bang out code in less time that you can get the folks across the ocean to read the design and figure out what is wanted. So, outsourcing really can’t work..can it, since once a company figures out how to outsource, it just eliminated the need to do so… Besides, you have not heard the stores I have!! Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Thu 28 Nov | -j | Stephen, Let me re-phrase in simple programmer speak since your head is up your compiler: 1. Write a business plan. 2. Periodically revise it. Now, I will put on my peril-resistant glasses and invert the compiler-head operation according to so I can see the light too: 1. Creating jobs is easy. 2. Running a business is a joke. If it's so easy to create jobs today in the US, it must be 2x easier to do in another country. And since I can save 0.08 in the process, it's worth every penny. I'm going to sleep well tonight knowing thus, and have my quarterly estimates revised tommorrow. -j
Thu 28 Nov | Beka Pantone | Hi Albert D., <> I must oblige to the fact that coding is a relatively low-cost process in the software life cycle. However I disagree on the 'coding is not the hard part' bit. Mixing 'low cost' and 'hard' in your statement makes things a bit confusing. Besides, those are nothing but broad generalizations. Not ALL software is easy to code. Many DB-bound B2B applications today are relatively simple when it comes to coding. But when you work on fields like computer graphics, functional specs are often simple and straight forward. But the coding can be a bitch to write, computer graphics is a very algorithm-heavy field, and the coding doesn't quite do itself. So please, refrain from broad generalizations because they really aren't helping developers in other fields. In my experience most money spent on any software system goes to maintenance and post-production enhancements, rather than your upfront-spec and coding-that-does-itself. <> Feel free to enlighten us. Nothing gets me going in the mornings like a good fiasco story on outsourcing.
Thu 28 Nov | | Oh sh*t, I am agreeing with Albert. Maybe I need medication. (Sorry Albert, it just doesn't happen very often :-) Having said that coding is simple, you should see some of the code that an ex employer got when outsourcing part of a project to an Indian company (their people were even sitting in our offices...) *shudder*
Thu 28 Nov | Stephen Jones | Dear analyst, -j was saying that it was wrong to create jobs for Indians and citizens of other countries when the same jobs could be given to American citizens. You could argue that he is not being racist since he doesn't care about whether the American citizen is of negro, inciian or chinese origin but there doesn't seem to be a word for being prejudiced against and discriminating against all other nationals, (or people from other States/towns/neighborhoods/streets)depending on how fine you want to tune it). Parochialism describes the attitude well, but doesn't imply the active discirimination -j is asking for, and tribalism, which describes the phenomenum perfectly, might easily be understood. It is a pity there doesn't seem to be a term for it, because the combination of pretending to be mutlit-cultural within one's own national boundaries but discriminating in every possible aspect against those from other countries is rampant in the USA and EU. If I said why give the job to a spick or jew or chink or wog when there lots of poor white boys unemployed then everybody would be after my blood and not just for the offensive terms. Yet it is considered quite OK to say don't give the job to somebody in Mexico, Israel, China or India because there are programmers in Fort Lauerdale on their last pack of bolognese.
Thu 28 Nov | Stephen Jones | Dear -j If your last post is American style 'simple programmer speak' I can see why everybody is outsourcing as quick as they can.
Thu 28 Nov | analyst | Stephen Jones, nothing -j said was racist. His comment was a valid one, and it was about economics. Decisions identical to those you object to are made implicitly by citizens of succesful economies everywhere. That is, successful economies limit inbound immigration and they refrain from supporting people in poorer parts of the world. By your definition, that is racist. Do you donate your income to help poor people in other parts of the world? Are you racist yourself?
Thu 28 Nov | Stephen Jones | Dear analyst, We are not talking about limiting immigration here. We are talking about provate companies being expected to make their decisions on grounds of nationality. Both the US and the EU aggressively target export markets and preach free trade to the developing world, while setting up license schemes and giving out massive protectionist subsidies to their own lame ducks. It is true it's about economics. All tribalism is about economics. It's true it often succeeds. The whites in South Africa did pretty welll out of keeping most of the land to themselves. Now, how often outsourcing is a good idea, which is the other disicussion running through this thread is another thing. Biut it was -j who bought up the whole idea of keeping the jobs for the boys. And, what irritated me, tried to hide his old fashioned protectionism behind the cloak of caring and being against 'greedy' capitalism.
Thu 28 Nov | -j | This is really funny now. I was involved for a long time with a multilatteral investment fund (from G7 countries) inside an international bank devoted to creating economic growth in the Americas (all of them). I think I know what's up on this topic. And I'm tired of words, and should never have to defend keeping jobs in my country. I wish more pundit geniuses like S.J. would STFU and go try to improve the economy by creating industries instead of belly-hooing. Just look at Ben & Jerry's Ice cream as a company - profitable, ethical, and 'protectionist' - no worldcom there, and no layoffs either.
Thu 28 Nov | Albert D. Kallal | I want to clarify something I said here: <> First, coding is VERY HARD. The problem is, that most developers DESIGN while they code! If you have a first rate technical spec, then how to write the code is almost written! In other words, if you have a proper tech spec, then VERY LITTLE design occurs during coding, and it is real easy to do. That is how large software houses use their top flight talent. (they write the specs, and the drones write the code). So, the hard part of coding is the proper design part. That is VERY difficult, and takes a FIRST RATE designer/developer. So, to be clear, if you give the programmer something to do, with the design already done, *THEN* it is easy. The design part is thus very hard (how, is the problem is to be solved). And, you need a good developer to write those kinds of specs. Trying to write a good technical spec for developers takes a FIRST RATE developer. Of course, if you are a one man show…you always do both jobs. With outsourcing, these tasks are now being separated. Thus, both tasks are not being done by one person (ie: the coding and designs parts are now split) And, by way, since Yourdon’s book was mentioned, does anyone know what the % of code represents the cost of a large project (hold on..let me get up and grab his book…ah, ok here it is:. On page 179: 12% Yup, the cost of coding in a large project is 12% of the total cost. As the project get smaller and smaller, of course the coding represents more and more cost. (however, the number is shocking less than most people realize). Of course, if you write much better specs (which you need to do when you outsource the coding part), then that cost will drop even FURTHER. In fact..MUCH further. (that 12% is the average, and most companies are not designing software correctly!). The design,and HOW you are going to solve the problem is the hard part. Not the coding. Of course, as mentioned we normally allow too much design during the coding process. When you outstouce, you better find a way to communicate those designs, or you find that your developers are writing what you need! I consider myself to be a very strong coder. I apologize to all who misunderstood my comments about coding being the easy part. I meant to say that if you give the developers/coders the designs already..*then* the code part is easy. Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Thu 28 Nov | Albert D. Kallal | opps! I meant to say: >>When you outstouce, you better find a way to communicate those designs, or you find that your developers are writing what you *NOT* need!
Thu 28 Nov | Mr Jack | Stephen Jones: I believe the term is Jingoism. Never heard it used as Jingoist. But, hey, why not?
Thu 28 Nov | Tj | This would have been an interesting topic had it stayed ontopic. Having a job as the face of overseas workers sounds like a good US job to me, one that could reduce US unemployment. By the way, have computers put ma and pa out of business?
Thu 28 Nov | Chuck | This question is weird, because: if you actually possessed the skills necessary to successfully manage an offshore IT project, you could probably make a lot more money doing something a lot more straightforward than managing an offshore IT project.
Fri 29 Nov | We have it easy | No Albert, I agree with you that coding is easy. It is a trivial, mind numbing thing to do. Even what the others here mention is not exactly hard work - given the same pay etc, what would you rather do, write code, or dig roads? Write code, or watch patients die?
Sat 30 Nov | FlyVFly | Indian companies are not stupid... They hear all that you say, and then have ways round them. Objections and Refutations 1. Coding costs are insignificant anyways / Design is the hard part Answer: See Infosys and 'Global Delivery Model' ... Simply.. put cheaper Indian labor on american shores to do customer interaction, system design, u i design etc. And ship away all that you can to india where its even cheaper to get it done. Remember these companies work 24x7... so someone finishes an algorithm outline by close of business in the US, the indian team is waiting to take it up, write code, test it and respond with improvements before our american-shore buddy comes into work the next morning. Think incredibly tight developmetn timelines, very agile programing teams. 2. Cultural differences: Sorry... That point doesnt hold. Come over meet some people in India... and you'll know what I'm talking about. (I went to an Ivy League School to study Computer Science and Economics... and most of my friends have Masters and PhD's from the best uiniversities in the US) Young metropolitan India... fits in very easily in the US context... Metropolitan in a country of a billion people means that... HUGE and CROWDED. (I am in a city with 14 million inhabitants... In comparision, Boston felt like a small village) The people who keep mentioning 'cultural differences' usu. seem to speak of dusty village roads and argicultural subsistence economies. As if India was seen thru the lense of a Discovery Channel cameraman. They need to wake up and see the metropolitan, corporate india that we live in, (Infact, my life in New York wasnt very different than here. Except maybe the nightlife here is much more fullfilling.) 3. Language Differences? Most of us have formal educational instruction in English before that in any other language. Think about it... The first words i learn were 'Apple, Ball, etc...' (PS: Dont mock my spelling... Ask joel to add a spell checker instead. ) 4. Communications Issues: Secure Instant Messaging NetMeeting VideoPhones Cellphones Airplanes Need I say more? (Actually... Havent met my largest customer ever! Only had virtual contact with them) 5. Unsilled Programers? Can you say CMM level 5. Please check the SEI site and find out how may Indian development centers have that appraisal vs. non-indian development centers. (I dont necessarily agree with everything SEI says, but we Indians can spot a marketing opportunity when we see it. A SEI certification summararily answers all client questions about competence and quality) -V [Run a tiny (25 ppl) software company in India. (soon to be) CMM Level 3 appraised. Main clients all over South East Asia and Australia. Lived long enough in the US to know that there is no difference]
Sat 30 Nov | Jack | Just got back from a 2-day trip. Kind of disappointed because a 'how-to' question turned into politics (sigh!). Maybe this forum is not the place for this type of question considering the fact that the majority of us are developers. Some thoughts. I do think we are working in a fucked-up industry - software. Bill Joy once said programmers cannot handle software. I think you need bright minds with humble attitude to really deliver quality software. However, the reality of the industry is against us. On the one hand, there are books 'Teach yourself Visual Basic in 24 hrs' and oversea programmers who don't even need a H1-B visa to work on projects; on the other hand are the managers who only know playing (down) the numbers. We consultants are squeezed in the middle. And we have to play their rules of the game. If the management can let go off all agency employees in one day to cut cost (without considering the loss caused by the sudden-death of the ongoing projects), what can't they do!!! Management play number any way they want like Enron does its accounting. Even it may not be a wise decision to outsource to oveasea, they do it and they will.
Sat 30 Nov | Albert D. Kallal | I don’t know what other people mean when they say cultural differences, but I sure as the heck know what I mean!!! When I say cultural differences, it has NOTHING to do with dirt roads. Cultural differences in my definition are just that: differences in human behaviors that occur between different cultures. These types of differences make the world a wonderful and interesting place. However, these differences most certainly make a difference in the software development process. In fact, cultural differences is NEAR THE TOP of the list in challenges that a company will face when outsourcing a major project. The companies I talked too have found the whole process not very workable. For example, when talking to people from India, they tend to nod their heads in a kind of a approval and understanding when in fact they don’t understand! In the west, we tend to take this type of behavior as a “yes, I understand and agree” You don’t think that is a problem? I know of company that had a room full of developers from India, it was only after 6 weeks of intense meetings and seminars did the western developers find out this cultural difference! They had to start over simply because simple body languages is different between the cultures.The developers here had NO IDEA when the person they were talking to understood them, and when they DID NOT!!! The result was that they had to throw out about two months worth of meetings and work. Once this difference was discovered, then the things progressed a lot better. Gee, the project is now two months behind schedule, because people tend to nod their heads in approval. This is clearly an example of small cultural differences turning into a huge cost over run. People’s Names: Some of the names of these people were so long, that in fact I talked to project managers who actually made mistakes in their employee evaluations. They actually reprimanded the hell out of one programmer, and threationed to send him back home. The problem was, that programmer was actually one of their “star” top programmers. Later, it was realized that the wrong person just got totally reamed out. This mistake was due to the first names being so long, that when reading the spreadsheet, the wrong person was being talked too! (the spreadsheet needed to be widened more, to realize that the first name was different!!). You can imagine some of morale problems that arise when stuff like that happens! Both the developer team, and the managers will not respect each other after mistakes like this happen (in fact, the mistake was never actually released to the developer team!). Names where so long, and caused such problems in simple meetings and phone conferences. On the company intercom, the secretary has difficulty even paging people!! Things go so bad that the company eventually did the following: You “insert name here that takes up more room this actual comment!!” are now going to be called ; Bob And you, “insert name long name……………..” are now going to be called John. In other words, just to facilitate cultural differences in names, they actually started assigning simple names! I can write PAGES OF examples where simple cultural differences caused huge problems!. Huge my friend! So, I not sure what other people mean by cultural differences, but to come here and tell they don’t make a difference has got to even MORE FUNNTY then the above stories! Now, don’t get me wrong, I not saying a cultural difference is bad, I simply state that they exist. No one can say the cultural differences do not have a factor in these projects (that is nuts!!). Differences can certainly be dealt with, and in extreme cases, even the peoples names have to be Americanized to facilitate easy communication. I am sure that any decent developer has heard of, or understands the concepts from the Mythical Man Month The whole book talks about the software process, and very clearly states that software is the result of communication. Cultural differences MOST CERTAINTILTIY will, and do effect the software process. In fact, it effects it more then most types of human endeavors, since software is NOT a physical product. In fact, software is the result of communication between people. In fact, the whole essence of software is about communication of ideas between people. As mentioned, you can certainly outsource, but by the time your figure out how to do it just right, you then reached the point where outsourcing will not save you much money. The companies I know that have done this, will not do it again. There are certainly some successes in outsourcing. For sure some companies may have had better success. However, no one can tell me that culture do not make a difference, be it a plus, or a minus to a project…it does make a difference, and more in the case of software. Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Sat 30 Nov | J D Trollinger | '2. Cultural differences: Sorry... That point doesnt hold. ' I don't think anyone meant ganesh and shiva, public urination, and reverence for cows. What people meant by cultural differences, is that Indian teams typically flake out the minute any thing gets shaky, and that they don't come up with any solutions that are original or interesting. Overseas shops are adequate for solving problems that have already been solved many times before, but not very good at innovation.See '...''s post above. '5. Unsilled Programers? Can you say CMM level 5. ' CMM level 5 has nothing to do with skilled programming. It is a set of procedures to follow so that you dont NEED skilled programmers, you just need someone to follow the recipe so that you don't get sued.
Sat 30 Nov | Albert D. Kallal | Also, to anyone reading this, I apologize for posting in a thread that hints, or some how even promotes the idea that other cultures by nature do a poor job in the software industry. I in no way doubt, or even question the ability of countries like India to produce first rate developers. In fact, they clearly have above average number of math and computing people as a culture. This is something to be proud of, and India is knowing through out the word as nation strong in math and computing. I do of course stand by my statements that cultural differences exist, and will effect projects. However, this is a huge difference than other people in this thread commenting that somehow as a nation India’s software developers cannot cut it. That is kind of statement is absurd!, and find even the fact that I participated in such a thread makes my stomach turn! Once again, I do apologize for just the “fact” of participating in a thread that would somehow hint that these people can not develop first rate software. Sincerely, Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Sat 30 Nov | never look back | Oracle will moving most of their corporate accountiing operations to India. All professional work that can be done over networks can be moved to where qualified labor is less expensive. It's a reality. The thing to do is learn how to operate effectively in this new environment. Resisting it is like resisting technology itself...whether it's good or bad from your percpective, it marches relentlessly forward. Understanding other cultures and how to work with globally distributed teams is becomming mandatory. Whether or not you would prefer that things revert to a previous comfort zone is irrelevant.
Sat 30 Nov | Ian Stallings | Being one of the fellows j is talking about, being unemployed and hating it, it does stir up my anger when I hear of outsourceing simply because we have so many here willing to take pay cuts just to survive in this shitty economy. We didn't create it, but we have to live in it. We want to feed our family, pay our bills, pay our taxes, etc. So if there are so many here in the US that are unemployed then why do comanies insist on outsourcing jobs to other countries? Because it's cheaper right? So if that money goes to another county doesn't that make our own economy suffer even more? It's a circle just like any other in life. If the US economy goes to shit there will be no h1bs and no outsourcing to other countries. Where is the money going to come from? How is anything going to happen in the US if we outsource everything? I think his point was valid and you tried to put your own slant on it putting words into j's mouth. Before you go making another preconceived opinion maybe you should check you own opinion about what he is trying to saty actually means. Maybe it does have something to do with tribalism. Lets peer into that thread a bit more .. what kind of leader would sell his own tribe out simply to for financial gain? That's not the kind of leader I want. Yes I think home should come first, that's not being selfish or racist or even jongoistic. Would you not care for your own tribe before you cared for others? If so does that make you a bad person for thinking that? Not everyone thinks the way you do Stephen and that does not mean we can be dismissed with the racist label. Some of us are against internationalization because we know that it only helps the few elite, not the whole.
Sat 30 Nov | analyst | Prakash, the argument that something is OK simply because it's more profitable for private companies is not valid. Companies are just legal abstractions intended to protect shareholders from risk. The ability to make profits derives from many privileges we, as a society, grant to those legal abstractions. For example, we grant the right to define and own something called intellectual property. Our police and courts will enforce that abstraction to the benefit of those legal abstractions. So profit is not some magical thing. It's the result of a negotiated social agreement. We frequently re-negotiate that agreement. For example, we require companies to avoid harming citizens in the conduct of their business, even though it might be more profitable for them to do so. We require companies to provide safe workplaces for their workers, and to pay them on time. We have a set of conditions to maintain a fair social contract between profit and society. Large scale outsourcing of IT work is a relatively new issue for our society. If it causes excessive damage to our society, then there's no reason our society shouldn't renegotiate the social contract again. Remember too that outsourcing benefits a relatively small part of society, being managements and shareholders. In IT at least, it does not usually result in cheaper products. It just results in higher profits. In economic terms, it is a transfer of wealth from workers to management.
Sat 30 Nov | analyst | CMM-5, like certifications generally, means nothing. There are only 12 companies worldwide with CMM-5, and seven of those are Indian. Match that up with the structure of the IT industry and ask yourself how relevant is CMM-5 as a useful indicator of capability.
Sat 30 Nov | dont be such a dork. | Seen the movie 'Office Space?' Now, imagine a 'Bollywood' version of that movie. That's the end result of overseas outsourcing. I say let the Indians build payroll apps and take care of Oracle's internal accounting. If you are building backoffice apps for an insurance company, getting laid off is probably the best thing that could ever happen to you...
Sat 30 Nov | analyst | Why don't we let the guys building backoffice apps for insurance companies decide what's best for them?
Sat 30 Nov | Prakash S | ananlyst, I agree with u wihich is why I mentioned social responsibility, which these companies 'forget'.
Sun 01 Dec | Stephen Jones | Let's get some things straight. -j You want me to find jobs for AMERICANS. I've never even been to the USA. I'm a UK citrizen who works in Saudi Arabia for nine months a year and spends the other three months in Sri Lanka. I haven't lived in the UK since 1978 and the two towns I have lived in longest in my whole life are Madrid and Barcelona. My doctors are Sri Lankan and Egyptian, my dentist is Sri Lankan, my boss is Saudi, my office mates are Americans, my students are Saudi, my cleaner is Sri Lankan, my electrician is Bangladeshi, amd my sys admin is Indian. Who are the 'my own' I'm supposed to be looking after. Ian Putting 'one's own first' is the definition of tribalism or racialism. You can argue whether it's a good thing or not and it doesn't imply all of the nastier accretions that you probably associate with racism but that is what it is, so if the cap fits, wear it. Analyst All the people I mentioned at the top of my post have one thing in common. The software on their computers is nearly all American. The rest of the world has been payng billions to the US for its software. Has it not ocurred to you that if there is an 'implied contract' the rest of the world is not going to be very happy if one of the terms is 'you pay for us to discriminate against your workers'. And one of the main reasons America is top for software development is that it made it so easy for people to go over there and work. In General Nobody here appears to have read Adam Smith. He made the obvious statement that the butcher doesn't provide you with meat because he likes you but because he stands to gain. The whole point of classical economic theory is that the common good is achieved by everybody following their own self-interest, and it is the self-interest of the employer to maximize his profits and minimize his expenses. You can argue that capitalism is a bad idea but don't expect the leopard to change his spots. The IT market was deformed by the .com mania. People were hired to do work that was uneconomic, and now that sanity has prevailed there is a glut. Yet most of the work that is still available cannot be outsourced because it's either system administration or customizing. Albert is quite right in that respect. Albert Your story is too good to be true! But what it does show is that there are some pretty dumb Canadian companies. Didn't the head honchos even think to ask 'What problems am I likely to have outsourcing to India?' They could simply have posted on this forum and Prakash or me would have told them straight off that saying 'yes' and then trying to find out later what you have said yes to, would be number one problem. It is a survival technique caused by bad management; exposure to good 'western' management cures it in a couple of months or less. And they can't even be bothered to learn the guys names and think they can try and assess them. And they made the spreadsheet too small; I suppose the system would have choked altogether if they hired Indonesians because they normally don't have a surname. Simple rule for personnel work in a multi-cultural environment; have a separate field for moniker and ask the worker what he wants to be called. Jack Your original posting is too general for people to give you specific advice. The devil is in the details, but I think you're getting some idea of the pitfalls. I would tend to agree with the other poster who said domain knowledge is the key. FlyVFly You certainly honed your marketing techniques in the USA. Yes, your vibrant metropolitan India does exist at one level, but it exists somewhat like KDE exists on top of an X-Window manager which exists on top of a bash shell which ......... Joel wrote an excellent article on the phenomenum; he called it the 'law of leaky abstractions.'
Sun 01 Dec | Albert D. Kallal | >>Albert Your story is too good to be true! But what it does show is that there are some pretty dumb Canadian companies. Didn't the head honchos even think to ask 'What problems am I likely to have outsourcing to India?' They could simply have posted on this forum Gee, now there is an answer eh? The problem was that the Canadian company was dumb!! So in other words, if I outsource to a good company, the solution is post on “Joel on Software”, as one cannot expect that company to provide any kind guidance in these types of situations?. So, in theory, the Canadian company is dumb, and to use the India company, you need to first post on this board? Gee, ok…that sounds real good to me. >>would have told them straight off that saying 'yes' and then trying to find out later what you have said yes to, would be number one problem. No, I DID NOT SAY the problem was accountability, and understanding what management said. I did not say the problem was remembering what was agreed to. (again, a common problem in all companies). Every company in the world has that above problem. I CLEARLY said, that the problem was developers here could not get clear feedback as to when the other teams “got it”. If I am explain something to you, I need some kind of feedback as to if you understand the problem, so then I can go on to the next problem/concept. That is not the above issue of accountability, and “remembering” what management said. Totally different issue. If I am explain something to you, and if no indication of you not understanding the problem is given, I will as natural course of the matter go on to the next concept (this is simply how humans communicate). As mentioned, this is a critical process of communication of ideas. If I can’t tell when you do, or do not understand the problem..then we are in big trouble. And, oh by the way..I was being rather nice here..as I do have more stories!!! I mean either the company has to write out a perfect technical spec, or do as suggested in this thread, bring over part of the outsourcing group over to help with the designs (and then send parts of that back home). Right now, I doubt this whole process from what I know now. Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Sun 01 Dec | mackinac | >>> On the company intercom, the secretary has difficulty even paging people!! <<< The problem here is not that the names are too long, but that the company had paging.
Sun 01 Dec | analyst | Stephen, no-one's asking you to do anything. The discussion is about the operation of firms in the American economy. In terms of economists, try Keynes or Galbraith.
Development Workstation | Wed 27 Nov | Marvin Motherboard
Im planning on buying a new workstation for Visual Studio.NET C++ development. My budget for the system (including monitor or monitors) is $2250. I am willing to purchase components from different vendors and assemble the system myself. What should I buy?
Wed 27 Nov | Tj | I found a bunch of nice links here: http://www.kuro5hin.org/story/2002/10/31/1255/9162 I'd just buy a notebook personally though. ;)
Wed 27 Nov | Heston Holtmann | http://www.ncix.com/usa/pc.php http://www.ncix.com/canada/pc.php Highly dependable and competative on orders in Canada. Probably even bet for the USA. Complete customization of systems, much better then DELL's pc builder! If they don't have a part listed, call them, they will accomodate you!
Wed 27 Nov | D Angelo | www.sillworks.com
Wed 27 Nov | Kevin Jackson | A laptop is now my first choice for programming platform. Has been for the last 3 years. Mine happens to be a dell (dood).
Wed 27 Nov | sam | In my last job, I did development work on an 800MHz Dell laptop. It was new enough to have a nice big screen (exactly the same display area as my 17' monitor, as it turned out), and with a USB keyboard and mouse on a keyboard tray, I almost never noticed that I was actually using a laptop. It was nice to be able to pack up and go when I needed to give a presentation, work from somewhere else, whatever. With your budget, you can probably get a 17' LCD as well for acres of additional desktop area. (=
Wed 27 Nov | mph119 | You want to go here: http://arstechnica.com/guide/system/index.html
Wed 27 Nov | Mike Swieton | Well, if your looking at a desktop I'd suggest a dual-processor+dual-moniter system. I haven't done the math, but you should be able to throw one together w/ cheap moniters at just under budget. Dual athlon's are pretty cheap to set up. But then again, I compile my code often, and now work extremely well in a dual (or currently triple) head setup. YMMV.
Wed 27 Nov | Marvin Motherboard | Dual monitors -- definately. I'm thinking about dual processors. Does it significantly speed up builds? How about SCSI or ATA RAID? Will they significant reduce build times?
Wed 27 Nov | Project Builder | Marvin, Truth be told a processor with a lot of L2 cache, standard memory and a Large (1.5 - 2x memory) swap file on each Hard drive used is more important then number of processors in a Visual C build (CL, the compiler, spawns only one process, but it does peg the CPU hit). So my order of purchase priority would be first memory, multiple hard drives (I don't think RAID would by very useful so I would not do mirroring or stripping, unless you are storing your source on the machine) then multiple processors. I use a dual processor box at my place of employment to build the software for the project I am on and I have found the extra processors do help, but memory helps more.
Wed 27 Nov | Chris Tavares | Multiple processors won't really help you out much as far as compile times go. However, they DO help tremendously in debugging multithreaded apps. There are some bugs that don't show up on a uniprocessor machine that will pop up on a multi-CPU box. The only way to find them is to debug on a multi-CPU system to begin with. That and it's nice to be able to run winamp and not have the music slip when you compile. ;-)
Thu 28 Nov | Mr Jack | Multiple monitors definetly. I reckon you will find a better compile time improvement by spending your extra money on extra computers to use as a compile farm with Xoreax Incredibuild than by boosting the power of your main one. Not quite sure whether the .Net version of Incredibuild is available yet.
Thu 28 Nov | Bill Tomlinson | I'll put my vote in for dual (or more) monitors. Also, I'll go against trend and recommend RAID 1. Lots of motherboards come with an IDE RAID controller built in, and hard drives are pretty cheap. But not for speed, but for uptime. Sure, you're backing up your crucial data (source repository, business documents, etc) offsite. But people generally underestimate the time that it would take to get their main workstation back up to it's current state if the disk fails. That is, if you're like me and have your computer extensively tweaked and have tons of software installed (and I think that this is true for most programmers). If all you do is install windows, visual studio, and office and then never make any configuration changes, it's a different story. For the same reason, I'd suggest a UPS. Just a low end one that gives you five minutes to save everything and shut down cleanly.
Thu 28 Nov | M. | Don't get SCSI, they are incredibly noisy. I would get dual LCDs, they are more comfortable than CRT and take less space. For quick and easy backups, I use a ZIP drive. Much faster and easy to use than a cd-r. What else? I generally have found that ergonomy is much more important than speed in a computer. If you don't get the fastest processor of the moment, but a slightly slower one, you can save a lot. And so on.
Thu 28 Nov | Troy King | > Don't get SCSI, they are incredibly noisy. Hmm, let's see... noisy drives vs drives that FAIL EVERY YEAR. Let me think that one over. IDE is cheap consumer crap not made for a professional. Three times my only safety has been my backups to CD-ROM when my IDE drives have failed. Meanwhile, my co-workers with SCSI haven't lost a drive yet.
Fri 29 Nov | Just me (Sir to you) | I used to go for screen real-estate and fast disks, but nowadays I prefer a good notebook. - portability: take it where you want to be for the day. Sometimes a change of scenery realy works. - No noise: this requires some evaluation and extra work. Make sure that under normal conditions the processor fan does not come on (force throttle processor if necessary). Throw out the HD that came with it and replace it with a noiseless one (IBM has very nice disks where even with your ear to the case you can't even tell they are spinning) Performance on modern hardware should be no problem, VS.NET is quite spiffy. Make sure you to max out on memory and you will be fine.
Fri 29 Nov | Peter Ibbotson | BTW buy a matrox dual head card. (G550 is I think the current model number) It was the only card that looked to windows XP like two proper video cards. This means you can set seperate resolutions on both. Some of the other cards I tried (ATI Radeon VE) treated the display as one very wide system (eg 2048 * 768). Personally on my desk I have a LCD screen at 1024x768 + a 21' monitor at 1280x768 which works well as the mouse moves naturally from on to the other. Both Nvidia and ATI may have moved their drivers on, but for development purposes the somewhat poor 3D performance of the Matrox may not matter (Plus the card is around $100)
Fri 29 Nov | Mike Swieton | Dual-proc compiles: Under VC a poster above stated that the compiler doesn't spawn more than one thread. I've never used VC, so whatever. Obviously there's no gain in that case. However: under Unix systems (i.e. Linux), the make program can compile in n threads (make -j n), if your Makefiles are arranged properly (i.e. depenancies). This is the reason my next machine will almost certainly be dual-processor. The only other thing I'm considering is have two uniprocessor boxes using the distcc program to compile my projects. Depends on what your platform is, but think about it.
Sun 01 Dec | Yaniv | I do lot of development. And I just bought a pro-star laptop. I love it! Just a little heavy though. Here is the model I bought. http://pro-star.com/index.cfm?mainpage=productdetail&model=5654
Unemployment Woes | Wed 27 Nov | anonymous
Am I the only computer professional that cannot find a job in Jacksonville, Florida? Ive been looking for the past 3 months with no luck. Does anyone know what state is the best state for IT professionals? I need a job quick--Im on my last pack of bologne!
Wed 27 Nov | Matt H. | There's some insurance company in Jacksonville, FL that has like 500 coders as employees and is CMM-Level 5. I can't remember the name. I read about them in ComputerWorld or InfoWorld a couplea weeks back. What's your skillset?
Wed 27 Nov | Bella | You are in a career that does not even require a high school diploma. Certification is non-existant. Nurses, plumbers, and construction workers have MUCH more rigorous standards and procedures to go through. There are tons of jobs, just not with the inflated salary you think you deserve. Stop asking for an unreasonable salary.
Wed 27 Nov | Those with knowledge will survive | This guy could be a genius, I don't know....so don't take this as a profile of you. But, I do have a 'theory' about the current 'unemployment woes' of computer/IT professionals: Three years ago, if you could 'click a mouse' ... you had a job. Most employers were desperate and everyone wanted to be an 'html coder'. People were dropping out of school to join in on the next 'gold rush'. Of course a lot of companies were laying people off, but really they were 'trimming the fat' (bye-bye mouse-clickers). My first job out of college (computer science and engineering degree) I took a job on the I*NET team of a financial institution. First, that was a mistake. Never again will I work for a company where software supports the main product. But, I remember how desperate they were to find people. We were working with J2EE/EJB/JSP/Servlets/XML/Buzzwords ... and they hired this one girl that had 'JSP' experience at a ridiculous salary. I remember being in a Java class our company sent us too and hearing her ask the question 'what's a heap?' That's the type of crap that drove me crazy. I would have to hand-hold her during some of the most basic java coding and she was making a ton more than me. I digress. My point is...I feel that the people that a) don't know crap and/or b) are asking way too much are having a hard time finding jobs.
Wed 27 Nov | Those with knowledge will survive | Damn, I mangled my post. Turn this sentence: Of course a lot of companies were laying people off, but really they were 'trimming the fat' (bye-bye mouse-clickers). into: Now, a lot of companies are laying people off, but really they are 'trimming the fat' (bye-bye mouse-clickers)
Wed 27 Nov | anonymous | I have a degree in Engineering and I have been working as an Analyst for the past 4 years. Every job I apply for, the recruiter says they recieved about 400 resumes for the position. So my theory is the one who lies on their resume will survive.
Wed 27 Nov | mackinac | Things are bad all over. The stock market has been going up the past few weeks, but the job market is still in the duldrums. The only area that I have heard any indication of improvement is in government/defense work.
Wed 27 Nov | nerdles | the government is allocating huge amounts of money to 'bioterrorism defense.' find a university hospital and glom onto an IT project there.
Wed 27 Nov | ... | The job market is fucked.fucked.fucked.com so don't be too hard on yourself, ignore the fools who intimate that it's because there is something wrong with you. Many companies dont even have enough work for the staff that they have, Many permanent staff who are twiddling thumbs at the moment, fortunately while paid. Many large companies are 'holding on' to people for fear of starting an unemployment snowball. Recession begins with unemployment, so the feds pulling strings here for sure. Of course, contractors have been let go immediately. Good luck.
Wed 27 Nov | Glad to know, who I know | Those with connections will survive. network, network, network It will most likely find you your next job. And it will most likely allow you to keep your current job if your company falls on hard times.
Wed 27 Nov | Those with knowledge will survive | >>>>>>>>>> The stock market has been going up the past few weeks, but the job market is still in the duldrums. >>>>>>>>>> Of course, everybody here does realize that we are now in the blackhole known as 'thanksgiving/christmas'. Who hires during this time period (regardless of job market)? Unless there is a desperate 'we need this right now' need. In January, new budgets go into effect and new positions are created.
Wed 27 Nov | Those with knowledge will survive | But, the thing is...I've seen people get jobs in this economy. For example, my company was possibly (if they could come up with money in the budget) interested in hiring someone in May/June timeframe. My old college roommate told me about a guy that was graduating with his Masters degree in May. A really smart guy (so yes, Networking is a good thing). We brought him in and liked him alot, but we just didn't have the money to hire him. But, I talked to my roommate and this guy was hired a month after we interviewed him. So, he had no trouble getting a job. Like I said, People have no skills or they want too much money. For example, I have about 3 1/2 years experience. I can imagine that my resume would surface to the top because I have some good experience and I'd come cheap. Whereas, a lot of people with 10+ years experience who are asking for $100+K salaries will have a harder time. Some of the more experienced workers will have to come down a bit on their salary demads. Also, after about 1 1/2 years in J2EE-buzzword-land I decided to get out of that and get into more engineering type of work. I'm working with C++. I'm working with windows desktop and handheld platforms. I'm working with the palm platform. My company is involved in location services, wireless, and GPS. All cool, fun stuff. My experience might be different than the 1,333,483,323 'Java/html coders' that are fighting for jobs. I'm not denying that the economy is also a major factor. But don't discount the fact that 'No skills' (or skills that a lot of people have) or asking too much money are definitely great factors in the 'unemployment' rates.
Wed 27 Nov | Bella | Firms also wait until after Tksgiving/Xmas to do layoffs. Those waiting to interview in Jan are going to keep waiting. I predict layoffs will spike upwards come January. But good luck to all.
Thu 28 Nov | Simon Lucy | People with experience aren't given the opportunity to come down on their salary, or rate, expectations. In a market like this, cheap is best. Actually employing someone with experience is seen as necessarily expensive before they ever get near interviewing.
Thu 28 Nov | Katie Lucas | I did have this issue myself looking for a role - I was willing to take a 25% paycut from my last role to have a stable job just down the road from where I live (like, a ten minute drive) but the company wouldn't hire me. They'd have liked to, apparently, but they didn't believe I'd stay there... I, personally, find this bonkers. Companies won't pay enough to retain decent staff, they're laying off people left, right and centre and in the middle of this, they're not hiring hugely experienced people who they can get for a bargain because they happen to be close because they're worried about a DISTANT FUTURE?!?!?! In the end, they went with someone cheap enough that they were convinced they wouldn't jump ship when the market picked up. Huh????
Thu 28 Nov | Simon Lucy | I am never disappointed in underestimating recruitment agencies.
Thu 28 Nov | Inquire Within | It's certainly true that the workers are simply asking for way too much money and they don't have enough of the right sorts of skills. We're looking for a candidate with 8 years experience architecting OO systems in C++ for shrinkwrap sofnware. Should have expertise in DSP, mixed-signal board layout, SQL, COBOL, PL/I, FORTH and assembly. Should be expert specialist in creation of large (17M+ pages), high-volume (40M hits/day) web systems. Should be completely familiar with all aspects of Cadence VLSI design tools. Should have experience running a business, international accounting rules and intellectual property law as well as 3d cad software, photoshop and high-impact plastic extrusion molding. Should have extensive skill and documented ability in high-level negotiation and political lobbying. Extensive travel will be required. We expect you to go the extra mile, willing to work nights, weekends and holidays as necessary. The jobs pays $26k to start. Relocation will be necessary. There are benefits as this is a contractor position but this can be reevaluated after 36 months.
Thu 28 Nov | Katie Lucas | Heh. Housemate is currently job hunting. Now, not being funny, it's a small market he's in. Small. Seriously. I mean, there are two companies currently 'looking' for someone. And he's about the only person looking. This is because the field is in nuclear-magnetic resonance physics.... One of the companies is FIFTY YARDS from the house. I mean, we can see the damn place from the kitchen. Their experiments interfere with the wifi equipment in the house. They need someone, currently have no-one doing that job, would hire him at the drop of a hat but can't work out when enough people will be in the office to approve the hire budget. Not for some months anyway. Maybe then... The other place wants a doctorate in nuclear magnetic resonance physics, but prefereably one with 3 to 4 years C++ and some solaris sysadmin skills as well... So it's not just IT that's like that.
Thu 28 Nov | Bella | Well, it makes sense to me. If salaries DID resume their upwards ascent (which they won't), Let's face it, you'd be out the door in a heartbeat.
Thu 28 Nov | cheapo | Most hires are done through recommendations, so the more (employed) people you know in the industry, the better. I've had to change jobs twice in the last two years, and both have come through recommendations by someone working there. My unsolicited resumes never get any results.
Fri 29 Nov | Dustin Alexander | I'd been in the job market, looking for a job, for more than six months. This is in the Minneapolis area, which is usually a technological hot spot. The first thing that I tried was consulting agencies. This did not work. I had about fifteen agencies looking and after a few months, they wouldn't call me back. I called a few of them and one or two had gone out of business in that time. Bad news. Its not that my resume is bad. I've had jobs with many big name companies and over five years of experience leading teams of programmers and large multi-million line projects. And I was asking for dirt cheap pricing. I told the agencies I was willing to work for $20.00/hour if they could place me. Still no go. So, after six months of this, I was forced by dwindling cash reserves to take a data entry job through a service/consultancy company for $11.00/hour. And it turned out to be the best decision in my life. The job turned out to be a completely automatable position. I wrote some software in three weeks that was saving them tens of thousands of dollars per month. VPs of a fortune 1000 company were congratulating me and requesting my resume. Needless to say, when the contract ended, I was immediately offered a better job for more than twice the pay as a project lead. This one has the potential to save the company more than a million per month in two months of development. I guess my point is, you have to get your foot in the door. A lot of these companies don't realize the financial benefits of having a top coder in their hire. All they see is the initial consultancy expense. If you can get in at a low price and start saving them money and making contacts, you WILL start to catch their attention.
Fri 29 Nov | Tj | Dustin, that anecdote makes me feel better about this day. That's how the world should work, that you can get a job and find out that one of your skills can totally change things. I imagine that you probably had to face the fact that people were 'made redundant' though. Did you catch any flak for that?
Fri 29 Nov | Disgruntled Unemployed worker | Dustin that's a very encouraging story. I've been passing up jobs that pay $11.00 an hour. Maybe I need to rethink my decision. Was the company you took the job for a small, medium, or large company?
Fri 29 Nov | JesseVentura | Is the scene in MN that bad? I grew up in minneapolis and left about 6 years ago. I don't remember it being a 'technological hot spot.' ;-) But even so... $11/hr is pretty bad. Even $20/hr is pretty bad. During two summers in high school I made $13/hr holding the 'SLOW' sign for the DoT in road work areas. I made about $33/hr all through college. My mom runs a non-profit health care agency that uses a simple web/db thing (migrating to .Net) and the consultants she uses are all making about $60/hr. And they are based in BRAINERD. What types of positions were you trying to get, and what firms were you using?
Fri 29 Nov | Those with knowledge will survive | Yeah. I was wondering about the $11/hr and $20/hr numbers myself. Those are scary numbers.
Fri 29 Nov | Dustin Alexander | 'I imagine that you probably had to face the fact that people were 'made redundant' though. Did you catch any flak for that?' Fortunately, the three projects I've worked on for this company were either special projects [financial auditing, error detection] or things where I was making other people's lives easier without replacing them. I deliberately avoided suggesting solutions that would replace more than a few workers. I like to think that I have a heart, especially in this day and age where we all need one... 'Was the company you took the job for a small, medium, or large company? ' The companies value was placed at 3.3 billion last year, so I'd wager it could be considered large. :-) 'Is the scene in MN that bad? I grew up in minneapolis and left about 6 years ago. I don't remember it being a 'technological hot spot.' ;-) But even so...' It's pretty bad. Its getting better, but it's pretty bad. I've got some former co-workers who worked with me on another project that are out of work now. One of them has 25 years of programming experience, everything from assembly, engineering, chemical modeling, C, Cobol, Java. The man has written disk level controllers and file systems, for christ's sake. He is working for Best Buy doing phone based customer service at $11/hour. What does that tell you? 'Yeah. I was wondering about the $11/hr and $20/hr numbers myself. Those are scary numbers. ' I'm making a bit more than that now. Still, I'd take another $11/hour job in a minute if I can't find something higher than that after this project is done in early February. You have to keep the ball rolling. Eventually, something will break. Actually, your concerns were my concerns a few months ago. Part of the reason I didn't have a job, was that I was unfailing in my expectations of another $75/hour position like the ones I'd been working before. In my arrogance, I almost lost everything I owned and managed to dig myself over $30,000 into debt. It was only when I was forced to take a position I considered to be below my level that opportunities and doorways began opening for me. In a sense, I am coming to believe that the universe has a way of showing you your faults, and making you ante up to them.
Fri 29 Nov | JesseVentura | Jeez, I hope things pick up in Minnesota. I was there for awhile this summer, and was thinking of staying. I love the summers (don't really care for the winters. ;-))However, I did a quick cost of living analysis, and I could save more money out east, so I went back to NYC. The crappy thing about Minneapolis, in particular, is that the nice parts of it are all pretty expensive nowadays. I can save more making $90K in NYC and splitting a 2 bedroom than I could making, ulp, $11/hr and splitting a 2 bedroom in MN. Not to mention, most of the jobs in MPLS are out in the burbs, and the traffic sure hasn't gotten any better in the past 10 years... Anyway, good luck!
Sat 30 Nov | Bella | > I imagine that you probably had to face the fact that people were 'made redundant' though. Did you catch any flak for that? Hello ! That's what computers have been doing since 1950. Can you name ANY IT work that you did that was NOT making manual human intensive labor obsolete? > I was wondering about the $11/hr and $20/hr numbers myself. Those are scary numbers. Why? That's seems in line with the training and qualifications required in the IT field. (Which are zero). To call yourself a programmer, you need about as much training and certification as the guy who hands you shoes at the bowling alley. I hope you have not been living your life thinking you deserve more, and that your salary was not just a function of a temporary supply/demand imbalance! > He is working for Best Buy doing phone based customer service at $11/hour. What does that tell you? It tells me that he has horrendous career management skills. What an absolute retard. Talk about shortsighted. You take a loan, retrain, change careers, build your skills, job hunt, work pro-bono, etc. This guy had to be an awful programmer if he is able to make such incredibly boneheaded decisions. > I'd been in the job market, looking for a job, for more than six months... In my arrogance, I almost lost everything I owned and managed to dig myself over $30,000 into debt That's quite a six months. Were you also doing an 8 ball of cocaine for breakfast and hiring hookers 10 times a day? People don't lose everything and go 30k in debt just from being unemployed for a few months. Sounds like a result of reckless, irresponsible depression self-pity spending sprees.
Sat 30 Nov | Bella | Actually, I take back my comments about salary. A wedding photographer makes $5000 a night. One can make six figures and work 20 days a year. And it takes zero certification and degrees. So it's all about market forces, and the perceived value of your services. THAT'S why we got paid insane rates in the boom, NOT b/c we are such talented, intelligent people. For those looking for non-IT work, break free of the brainwashing that degrees are the road to money. That is the furthest thing from reality. Supply and demand prevails yet again.
Sat 30 Nov | Disgruntled Unemployed worker | Bella you have made good points. I graduated from FSU with a degree in Industrial Engineering. Soon afterward I started my business. Four years later I decided I'm not ready to run a business but decided to return to the work world. All throughout my college career everyone was telling me that engineers make good money. If you have a college degree you are almost guaranteed a job. Well the reality of it, I know guys with masters in engineering from Ga Tech making less than system adminstrators with no college diploma. They only have an MCSE. They guy from Ga Tech is making about $65.000 a year, and the guy with the MCSE is making about $70,000. If you bought in to the notion that you need a college diploma to make money, then you would have fallen into the trap me and my Ga Tech friend fell into. Now I have $40,000 in student loans and is looking for a job and my friend with the MCSE has no loan debt, making much more than me with no college degree. So my point is, your value is not determined by a degree or some finite ideology. It is determined by what people think you are worth to them. It is determined by the value and urgency of the problem they are trying to solve. An example is the value of security software before 9/11 vs the value of security software after 9/11.
Sat 30 Nov | Bella | Boy, these 2 lines are gems. Understanding this is worth more than getting an MBA. So it's all about market forces, and the perceived value of your services. Your value ...is determined by what people think you are worth to them. It is determined by the value and urgency of the problem they are trying to solve.
Sat 30 Nov | Dustin Alexander | 'To call yourself a programmer, you need about as much training and certification as the guy who hands you shoes at the bowling alley. ' For about the first five minutes. After that you get fired. I don't think I've ever held a position or employed someone in a position beneath me where someone could pretend to know what they are doing and not get removed in a heartbeat. If you are working on a project with co-workers like that or bosses that irresponsible, I think you should take a long hard look at your own career choices. Just how valuable are you if your peers can know nothing and still get by? 'It tells me that he has horrendous career management skills.' Hmm.. Interesting. Perhaps you missed my previous points about the job market being non-existant? This guy went the same routes I did. He had over ten agencies, was sending out resumes to every classified add. We even had a group cold calling companies looking for work. Turns out the average job opening was getting hundreds of responses. 'That's quite a six months.' I'd been left with a company to take care of. When our largest client got consumed by a competitor and discarded our chief IT project, it left a smaller client with a complimentary code base out of luck. Instead of dissolving the company and leaving the client footing the bill for an unfinished product, I employed some of my previous workers part time to finish the job. That cost me all of my savings and quite a considerable amount of debt...
Sat 30 Nov | There's still milk in the udder | It does take skill to be a good software developer, good software developers are generally talented, intelligent people. At the moment these skills are not in demand, and, more than anything else, too many people are in the field purely because of the hype about the money that people were earning, most of the hype was rubbish anyway. So the guy handing out bowling shoes and the skilled software developer are on an equal footing in terms of formal qualifications, so what, it's about ability, not paperwork. My take is that at the moment most companies are belt tightening and have very few projects on the slate, this is causing a drop out in the number of people in the industry, by no means are only the best people working, much of the best contracted talent is twiddling it's thumbs at the moment, if the economy takes a year to rebound and companies start doing projects again, a lot of the employed drone workforce is going to be found out. Our IT department has dropped from 14 to 6 people over the last year, and guess what, we did'nt keep the best people, we kept the cheapest people, as soon as we are ready to do something 'big' again we'll have to get rid of most of them. Result: Soaring rates for those with the ability.
Sat 30 Nov | Disgruntled Unemployed worker | Remember this saying as a principal guiding point. 'In life you can't predict, you can only prepare. Only those who are most prepared when opportunities knock will survive.' -Disgruntled Unemployed worker
Sat 30 Nov | soaring rates | 'Result: Soaring rates for those with the ability. ' I hate to agree with Bella, but I don't think there will be 'soaring rates' for people doing standard crud desktop/enterprise apps ever again. The untold truth is that most software is not hard like quantum physics is hard, it is hard like plumbing is hard. That is, it takes about 6 months of training to become proficient enough to pass as qualified. Most programmers do the same project over and over again. Most business programming is just a lot of 'if/then' statements. Being a programmer often _IS_ the same as being a 'brickie,' only you don't have a bricklayer's union to protect you from being squeezed.
Sat 30 Nov | | Bella, what's your point? That people are not allowed to discuss their unemployment? That it's all their fault? If that is your point, you are wrong. The economy has crashed, demand has dried up. Are you just trying to be provocative?
Sat 30 Nov | theInquirer | Bella's just upset because he's been building backoffice apps for a decade and has nothing to show for it other than a bad attitude, an estranged wife, and some kids who are now calling someone else daddy.
Sun 01 Dec | X. J. Scott | Sculpting marble figures is not hard at all. It doesn't require any training or certifications. THere are no standards in the industry. You can take someone with no skills and put them to work with no training working in a bowling alley, or sculpting marble figures. It's the same thing really. Menial, unskilled labor that can be done by anyone. Or what about painting? You don't need to hire some painter with a fancy art degree to paint the story of creation on the ceiling of the sistine chapel. Why pay some idiot named Michelangelo some absurd rate for this sort of work. The process of creating a mural is well understood and has been for centuries. It's like plumbing -- maybe 6 months of training at the most, and you can turn any bloke off the street into a renaissance figure painter.
Sun 01 Dec | There's still milk in the udder | Well said, X.J. Everything on the surface is easy. Plumber, someone who can join a couple of plastic pipes together. Electrician, someone who can join a couple of wires. World champion cyclist, someone who can peddle a bit faster. Programmer, someone who can put together a few if/then statements. etc. Every task requires a skill, software development is a very large field, requiring on one hand, vast amounts of knowledge, and on the other, just enough to get the job done. The dot com boom introduced a large number of the latter type of developer to the industry. As soon as the requirements start to grow (it's dead right now) those of us who are capable of much much more than stringing together a couple of if statements are going to do very well. In the meantime, the 'if statement' developers can live in the illusion of being software development professionals.
Sun 01 Dec | soaring rates | ah yes, X.J... software is similar to sculpting or painting. udder, what exactly do you do that is 'much more than stringing together a couple of if statements?' do you two really think what you do is on par with michelangelo? or a even a 'world class cyclist?' You might need to lower your reality distortion fields for a while. I do believe that programmers should be able to make a fair living, but vastly exaggerating the worth of a programmer to the rest of the world, is sort of how we all got into the mess we are now...
Sun 01 Dec | T. Norman | The fact that there are no rigorous qualification standards for IT is a major part of the reason why the industry is so messed up today. Other professionals who had to pass rigorous and meaningful standards for entry such as doctors, lawyers, pharmacists, physical therapists, and accountants rarely if ever have to worry about being unemployed. When the demand for programmers skyrocketed, it sucked in many people whose only prior programming experience was a 1-month Visual Basic or HTML class. Many if not most of them have remained incompetent because they have not taken the initiative to learn about the fundamental computer science concepts, and so their usefulness (if any) is strictly limited to the particular language or tool they have been working with. I have come across many programmers who don't know what O(nlog(n)) means, don't know how to do a binary search to find an element in a sorted array, and don't know how to do a simple SQL foreign key join with three tables. Of the programmers I've come across in my career, I wouldn't hire at least 1/3 of them. The lack of any meaningful certification standards has also made it more difficult for HR departments to identify qualified candidates. So their main criteria ends up being “X years of experience in language Y”. When the demand shrinks as is the case today, they end up with impossible standards such as “10 years of Java”. When the demand skyrockets, they hire anybody who can spell Java. If there were some proper standards for entry into programming (current certifications such as MCSD etc. do *not* meet that criteria!), the supply would not have skyrocketed to follow the exploding demand, and today there would not be a glut of pretenders still taking up space in the profession while so many good programmers are unemployed. Of course, some of you will say that it is impossible to create good IT licensing and/or certification standards because the field changes so much. I don't believe that is the case, because the fundamental concepts have not changed that much over the years. Most of it is the same old thing wrapped up in a new syntax. The standards should focus on a solid working knowledge of the concepts, not particular languages and tools. Any language-based testing should be only for the purpose of demostrating a practical application of the concepts – not testing for knowledge of the language's syntax. Other fields also change, but that does not make those professionals obsolete. New drugs come out all the time, but that does not render the pharmacist useless. The body of underlying knowledge they have allows them to quickly acquire the additional knowledge required to produce the new drug. Similarly, the underlying knowledge of the human body allows a surgeon to learn a new surgical technique or tool much faster than someone without any medical training. Passing the certification is an indicator that they have the knowledge base, ability and desire to pick up any new and relevant bits of knowledge as they emerge. Sure, there are bad individuals in all the licensed professions. But imagine how bad it would be if anybody could wake up one day and call themselves a doctor or lawyer. While it is true that rigorous professional certification standards are not a guarantee of competence, it does a good job of weeding out most of the pretenders and upholding job security for those who do know what they are doing.
Sun 01 Dec | Bella | > That cost me all of my savings and quite a considerable amount of debt... So being unemployed didn't cause your financial downfall, it was your business decisions and risk taking that backfired. Do not blame the economy on your unfortuante risk/reward outcomes..
Sun 01 Dec | Bella | > Bella's just upset because he's been building backoffice apps for a decade and has nothing to show for it other than a bad attitude, an estranged wife, and some kids who are now calling someone else daddy. You can call it a bad attitude. I just call it as I see it. I have never been married. I do not have kids. I did leave IT to preempt that ineviatable aforementioned marital situation. But nothing to show? In the last decade, my critical & analytical thinking skills have been honed to levels I never imagined possible. I also call them 'see through the hype and bullshit' skills. Or a bad attitude, as you call it. My 'bad attitude' led me to go against the grain, sidestep the entire dotcom scam, and capitalize on my rates as a consultant since 1999, as all the lemmings left for IPO's that were clearly never to be. My 'bad attitude' also enabled me to make money in every one of these last 3 years of bear market conditions, when 95% of people just watched and prayed as their portfolios dwindled.. I have kept the books of my own S-corp, and almost know as much about taxes as a mediocre accountant. The computer literacy a programmer brings to a new career is scary and highly respected. Nothing to show? Oh yea, and I have enough money in the bank to cover about 15 years of living expenses. (10 if I get married and have 2.1 kids)
Sun 01 Dec | theInquirer | Bella, I have no idea if you have critically honed bullshit x-ray vision. By 'bad attitude,' i meant that every post of yours on this forum is an insane rant. And they usually aren't even funny. If you have 15 years of quid in the bank, retire! Maybe take a tour around the mediterranean like you razzed some 'walter mitty' in another thread about. Life's too short too spend it flaming people on the Joel on Software forum!
Sun 01 Dec | Those with knowledge will survive | When it comes to message boards, I say 'where a helmet'. Tone is just something that just can't be judged. I don't think Bella was flaming anyone. Most of the things were said matter-of-factly and I am quite interested in his opinions. For example, one of his first posts was this: >>>>>>>>>> There are tons of jobs, just not with the inflated salary you think you deserve. Stop asking for an unreasonable salary. >>>>>>>>>> There was really no response to Bella. But, as soon as the guy that said he took a salary at $11/hr chimed in, people thought his story was inspring (probably because of the 'raise' happy ending). Sometimes the truth is the hardest to hear and Bella doesn't fluff his posts up with gumdrops and lollipops. Take his advice as 'matter-of-fact', 'wear a helmet', and I bet you would find his posts more appealing.
Sun 01 Dec | Those with knowledge will survive | fudge. That was supposed to be 'wear a helmet' not 'where a helmet'.
Sun 01 Dec | Prakash S | Bella, I know what a C-Corp is, what is a S-Corp? DO you pay yourself a salary and pay taxes every week? Don't know many people who called the market right in the last 3 years. Cheers!
Sun 01 Dec | Prakash S | FYI: Enrollment in to the Computer Science program for undergraduates has dropped by about 15% in quite a few universities, at the same time grad school in computer science has seen more than 25-30% increase over the past 2 years.
Sun 01 Dec | . | T Norman, the existence of certification requirements for doctors and many other professionals actually have two roles. One is to ensure a certain minimum level of competence, as stated. The other is simply to protect the various professions from competition, in exactly the same way that programmers are now starting to see a need for protection. Once a profession can restrict employers to hiring from a certain pool, pay rates go up. Not only does the requirement for lengthy training exclude about 60 or 70 percent of people who would otherwise operate as, say, doctors, it also lets the profession control the numbers entering the university courses, and thus the amount of competition in the profession. Beautiful.
Sun 01 Dec | Bella | Very interesting stat, Prakash. People who are invested and entrenched in an IT career are probably using a master's degree as a way to find more job security or retool (A waste is you ask me, It's called 'throwing good money after bad.' ) Or, like the guy in Good Will Hunting said, 'One day you'll find out you paid $150k for an education you could have gotten for $8 at the local library' It can also mean that new grads who couldn't find work are continuing to grad school in hopes of 'riding out the storm'. (They won't) I am surprised to see a drop in undergrad, however. People (undergrad) who have nothing vested can make more clear, unbiased decisions. But on the other hand, people tend to ignore bad news, or think it won't appply to them. I'm sure the universities are still touting gov't studies showing that IT is a 'hot top 10 career'. Anything to sell you a degree. 15% may not be statistically significant either, based on normal fluxuations of enrollments.
Sun 01 Dec | Bella | Prakash, info about s-corps: http://www.ccsfo.com/basics/scorp.htm
Sun 01 Dec | Prakash S | Grad school enrollment has increased since a lot of students are comming back to complete therir PhD's, also people who have been laid off are starting their Graduate program. Students who have recently completed a BS or an MS, and have not found jobs are sticking with school.
Sun 01 Dec | Alberto | T Norman, Basically I agree with what you say. Interestingly, your comment 'I have come across many programmers who don't know what O(nlog(n)) means, don't know how to do a binary search to find an element in a sorted array, and don't know how to do a simple SQL foreign key join with three tables' leads to another question, and that is, just how relevant is 'wider knowledge'? I certainly know what O(nlog(n)) means, etc, mainly as I have a degree in mathematics, so while I have some qualifications I have no 'protective' quals certifying me as a member of a group of people who are accredited to write software. My solution to this has been to move into scientific/mathematics software development which is hard enough to keep the less talented out, but which interestingly, although well paid, rates tend to reflect more academic values rather than the silly corporate rates (which I did enjoy) paid over the last decade.
Sun 01 Dec | T. Norman | >'Not only does the requirement for lengthy training exclude about 60 or 70 percent of people who would otherwise operate as, say, doctors, it also lets the profession control the numbers entering the university courses, and thus the amount of competition in the profession. Beautiful.' Yes, the lengthy training requirements probably do exclude many from their desired professions, but I don't think it is artificially so. Should they dumb down the exams or reduce the content of the curriculum so more people can be doctors, lawyers or pharmacists? I don't think so, unless there is a bunch of useless material that can be discarded without affecting competence. They should find a way to make it less costly, but by no means should they lower the standards. At least 30% of programmers and software project managers should be doing something else for a living, because they are costing their employers more than the value they are providing, and are keeping some good programmers out of jobs. The term 'software professional' is becoming an oxymoron.
Sun 01 Dec | grad | Grad school in computer science is a waste of time, but so is most work as a programmer. I think I said that in another thread. Paying for a master's degree in 'software engineering' or 'IT' is definitely a waste of time and money. Getting a PhD in computer science may or may not be a waste of time and money. I am nerdy, and actually find many of the math-related topics in computer science somewhat interesting (I find the not-so-math related topics of CS REALLY BORING, which is why I myself, am not pursuing a PhD). So if you actually _like_ computer science, and are currently not making any money anyway, and can get into a PhD program where you are paid a stipend, that might not be such a bad life. A couple of my peers are in decent PhD programs, and whereas they have no spending money, they seem to have a lot of free time, and aren't too stressed out about anything in particular. If you were making $100K a year, and have payments on an Audi, and a condo, and were an oracle DBA... trying to go back to get CS PhD might not be the right life choice. I personally have a full time, stable job (at a government funded research lab that should stay afloat for at least a couple years). That pays pretty well. I have an LLC that I use for consulting side gigs, where I only do projects that I find 'fun,' and don't really charge a lot for them. I'm getting a part-time master's degree in molecular biology, 1/2 of which is being paid for by stable full time job. Two of my 'fun' projects at the moment are maintaing some systems for PhD/MD researchers at a local hospital. I am going to apply to medical school the year after next, when I finish up my master's degree, and will use the PhD/MDs as my letters of recommendation. I have saved 70% of the money necessary to pay for medical school. When I am a doctor I will work 15 shifts a month in the ER, and use the rest of the time to play piano, and research computational microbiology techniques. I'm not sure what the point of this last paragraph is, other than to illustrate that there are options other than taking a .NET training class in hopes of paying for your next year's worth of bologna.
Sun 01 Dec | grad | 'leads to another question, and that is, just how relevant is 'wider knowledge'? I certainly know what O(nlog(n)) means, etc, mainly as I have a degree in mathematics, so while I have some qualifications I have no 'protective' quals certifying me as a member of a group of people who are accredited to write software. ' Ultimately, I'm not sure how relevant wider knowledge is. I also have a degree in mathematics, and milked the .com boom for all it was worth. I don't recall that I ever needed to use much of my background in algorithms and computational theory, or even anything beyond rudimentary data structures. I think an error of magnitude is being made when 'software professionals' compare themselves to lawyers, doctors, etc. Much programming work does NOT require a BS degree, plus 4 more years of schooling, plus a 2 year 'residency.' If you want to use an analogy to other fields, step down the professional ladder a bit. A doctor needs to know: organic chemistry, regular chemistry, genetics, microbiology, immunology, population biology, physiology, biochemistry, physics, some degree of mathematics, etc. And she needs to deeply know enough about this broad range of topics to be able to pass a very difficult 8-hour long examination. And, that's just to GET INTO MEDICAL SCHOOL. Further down the health care professional laddder, an EMT needs to know things like 'if not breathing, then check pulse, then apply the shock paddles.' It might help if the EMT knows something about the respiratory system and electricity, but 1 year of organic chemistry probably will not help him on the job. Half of the jobs I had during the .com era I needed to know things like 'SELECT * FROM USERS WHERE LAST_NAME LIKE SPLOSKY,' and how to install the latest JDKs. I did not need to know anything about how a compiler works or any linear algebra, or really anything I learned as an undergraduate. Thus, it isn't really suprising that when EVERYONE ELSE also learned these skills, they became devalued to the point where that type of programmer makes about as much as an EMT.
Sun 01 Dec | Alberto | Yes Grad, the idea of wider knowledge is interesting, my next door neighbour is a doctor, I'm pretty sure that she's been doing the medical equivalent of 'SELECT * FROM USERS WHERE LAST_NAME LIKE SPLOSKY,' (which by the way will produce an error because of the ',') for 20 years now, so whilst she once probably did know a bit about organic chemistry, regular chemistry, genetics, microbiology, immunology, population biology, physiology, biochemistry, physics once apon a time, I'm pretty sure she has no real need of it anymore. Interestingly, there is a world wide 'nurse practitioner' program that it training nurses to do most of the work of doctors in hospitals. The cat is out of the bag, it's not as hard as it's made to sound, and ultimately, the issues are all about a workers union (called AMA) rather that the medical/technical issues. Many other professions have structured themselves in similar ways. That said, of course there are a few (and I mean a few) sensational medical doctors who will draw on all the things they have learned in order to excel in their work. It appears that due to the education boom of the last 30 years, too many people know more than is really usefull. Which leads us into many social, economic and vocational issues, far bigger than the original 'Unemployment Woes' thread originally intended.
Sun 01 Dec | T. Norman | The purpose and benefit of the 'wider knowledge' is so that people can adapt quickly to the changes in the field. When somebody has a solid knowledge of the fundamentals (whether they learned it in college or learned it on their own), you don't have to worry much about whether they will be able to pick up a new language when they have to. Without it, programmers are more liable to make bad technical decisions that hurt accuracy and performance, and take a very long time to become good enough in another language. Take somebody who hasn't learned the concepts of pointer manipulation or memory addresses, who has doing nothing but SELECT BALANCE FROM ACCOUNT for years, and put them on a C project and it is almost a guarantee for disaster. The examples I gave about the O(nlog(n)) and binary search were not some pie in the sky scenarios I imagined; they are actual examples of performance problems that occurred because the programmers did not understand those concepts. I had to step-by-step explain to them how to do a binary search so something would run in O(nlog(n)) instead of their O(n^2) implementation. They probably still didn't understand the whys and hows of evaluation big-O complexity, but at least they were able to appreciate the drop in response time drop from 40 seconds to 2 seconds. Somebody being paid over $60K should have known those things or known to look them up quickly; instead they wasted days trying random things to get the program to run faster, when that knowledge would have enabled them to spot it in minutes or prevent the problem in the first place. In addition, one of the reasons why companies are so hesitant to hire someone who does not have the exact match of languages and platforms they want is that there are now so many people in the field whose knowledge does not extend above, below, or beyond the specific tools and platforms they have been working on, and so they can take an inordinately long time to learn a new language to the point where they can write quality software. Don't say 'I shouldn't have to learn that because I won't use it'; learn those things because some people do use it and you you may also find it useful 2, 5 or 10 years from now. You don't know what in the world you will be working on a few years from now. For example, in my career I have never done any programming involving pointer manipulation (unless you consider Java's 'references' to be pointers) ... but I have written a few thousand lines of code in different languages using pointers (in college), and studied and been tested on the concepts, and I won't be afraid to go on a C++ project tomorrow ... neither do I want my current or future employer to worry about placing me on a C++ project because I don't know anything about pointers. And my prior learning of object-oriented concepts made it much easier and faster for me to pick up Java than my co-workers. As with other professions, there does not have to be a one size fits all certification. Software workers could be certified at different levels, just as there is different certification for dental hygenists, dentists, and orthodontists - with responsibilities distributed appropriately so the specialists don't waste their time with SELECT BALANCE FROM ACCOUNT and the 'Teach yourself VB in 24 hours' kiddies don't get assigned to work that requires knowledge of complex algorithms and concepts.
Sun 01 Dec | . | Re lengthy courses excluding some people who would otherwise operate as practitioners in the relevant fields, I don't think all that material is needed for most of a practitioner's work. Ninety percent of a doctor's work could be done by nurses, for example. The important point is that, when those 5 or 10 percent of unusual cases appear, the doctor or other practitioner is able to handle them properly. This is the big difference compared with software. In software, lots of practitioners are NOT able to handle the unusual conditions. This is what produces the problems. ( Note this is not related to degrees.)
Sun 01 Dec | Tj | 'But, as soon as the guy that said he took a salary at $11/hr chimed in, people thought his story was inspring (probably because of the 'raise' happy ending).' No, it was because he proved himself. And it was recognized. That's how things should work. More holistic than contracting out to some guy from the cold who doesn't care. I do tend to agree that there's a large sense of entitlement that programmers have, which can only lead to pain. We can go the route of law/medicine and be protectionist, but that will only make the field dull beyond words. I don't think there could be any meaningful certs, because I'd bet 100:1 that it would be 'C++ technique' based. Screw that, there are enough stagnation-causing forces in IT today. Anyway, programming is an extremely disruptive profession. So it's weird to be shocked when the programming biz is also being disrupted.
Sun 01 Dec | Ed the Millwright | There is only one Certification and T Norman is His prophet. Blessed be the holy Name of the Prophet that speaks the Truth regarding the Almighty Power of the Certification.
What will you do after IT? | Wed 27 Nov | Monty
Let me paint the following scenario.... Youve been in IT for 20 years, coding, business analysis, project managing, team leading, architect, etc, etc. Youre 45+ years of age, do you really want to learn the latest technology, which after all, is simply more of the same but a different flavour? Youve done it before, you can do it again, but, ho hum, its just plain boring now. After all, you have a mathematics major from an Ivy League University, youve studied Quantum Physics, Topology, OR, Calculus, etc. the concepts in IT are far less interesting. When you started you were a bit of a pioneer, occasionally wearing a Kaftan to work with sandals (joke). But now, every man and their dog is into IT, hell, even taxi drivers are reading books about OO design and doing MSCE exams. Can you be bothered? If not, what are you going to do? Assume that you are wealthy enough to own your own home, the kids have left, you have no debts and a little bit of money in the bank. What would you do? And yes, its me, and all that education and I still dont know...
Wed 27 Nov | Mr Jack | Go into academia? Become a porn star? Travel the world? Experiment with exotic drugs? Become a manager? Start your own company? Hell, I've got twenty years yet before I need a decent answer to these questions.
Wed 27 Nov | Simon Lucy | I'm 46, I don't have the advantage of money and my daughter is only 8. Other than that I understand how you feel. Apart from developing my uber-application I'm writing.
Wed 27 Nov | stephen hill | Go and do something completely different. Plant a vineyard and make wine. Buy a cheap old wooden yacht, restore it and sail it. Do voluntary work overseas. In general, have a life. You have got there, and succeeded. You own the house, you have raised your children who have now left home. Now enjoy the fruits of your labours. It doesn't have to be permenant - you can always go back to IT. After all, good employers recognise experience as a valuable skill. Enjoy yourself!
Wed 27 Nov | Jutta Jordans | > even taxi drivers are reading books about OO design and doing MSCE exams are you sure that those are not rather unemployed developers, desperately enough to drive taxi for a living ;-) But apart from that, I don't know, what do you want to do? Go into the Canadian wilderness and trap for little furry animals...travel to the Antarctic and compile a photo-collection on penguins...learn to stepdance...adopt 15 children from third world countries...write a book...learn to knit... You are a big boy now, you can do whatever you want to do. Enjoy,
Wed 27 Nov | good karma for the day, I hope | Leave a legacy. Go teach math.
Wed 27 Nov | Brad Siemens | Lament and pine mostly... oh, and golf!
Wed 27 Nov | No one | Find a comfortable reclining chair in which to remain bitter.
Wed 27 Nov | Brad Siemens | On second thought, perhaps scenario painter (I don't know how well it pays though). Or posting to boards with middle age angst reminiscent of a self destructive teen trying to impress others with pseudo-intellectual posturing... no strike that! Golf, definitely golf.
Wed 27 Nov | mackinac | I've been in software development about as long as you or even longer. The effects of the bubble have me pondering whether there is any future for an ongoing career in development. If I had the skills for it, I'd start my own business. Then I'd have a place to do good software development. But how could I run the business and be a developer at the same time? I've also considered the idea of getting a law degree or something like that. I don't like giving up on a technical career, but after this long I am starting to suspect that there isn't any such thing. I do plan to apply for a job at Microsoft. After reading some of the discussion here, it seems that not only do they have a near monopoly on PC operating system sales, but also on good software development jobs.
Wed 27 Nov | M. | Well, the way I see it. Software developement is a deeply boring thing, as all engineering. Somewhat creative, but very little so. Shallow. If you are not an engineer by birth than you are going to get bored by it sooner or later. You can do it strictly as a job, as a way to make money. You know, work to live, not live to work. What to do otherwise? Well, find your own areas of interest, what can I say.
Wed 27 Nov | CharlesC | 2 chicks at the same time.
Wed 27 Nov | Joe Paradise | Freelance cropdusting! It's the wave of the future!
Wed 27 Nov | mackinac | >>> Freelance cropdusting! <<< An interesting idea.... Nahh! Too boring. Now, being an Alaskan bush pilot is something I could go for.
Wed 27 Nov | Dignified | '2 chicks at the same time. ' Oh my, I just about sprayed my monitor with Mountain Dew after reading that. If that truly is the case, I'll have to start thinking about early retirement. ;)
Wed 27 Nov | Prakash S | Try teaching software engineering at the local univ, that should be fun sharing your experinces with others... play some golf, support your NBA/NFL/NHL team. do things that you always wanted to if you have not done them yet. travel the world.
Wed 27 Nov | clam | I have this same problem, but I'm only 28. (no kids, been in biz since age 18, math degree, etc.) 'M' and 'mackinac' are correct. Software development is fundamentally boring, and 'technical career' is an oxymoron. I'm also having difficulty figuring out what to do, as I've put in so many 80+ hour weeks, I have forgotton what I even enjoy. This is very oprah-book-club, but I've found 'making a list' helps. And setting deadlines and action plans. For instance, I listed all the stuff I wanted to know about, then figured out how I was going to learn it, and by when I should know it. Also, I started out being vague, and that didn't work. For instance, 'learning a martial art' is too vague and unquantifiable. 'I want to be able to kick someone in the head, do the splits, and lift 250 pounds in 1 year' is something amenable to a schedule. Anything from learning a musical instrument to learning how to write a book, to learning molecular biology is the same way. Now, this all presupposes that you lead your life in a goal-oriented manner. I spent about 5 months doing fuck all and enjoyed most every minute of it. However, not being old or rich enough to truly retire without society percieving me as a total bum, I thought I better get off my ass and learn some other things.
Wed 27 Nov | Monty | Thanks for the replies everybody, even Brad, who said 'Or posting to boards with middle age angst reminiscent of a self destructive teen trying to impress others with pseudo-intellectual posturing... no strike that! Golf, definitely golf. ' Why are people so cruel? I don't even like golf. '2 chicks at once' - I'd have to pay for that, I'm not the chick magnet that I was many years ago, and I'm trying to save money, plus what would I do? 'Find a comfortable reclining chair in which to remain bitter. ' - not a bad idea, some possibilities here. 'Go teach Math' - I started of my career doing this and yes, it's a possibility too, but I quit it for some reason, if only I could remember why. Perhaps I could combine these three and become a bitter and resentful math teacher, using all my earnings to pay for a monthly menage a trois. All jokes aside, it is a relevant issue, it's human nature to grow tired of repetition, no matter what it is. So I think we all need a back up plan, wish I had one. Good luck to you all!
Wed 27 Nov | Walter Rumsby | The 'two chicks' quote is a reference to Office Space ( http://us.imdb.com/Title?0151804 ) which is a comedy with more than a hint of documentary to it - if 'PeopleWare' is the book on how a software company should be run, 'Office Space' is a movie about how too many companies are run. I would have thought it to be essential viewing for all Joel On Software readers, so many posts here mirror scenes from the film. Actually, hire this film and you might get some ideas: - relax - get out doors - exercise
Wed 27 Nov | Walter Rumsby | I just remembered that IMDB provide a memorable quotes page for most titles - http://us.imdb.com/Quotes?0151804 Peter Gibbons: What would you do if you had a million dollars? Lawrence: I'll tell you what I'd do, man, two chicks at the same time, man. Peter Gibbons: That's it? If you had a million dollars, you'd do two chicks at the same time? Lawrence: Damn straight. I always wanted to do that, man. And I think if I had a million dollars I could hook that up, cause chicks dig a dude with money. Peter Gibbons: Well, not all chicks. Lawrence: Well the kind of chicks that'd double up on me do. Peter Gibbons: Good point. Lawrence: What about you, what would you do? Peter Gibbons: Besides two chicks at the same time? Lawrence: Well yeah. Peter Gibbons: Nothing. Lawrence: Nothing, huh? Peter Gibbons: I'd relax, sit on my ass all day, I would do nothing. Lawrence: Well you don't need a million dollars to do nothing, man. Just take a look at my cousin, he's broke, don't do shit.
Thu 28 Nov | Rikard Linde | Here's what I'll do: -write stories -make computer game stories -make a better world (work for UN or Dalai Lama maybe:-) -travel straight through the Sahara desert horizontally -travel straight through Africa vertically -travel by foot and bike around the Mediterreanean (eh how do you spell that, never mind you know which one I'm thinking of), Italy is a good starting point I think and I'll wait until the Palestine - Israel conflict is a bit less tense -read stories for school children There you go. Don't forget to go out and watch the sky and listen to the birds hehe, that should be a daily routine for anyone working with computers.
Sat 30 Nov | Bella | Rikard, nice fantasy life. Would you like to think about reality now? Do you have a family? a mortgage? aging parents to care for? Keep dreaming, Walter Mitty
Sat 30 Nov | travel log | Bella is remarkably cranky. Life isn't really that shitty, cheer up! Traveling through africa is relatively inexpensive. The bulk of the cost is in the plane ticket getting there. I spent 1.5 months dotting about Kenya and the whole thing cost less than $2000. I've also traveled from Rome to Barcelona and lounged about on the French and Italian riviera, with a total cost less than $2000. My roommate went to Thailand with $2200 and lived there for 6 months. My sister went to Mexico for a year for about the same cost. Travel is cheap in a lot of the world. I guess if taking 6 weeks off and spending $2K means your elderly parents die, or the bank takes away your house, or your children starve, don't do it. Otherwise, I highly recommend it.
Sun 01 Dec | Bella | travel log, I thought we were discussing 'Life after IT', not 'Vacation plans after IT'. I was skeptical of those things becoming his semi-permanent lifestyle, and not questiong the viability of those things being a 2 week vacation. I may be planning some travel myself. Can you suggest good website resources to plan budget travel like you mentioned? Thanks
Sun 01 Dec | Globetrotter | Bella, Budget travel is easy. 1. Buy the cheapest plane ticket you can find. Sometimes using an agent is the best way to do this, particularly travel agents situated tear college campuses - they are used to looking for budget deals. 2. Bring 1 backpack with no luggage. Make sure backpack is designed to meet airport carry-on requirements. DO NOT check in your backpack unless you never want to see it again which will happen only 20% of the time. Bring 2 pants, 2 shirts, 5-7 pairs underwear, A BUNGEE CLOTHESLINE (important!) and a small vial of dishwashing detergent (for washing clothes). Sleeping bag not necessary usually for most hostels, neighter is a hostelling card. (If you absolutely need one you can usually buy it on site - most hostels do not require them.) 3. Bring a guidebook that tells you where the hostels and ATM machines are in the areas you are visiting that work on your network. This is important because you will travel with NO dollars US and NO travellers cheques. 4. Don't buy any eurorail or other pass. WAAAAY cheaper to buy on site. 5. Find out where the locals eat and where they buy their bus passes if staying in any area for more than a few days. (Most hostels do kick you out after 3 days though.) Buy most food in markets. Make use of the free coffee and bread slice offered at most hostels. 6. Do not have an itinerary. Just travel about as the mood strikes. Do not make reservations. Do not be afraid to sleep on the street. 7. Make sure your return ticket is for at least 6 weeks after you arrive. 8. Speak the local languages at least a little bit. Make friends. Travel with them. Stay at their villas. Of course this is not for everyone. You have to be able to do what is necessary when it is necessary. Travelling this way, I spent 6 months in Europe at a total cost including air fare of $400/month. If you liek fancy hotels and the like, your cost may be more like $400/day and you won't see as much interesting stuff or meet as many interesting people. But that's OK too. Most people prefer things to be safe and compartmentalized.
Sun 01 Dec | travel log | 'I may be planning some travel myself. Can you suggest good website resources to plan budget travel like you mentioned? Thanks ' why yes, i'd be happy to. Much of what 'globetrotter' said above is valid, however I question what he says about the europass. (He's probably right though, if you are over 26) where do you want to go? I'm good with: Japan, East Africa, France, Spain, Italy, Germany, Austria, and USA.
Develop apps when jobhunting? | Tue 26 Nov | Karl
Im graduating college soon, but with the current job climate Im not sure Ill get a decent job immediately. To do something useful until I find a job, Im thinking of developing a medium-sized app (small enough for one person to work on). When applying for a job, can I use an application that Ive developed as a reference? Would anyone bother to look at it? Should I send it to prospective employers on a CD or should I send a webpage address in an email? Im a pretty decent developer, but I lack experience. Can I make up for some of that by showing employers that Im actually capable of developing something that works? If this is a good idea, do you have any suggestions for a suitable application to develop or what characteristics such an application should have? Thanks
Tue 26 Nov | good karma for the day, I hope | I think it's a great idea. Do you have a particular area you would like to work? Web design? Driver development? Obviously your answer to this question has a big impact on what sort of program you should undertake. Nothing in particular? Choose something general purpose. Write a web based bug tracker program or a standalone news reader, etc... Not quite up for something that big? Read the newsgroups and see if people are having recurring problems with something. Write a class to fix it.
Tue 26 Nov | Kevin | Nah forget it. Just use that time interviewing and researching potential employers. Employers aren't too interested in your past work when you are straight out of college. Sure it's nice, but its not required.
Tue 26 Nov | Ian Stallings | I think its a good idea. It will keep your skills sharp and show you can apply your knowledge in a real way.
Tue 26 Nov | Alberto | Develop something in a technology that is marketable, but in which you have little knowledge, then you can go to your interviews with something more to sell than you currently have.
Tue 26 Nov | Reginald Braithwaite-Lee | I hire software developers all the time, and this kind of initiative is EXACTLY what I look for in less experienced applicants. Bluntly, I don't want to work with anyone that could tolerate going for weeks without writing something or other. Even if I'm not a typical employer, ask yourself this question: do YOU want to work for anyone that would rather look at your marks than your code? -- Reginald Braithwaite-Lee www.braithwaite-lee.com 'Adventure is just bad planing.' --Roald Amundsen 1872-1928.
Tue 26 Nov | sam | I'm in big favor of developing while job hunting... I'm doing it now. (= My market is really really slow right now, so there's only so much jobhunting I can do in a week, and that leaves a lot of time to fill. I'm also one of those who can't go for a few weeks without creating something, or I start to get depressed, lose confidence, and so on. This also gives you a good source of code samples, if the employer asks for them. As for delivery, you can link to it from your resume site, but for all but the most trivial or self-explanatory apps, you should offer to do a demo in person. When setting up the appointment for an interview, you can say something like, 'I have an app I'd like to demo -- should take about five minutes. Will there be time?' You could also bring this up when they ask if you have any questions at the end. Oh, and make sure you run through the talk beforehand so you don't use 50% of your word count going, 'uhhh...' This should also expose major bugs or missing pieces of the app. (Since it's a personal work in progress, you can probably excuse all but the most fundamental design flaws as long as you have a really sweet feature to show off.)
Wed 27 Nov | Bill Carlson | I would wholeheartedly second what Reginald said. As an interviewer, I love to see applicants that can show me something other than a resume. With web access being nearly universal, I would put a web site on a resume. On this web site, have a substantial project with source code. Unless you're being hired by a big HR dept, a manager is going to look at your site before commiting a bunch of time to interviewing you. Put copyrights in any source so they know you wrote it. Make the code immaculate, but don't over comment or over complicate. If possible, do some boring, vertical market type thing, as that is what most jobs involve. Don't include a picture or personal information on the site. Be humble, unless you're going for consulting work. If you've got time, develop expertise in a tiny sub-specialty, write a couple articles, and post to your site. I'd hire someone who did all this stuff.
Wed 27 Nov | Andrew Reid | It's not going to impress every employer but the smart ones will take note that someone who develops stuff on the side actually enjoys developing software instead of treating it as just a job. I
Wed 27 Nov | Jutta Jordans | Definitely do so! For one thing, you will learn and profit tremendously from private projects, if you do them in a presentable way. And since you want to become a software developer I should think that it is also something that you like to do. Whenever I applied for a job in the past years, I inlcuded my URL and references to some projects I did privately. When I was invited for an interview, there were always some questions asked about those project. So even if it may not be the one decisive factor, work on private projects is noted and appreciated. (Since I do not have a college degree, it was also the only reference I had when applying for my first job and it got me in.) Have fun,
Wed 27 Nov | Tim Sullivan | I hired someone based on the app that they gave me during an interview. The application was ugly, but powerful. I saw the potential in it, and hired the guy. Best decision ever - you can teach UI design. :-)
Wed 27 Nov | Peter Ibbotson | Things that I've found impressive when looking at demo apps are: a) Does it have a proper setup program? b) Does it have help? (note the text doesn't have to be brilliant, just there) c) Would it pass 'Designed for windows'? d) Is it finished! (do tooltips work etc) Note these are only strictly relevant for Windows programs, but then that's what I hire for. I'm not sure what the equivalents are for Linux. Since you don't say what languages or environment you're targeting I can't be more specific than that.
Wed 27 Nov | Prakash S | Good idea, do anything that will give you an edge.
Wed 27 Nov | Karl | Thanks for the response guys, I really appreciate it! It sounds like most people thinks this is a pretty good idea, so I'm definitely going to go through with it if I don't find a job fast. I've always coded (yeah, not coding for long periods of time makes me feel uneasy), it's just that my projects are usually 'convenience applications' for myself and that usually aren't that useful to other people. I might take one of them and make it useful, but I think I'll start something new instead. I don't really have a strict preference in the types of applications I want to write, but I want to avoid anything too low-level such as drivers. Reading newsgroups to find problems that others want to have solved seems like a great idea, I'll definitely do that. I suppose something like this doesn't really have to be very original, I would guess that it's more important to have a _finished_ application? Alberto said 'Develop something in a technology that is marketable'. I suppose that for potential employers, it would be an advantage to develop something that is related to their market, but since I'm not that picky and since I don't know which companies I'm going to apply for jobs at, that'll be hard. Are there any areas that you'd recommend me to avoid? As for features, is it more important to have many features or is it more important to have one or two impressing features? Bill also mentions writing articles and posting them. That sounds like a great idea, thanks! I'll try to think of a few good topics to write about. Peter, Windows development is what I'm interested in. I suppose linux would be my second choice, but I really don't have much knowledge about linux development. I've been using C# and the .NET framework for the last 6 months and I really like it.
Wed 27 Nov | Justin | I used to do a lot of interviews a couple of years ago. Almost all of the candidates were graduates and therefore lacking in experience. They all did the same thing with their CVs (Resume) - pad it out to make it look long and impressive. As a potential employer, one expects this. Also, much of the previous work experience was of the menial variety. Again, to be expected. Most people have had summer jobs during college years. Lack of experience really is absolutely no problem at all. You are probably being hired for your potential (and because you are much cheaper). Any initiative will stand you in good stead, but don't go overboard. Given the choice between 2 candidates, all else being equal, I would rather give a job to someone with interesting hobbies and a social life that I have something in common with, than someone who lists their hobbies as programming in different varieties of script language. NB This is not the priority, just an added bonus. If you're going to do a project, you might also consider looking for something on www.elance.com. Don't expect to get rich. The market won't support it, at the moment. Think of it as extra professional experience with which to garnish your CV. If nothing else, you’ll get some ideas for something interesting to write. You may also learn something about dealing with clients who don't know what they want and change their minds after you've put in 100 hours work. Good luck with the job hunting.
Thu 28 Nov | Peter Ibbotson | Well since you're interested in windows development, do a simplistic .NET app. I'd be impressed by someone who could say that their app should pass the 'designed for XP' logo program. I use the word 'should' here as to do this testing you need to have some scratch PCs and if you don't or only did the clean uninstall testing bits on one OS version I'd be happy enough with that. If you're going down the dot net route, read up on the disability bits (large fonts etc), IIRC the Designed for XP logo program is a lot slacker on this the older Win2K program. Win2K had a 'designed for' and a 'independently certified' program, the latter was much easier and didn't require HTML help or .MSI file usage. If all you doing is writing 'itch' scratching programs, write one to a full professional standard. It doesn't actually have to do much (e.g. a single form to dial phone numbers from a list) providing all the additional support stuff like installers and help would prove instructive for you. I haven't yet looked properly at the disability stuff in .NET but one of our telephone support staff has severly restricted vision and watching him use a computer has made me want to do it 'right' this time (currently he uses a second 21' monitor in mouse following zoom mode). It shouldn't cost us too much in terms of time to add support for him, but I've also noticed that many users over 40-50 also like large fonts and things too. If you go down this route it would also give you an area to talk about which lots of programmers ignore. Good luck in your search for a job.
Fri 29 Nov | jb | Do it! Interviews are looking not just for technical skills but for enthusiasm and some reason to choose you rather than 10 identical candidates who are technically equally qualified. If you have a project you can talk enthusiastcally about instead of just reciting your emplyment history and ansering whatever technical questions they throw at you then you have a huge advantage.
Fri 29 Nov | jb | Grrr. Being able to spell and type properly are probably an advantage too but not one I seem to have. I'm sure you can figure out what I mean to write above...
Sat 30 Nov | WhatTimeIsItEccles | Hi I've kept myself busy by writing software since becoming unemployed in March. I did it for two reasons: 1. To maintain my C++ skills, 2. Learn new techniques In the case of (2) these included the wxWindows library and DSP. In fact I'm now so interested in DSP that if I don't get a job soon then I may apply to do an MSc in DSP, which will also keep meet out of the current wrected job market for a year. All my software is open source and is currently Linux only. Whetever happens, I can at least say I've learned something in my time 'resting'. Eccles
Sat 30 Nov | interestedInDSP | eccles, where can one do an MSc in DSP?
Sun 01 Dec | WhatTimeIsItEccles | I presume you're talking about the UK. The trick is that very few courses are called MSc in DSP, which makes searching for them difficult. The one that I currently have in one of my browser tabs is at Lancaster Uni, http://www.dcs.lancs.ac.uk/courses/postgrad/dsp.html although this one does speak its name. Many of them go under the name of 'Communication Systems' or similar, Derby Uni has one, http://www.derby.ac.uk/prospectus/postprospectus/pcoursedetails.asp?SubjectID=24&Id=189 has one of those. Its a pity there is no central resource for finding these courses. I think Leicester Uni and Sheffield Hallam also have them. The only thing that holds me back from applying is funding and whether a 2:1 in Computer Science is enough for them. Eccles
Angry manager | Tue 26 Nov | Nobody Special
The simple answer is to quit, but I want to try other things first. My manager seems to have an anger problem, with almost everyone, not just me. He doesnt exactly yell, but its obvious from his tone of voice that hes on the verge of rage most of the time. For example, if he asks me a question and I dont understand and answer immediately he gets mad. If I ask him a question and I should have known the answer (in his opinion), he gets mad. He does this to other people also. The other day I heard him use his angry tone of voice to the head of the whole organization, over something unimportant. There are reasons for staying at this job for a while. Its a good chance to get certain kinds of experience that I need, the hours and location are what I need for now, etc. My performance evaluations have been very good. My manager does not think I lack intelligence or qualifications. However, the way he often speaks to me suggests that he thinks Im stupid. As I said, he talks to most, or all, people that way. Until now I have tried to ignore it. I just assume hes moody and/or has psychological problems, or whatever. I try not to take any of it personally. However, I do complain to others I work with, so as not to feel alone in this. It can feel very humiliating to be the target of rage, especially when I cant figure out anything I did to deserve it. If I keep on accepting it, is it likely to get worse? Does this sound like an impossible situation that cannot turn out well? Ill look for some of the books about working for jerks. But Id just like to know if anyone has found a way to get along well with this kind of person. Should I just avoid him as much as possible?
Tue 26 Nov | Nat Ersoz | Time to break out the whoopie cushion...
Tue 26 Nov | Just me (Sir to you) | It might be against your nature, but have you tried shouting back?
Tue 26 Nov | HeyMacarana | If you need something from the company that you don't foresee getting anywhere else quickly, then I would just ride it out. He probably has a superiority complex and those are very difficult to deal with. Typically, in my experience, telling the person that he has a temper problem doesn't usually rectify the solution. The person will only get very defensive and lash his ill-tempered rage back at you right then. Now, the following may not be the best possible advice, so take it with a grain of salt... What he doesn't see is how it's negatively affecting the people around him. The problem is he's only seeing things from his own narrow perspective, and can't see how people will think and react to the way he carries himself. A way I've found as an effective method of getting the person to 'see' how he's acting from the perspective of others is forcing for him to play the role of others looking at himself. Well, the only way to do that is to start mimicing how your boss acts, by being ill-tempered, condescending, etc. to others besides the boss himself when he's around. That way he'll be forced to see how his angry tones aren't the best way of dealing with situations. Of course, in the process of trying to enlighten your boss, you may end up alienating yourself from the rest of the company as your boss has done. I told you this might not be the best possible advice :) So there doesn't seem to be any perfect solution, and any decision you make will have tradeoffs. You'll have to choose which tradeoff you can live with and prefer. Good luck.
Tue 26 Nov | programmer | Nobody Special -- I feel for you. There's not an easy way to deal with a manager like this, and the advice I offer you is only speculative. When he uses his angry tone of voice in a situation where you don't answer his question with sufficient alacrity, perhaps you can try a reasonable approach and say something along these lines: 'Bob, it sounds from the tone of your voice that you're irritated with me. Have I done something to upset you? The only reason I didn't answer your question immediately was that I wanted to clarify what you meant.' My theory is that this anger is a manifestation of a generalized, irrational rage that affects this man's entire life, or at least his entire worklife. Because it is irrational, confronting it head-on by asking him to articulate his reasons for being angry may actually help to subdue the anger -- or at least not unleash it on you. In other words, you're 'calling him on it.' Once he is asked to articulate his reasons, and is forced to either (a) admit that he has no real reason for being angry, or (b) offer a patently absurd explanation for being angry, he may actually calm down. My suspicion is that people in your company allow him to get away with this because he's not exploding with loud displays of rage. The attitude people in your company may have is, 'Well, he only acts irritated, and he doesn't start yelling and screaming, so we will let it slide.' The problem with that attitude is that the angry tone of voice you describe can be every bit as oppressive and traumatic to employees as screaming fits. If you make it clear that you notice his ridiculous anger, and ask him to explain it, he may realize how irrational it is, and suppress his angry tone of voice (at least with you). In fact, perhaps you could make a little joke out of it: 'Uh-oh, Bob, you're angry again. Did you forget to take your chill-pill this morning?' The bottom line, in my opinion, is that confronting this person's crap head on is the best way to defuse it. Good luck.
Tue 26 Nov | anon | Videotape him.
Tue 26 Nov | Matt H. | I highly suggest Quality Software management, volume III by Weinberg. While it's possible that your boss is just an angry guy (as stated above), I can offer an alternative explanation: When your boss gets mad, people do whatever he wants. This -rewards- the act of getting mad. However, after awhile, morale sags, and people are doing less than they were before. So he gets mad. And they do whatever he wants ... for awhile. In his book, Weinberg explains this as an addiction cycle, and talks about steps to break the addiction. One good piece of advice is to stand your ground and not be intimidated: EVER. You have to convince him that being mean won't work. Weinberg comes up with several methods of disarming the guy, but the best one had probably been hinted at here: humor. A little well-timed humor can change the subject or, better yet, get the guy to realize that he's being unreasonable. (I suck at humor. If my boss were mad at me because I couldn't answer a question, the only thing I could try is 'What kind of swallow? An African Swallow or an American Swallow? ') :-) Good luck. If it truely is a rage thing, you might want to check out 'Stop walking on eggshells' - that's about borderline personality disorder. regards,
Tue 26 Nov | . | Get a girlfriend for him :-)
Tue 26 Nov | TK | There is a terrific book called 'The Gentle Art of Verbal Self Defense.' You might also do a search for 'Serial Bully' which is a well known term for folks we have all met from time to time. These resources can help you pinpoint the nature of your bosses attack and if and how you can respond to them without going on the 'verbal attack' yourself. The reply from 'programmer' above is on the money. My worst experience with a serial bully was in a PTA. I did some research on the bully's behavior and passed the information on to the rest of the PTA leadership. Over a brief time the bully lost his/her ability to intmidate people and shortly after that person was out. It doesn't always work that way or that well, particulary when the bully has some hire/fire kind of power over you or is in your family. In any case good people suffer these attacked and often think they deserve it because they cling to the idea that there is a crumb of truth in what the attacker says. Once you can recognize that your behavior is not the real cause of the attacks. You'll feel better at the very least. If you can defend yourself from attacks, even better. I've certainly confronted verbal bullys. It's a major hot button for me in that it often overcomes my natural sense of avoiding confrontation. In nearly all cases my 'I'm not gonna take this crap from you anymore' response gets the bully off of my back.
Tue 26 Nov | Nat Ersoz | Get him a girl friend and then video tape _them_. Mmmmm. Leverage.
Tue 26 Nov | Nick B. | “Nobody Special”, I think I used to work at the place your working at now! Regardless, this manager I worked for would yell at anyone about anything. He would yell at anyone who didn’t agree with him, even when he was wrong. He would yell at people over things they had no control over. Needless to say, turnover was very high, and the company still continues to bleed money from those who finance it. This manager was the classic playground bully who throws sand in everyone’s’ face. It would appear that bullyish personality traits are often mistaken for leadership ability. True, some people need to be yelled at and bullied in order to be productive. With others, especially intelligent and skilled workers who enjoy what they do, yelling and bullying will have the opposite effect (obviously because they stop enjoying what they are doing). The biggest problem with this manager I was working for was that it was the good programmers in the company that would quit because of him. I tried transferring to another development group, but this manager delayed the transfer for more than 6 months. He eventually allowed it, but not before I had found another job. I hate to say it, but I don’t know if there is any other option than to quit. If there is, I would say I would have to agree with tk’s “I'm not gonna take this crap from you anymore” response. I’ve seen people use this “If you’re nice, I’m nice. If you’re an asshole, I’m an asshole.” approach effectively. However, I’ve always been the type to avoid confrontation. I guess you have to weigh how valuable the job is to you, what you’re willing to put up with, and what you are willing to do when bullied.
Tue 26 Nov | Igor K. | Just curious - is English your manager's mother tongue? English is not my first language and I found that culturally conditioned things like talking distance, tone loudness, strange intonations, unusual gestures, etc. can very often misguide people. I remember, my co-worker (he's American) had a presentation for an Israeli company. After the presentation, they asked him a lot of questions. Later, he told me: 'I think I failed the presentation, they were mad at me, shouted, I felt almost like they will beat me'. However, later we found that in fact the Israelis were extremely happy with the presentation. They just talk this way. And we got a big contract as a result. Go figure :)
Tue 26 Nov | msc | Anger == fear Ask him if he is afraid of something.
Tue 26 Nov | James Montebello | I'm surprised no one has yet asked: what does this manager's boss think? This isn't a question you're likely to want to ask directly, but if he's using this same tactic on his superior (as was mentioned), they almost certainly know how he handles those under him. If so, they should be thinking of how to deal with the problem themselves. If they aren't, then it's unlikely they ever will, and it speaks very poorly of them. Bad upper management is all too common, and generally unfixable. Ride the problem out, and start looking elsewhere. Either it will be fixed by those above, or you'll eventually find a better gig. Talking to this guy directly or attempting to confront them is probably not worthwhile, and may be career-limiting.
Tue 26 Nov | Nobody Special | Thanks for the replies. I'd like to elaborate a little more. Yes, his native language is English and I am not mistaking his tone. He practically bangs his fists on the table and his face gets red. I'm starting to be afraid to ask him anything. This is bad because we have to work closely. I have considered having an angry tone myself, or at least acting more forceful. However, I have built up quite a lot of anger towards him and I'm afraid if I start to let it out I will get into an irrational rage myself. I have considered being truthful and letting him know he sometimes comes across as extremely impatient. It's possible he has no idea of his effect on others. Once he told me that he's very 'direct' and does not 'sugar coat' his criticism. I told him that's fine, I like directness. Maybe that's why it's been getting worse -- he thinks I don't mind at all, so he has a convenient outlet for his generalized frustration. One complication is that he knows more about certain things than I do. Also, he developed a lot of the system and therefore has an advantage over others in understanding it. This gives him a real reason to feel superior and to become exasperated with anyone who is below his level. On the other hand he has some good qualities. He can admit it when he makes a mistake or doesn't know something, and he encourages me to learn new things. But his anger really paralyzes me at times. I'm afraid to make a mistake, afraid I might forget something. And if I'm ever uncertain about what he wants me to do, I'm afraid to get clarification. Since I've been at this job (over a year), I have not made mistakes or forgotten anything important, so it's not like he has any legitimate reason for having lost patience with me. I have not been careless or lazy -- he stated the opposite on my formal review. It sometimes is hard to concentrate on what I'm supposed to be accomplishing, because I spend more energy worrying what he'll get angry about next. By the way, he also gets angry at himself and curses at his computer all day.
Tue 26 Nov | Robert C. | I have just another theory for your boss' behavior. (Pardon my bad english) This guy just reaches for perfection. He expects everyone to be perfect immediately, in all situation. Seems he appreciates your work, but what make him angry is when you do not stand to his ideal level of perfection. This is just a theory, but this is not an excuse for his pathological behavior. A cure in this case would be to make him understand total perfection is a goal (and a process), not a state. Another theory is this person is utterly lacking self confidence. In his world's view, everyone abilities are at least equal or above his ones. So when he finds a 'crack' in this über-man view of the other person, his ego boosts into anger, to express his temporary superiority. In this case, I'm afraid there is no solution except for him to receive psychological counseling. Good luck!
Tue 26 Nov | Karl Perry | Nobody, You say, 'Once he told me that he's very 'direct' and does not 'sugar coat' his criticism. I told him that's fine, I like directness. Maybe that's why it's been getting worse -- he thinks I don't mind at all, so he has a convenient outlet for his generalized frustration.' Giving someone permission to be direct with you doesn't equate to giving them permission to treat you like a doormat. You don't have to take what he's dishing out. 'One complication is that he knows more about certain things than I do. Also, he developed a lot of the system and therefore has an advantage over others in understanding it. This gives him a real reason to feel superior and to become exasperated with anyone who is below his level.' Actually, it gives him a real reason to be more patient with people, not less. If he's the brains, he should know how long it took him to figure it out, and should give everyone else at least as much time. Please don't make excuses for your manager. I suggest you find a way to discuss his behavior with his superior, or your HR department. What he's doing is slowly destroying his department, and he may not even realize it. You could do him a real favor by starting the process of 'civilizing' him.
Tue 26 Nov | jb | Your statement: 'But his anger really paralyzes me at times. I'm afraid to make a mistake, afraid I might forget something. And if I'm ever uncertain about what he wants me to do, I'm afraid to get clarification' really worries me. I do suggest that it the problem does not get solved soon that you do look for another job or at least a transfer to another manager. This sort of stress can lead to serious health problems (and I know this from personal experience). At the end of the day your health and wellbeing are more important than your career.
Tue 26 Nov | AW | 'Also, he developed a lot of the system and therefore has an advantage over others in understanding it.' How long has he been a manager? I would guess this is his first managerial gig. Sounds like he may have been forced into this posistion. Probably a former 'code cowboy' who is in love with his code and feels threatened by others 'messing around' with it...
Tue 26 Nov | J. D. Trollinger | There's no good answer to these types of situations. I spent about a year working for a woman who oozed hostility from every pore. It was impossible to have a conversation with her, because she would interrupt you after the first three words left your mouth. The only solution was a transfer. (Incidentally, she's still with the company, but it's because she's good at kissing the butts of the people above her.)
Tue 26 Nov | Brent P. Newhall | I wholeheartedly second the advice that, when he exhibits this behavior, you verbally identify it as soon as possible. This means that he won't get away with his unacceptable behavior, while also providing a specific time to address it. Irrational anger like this is often caused by an attempt to fill a need. Perhaps he feels insecure about his position, and thus feels that he needs to be forceful to get his point across. Perhaps he feels superior, and feels a need to shore up his position. Perhaps he hates conflict, and he's found that his anger will quickly stop any threatening conversation. Perhaps he really wants to help, but simply can't understand why people aren't as smart as he is, which frustrates him no end. Whatever his reasons, trying to attack the anger itself probably won't solve his problem in the long term. However, it will teach him that such behavior is unacceptable when he's dealing with you, so he can modify his behavior to you. And it might provide him with an opportunity to take a fresh look at his anger problem.
Tue 26 Nov | Susi Sloan | Confront him with honesty. I would let him know that you respect his work and his position, but that his temper is really getting to you and is starting to have a big impact on your work. Let him know that you don't appreciate being delt with in such a manner, and be honest with the fact that you never know what he's going to get mad over next, therefore you're reluctant to interact with him. My sister works in commercial construction, and when she arrived at her last jobsite she immediately noticed that the manager had a temper and yelled at everyone. She took him aside right away and told him that if he ever had a problem with her or her work, to simply come and talk to her calmly about it. She told him that if he ever yelled at her he'd make her cry (she never cries), and that she'd have leave for the rest of the day. She was honest and respectful in the way she spoke to him about it, and he has never yelled at her (even though he continues to yell at others on the jobsite). If you wish to remain there for any length of time, you'll have to speak to him about it. He may not even realize he's doing it if someone doesn't bring it to his attention.
Tue 26 Nov | Dr.Phil | Nobody Special: But his anger really paralyzes me at times. I'm afraid to make a mistake, afraid I might forget something. And if I'm ever uncertain about what he wants me to do, I'm afraid to get clarification. Since I've been at this job (over a year), I have not made mistakes or forgotten anything important, so it's not like he has any legitimate reason for having lost patience with me. I have not been careless or lazy -- he stated the opposite on my formal review. It sometimes is hard to concentrate on what I'm supposed to be accomplishing, because I spend more energy worrying what he'll get angry about next. This excerpt summarizes the situation quite nicely. It clearly explains your feelings and identifies the behaviour, on his part, that you find offensive. Cut. Paste. Email. Feel free to correct any necessary grammar to form a cohert message. Also, I might suggest beginning with a few compliments on the things he does well (you did mention a couple throughout your posts). Everyone likes to be buttered up.
Tue 26 Nov | Alberto | It sounds to me like your manager may find himself without a job soon. Rage is not tolerated well in most corporate environments.
Tue 26 Nov | Beth | Either this guy isn't aware of what he's doing or he is aware of it and it somehow gets him the results he wants. I think that in this kind of situation, I'd try smiling a lot and being very polite. An angry person can shout over another angry person, but anger is not the least bit effective when the person on the receiving end of it doesn't respond to it. That's much harder than getting angry back, but it does work.
Tue 26 Nov | M. | Sometimes, people somehow 'sink' into a certain pattern of acting. For example: somebody gets used to a friend always paying for the pizza; somebody gets used to having a condescent tone when answering questions from someone else. And so on. These situations can be acceptable a few times, but in time they get unbearable. At the same time, the person causing them does not notice it, mainly for the same reason it is much easier to forget that you have borrowed money from someone than that you have lent it to someone. They do get advantages from it, at the same time it seems that the other person doesn't notice. The way out is to make it clear to the person that the behaviour is not longer acceptable. That may be quite hard, and it may take some time. In your case, saying a short and slightly irritated 'please stop doing that, I don't like it' and then returning to the matter at hand might work. Somehow, like a parent would say to a noisy child while talking on the phone. Which makes me think of a great book I read once, called 'Games People Play' by Eric M.D. Berne. It's mostly about that. Well, just my humble opinion.
Tue 26 Nov | Bella | Hmm, this sounds comical. Can you tape record your next interaction (click it on when the episode starts to escalate. ), and then post the MP3? I will pay for the mini-taperecorder.
Tue 26 Nov | Bella | You need to draw a line in the sand, and tell him what is not acceptable. How is your savings situation? The more 'fuck you' money you have, the more you can stand up for yourself (and gain more respect for yourself) Those with children, mortgages, and lazy wives who take tennis lessons all day need to stick to 'Yes sir, may I have another'. Maybe not you.
Tue 26 Nov | Bella | PS: I wasn't kidding about paying for the tape recorder. This sounds real funny., I'd love to hear.
Tue 26 Nov | Nobody Special | The tape recorder idea is actually pretty good. If I listen to it later in private I'll be able to judge objectively how angry or irrational he really was. When it's happening I'm sort of in shock and it's hard to remember after. I think the tape recorder would also be extremely useful in my relationship. Thanks for the good idea Bella.
Tue 26 Nov | Nobody Special | [How is your savings situation? The more 'fuck you' money you have, the more you can stand up for yourself] I've been working hard on saving, for just that reason. I'm single, over 40, with about $150k. Not nearly enough. I'd hate to be out of work for a year or more and go through part of it. I do freelance work in addition to this job, and I can save at least $20k every year. Although I love to work, people like my manager take the fun out of it. Having enough 'fuck you' money could make it fun again. I could quit the job and just work freelance.
Wed 27 Nov | Simon Lucy | Its not your problem. It sounds as if this person has become the company's prima donna and that his behaviour is tolerated because of his perceived value. I was a consultant at a growing company for a while that had this problem. The only person he didn't shout at was me, this could be because I was considerably bigger than him or that he knew I knew as much as he did. He'd crafted and created his own system and the company relied upon it to do what they needed to do. However they were growing faster than any system was ever likely to cope with and it naturally creaked and had to be stuck back together at times. And then they embarked on a rewrite. Anyhow, at some point the MD talked to me off-site about some of their issues and I pointed out that right now this key member of staff was a liability and getting in the way. He either had to be managed or it was likely that the pack of cards would collapse. The MD did take on some of the suggestions, he didn't completely sideline this person but he did ameliorate it by separating the support staff from development. That way at least the daily irritations didn't blow up in everyone's face. So, I think in the end you will either have to bite back, institute a formal complaint, tolerate it or leave.
Wed 27 Nov | Bill Carlson | For your own mental health and self-respect, you need to stand up to this guy. Something on the order of: 'I appreciate that you're upset. However, I'm performing to the best of my abilities and don't deserve to be spoken to like this. If we're going to work together, you're going to have to calm down' I know it's hard to deliver this kind of statement; it doesn't 'flow' well into a conversation. I wouldn't recommend 'offical' channels, such as HR, at least right away. Looks bad, especially if your manager has clout within the company. Do you know if he was always an asshole? Or, was there a recent divorce or trauma? Did he have a stroke? Do you know what prior subordinates may have thought of him? Could you call his old company? Awkward, but you could give a bogus name and try it. Best of luck. No one deserves this.
Wed 27 Nov | Law of the Jungle | As Simon alluded, size does matter. I am 6ft exactly, generally, but not always, people are nice to me at work. I have a friend who is 6'4'' generally if people at work are not nice to him he just leaves a pregnant pause before he responds, nearly always they never do it again. People Suck.
Wed 27 Nov | Nobody Special | More information: He hasn't been a manager long, only about 2 years. Before that he did everything himself. His background includes the domain knowledge, which is one reason he is valued by this organization. He can communicate with the users of the system and can understand it in ways non-experts might not. He is highly educated and intelligent, and also very knowledgeable about this kind of software. There is another guy in the department who seems to be all-knowing when it comes to IT, and from what I've heard my manager does not get angry at him. From what I've heard he only respects people who are as 'smart' as he is. Well that leaves me feeling inferior. I used to think I was really smart, but lately I wonder. How intelligent a person appears is a combination of their natural brain power and how much they know about a given subject (by my definition, anyway). Therefore, no matter how smart a person may be in some domains they will be quite ignorant in many others. I admit that in this particular thing my manager is superior to me, and that's ok. But the feeling I get from his contemptuous way of speaking is that he thinks I'm generally stupid. I have to keep reminding myself that I know things he doesn't in many other areas, that I'm at this job to learn this particular thing, and he is the best person to learn it from.
Wed 27 Nov | Ichabod Crane | Forget analyzing him and get out. Your manager sounds like someone who could show up at work any day with a gun and start shooting people. This is a potentialy dangerous situation and no job is worth putting your life in danger like that.
Wed 27 Nov | Just me (Sir to you) | Ichabod, While I have both know and heard of many managers that could fit the 'angry manager' profile scetched here, I know of no instance where they have acted according to the script you present here. I think the employee has many times more chance being hit by a car on his way to work this morning than being shot by the red faced bully in his lifetime. Would you therefore advice him to stay locked in his flat from now on?
Wed 27 Nov | Fernanda Stickpot | May I suggest several points of technique when talking with this man: - make sure you keep breathing deeply and evenly. I know from experience that it is terribly easy to start holding your breath in these situations, so you will have to make a conscious effort to do this. - as this guy gets louder, become more soft-spoken. As he talks faster, you talk slower. - think through your body and stand firm. Responses that others have suggested may be right, although I've never personally experienced a situation where those ideas worked. I think it depends on the bully. In my experience almost any response you try, except the above responses, will rile the bully. Confronting him may send him into a frenzy of vindictiveness, ignoring him may send him into a frenzy of trying harder to provoke you, mirroring his behaviour may send him into a frenzy of self-righteous indignation, and so on. This is because this guy is essentially having his tantrums on his own, without you, and your responses only superficially appear to influence him. The fact that he is able to write accurate performance reviews suggests to me that he is able to be reasonable when he has time to sit down and think about what he is doing. From what you say, his temper comes out in interpersonal situations, and is therefore probably a matter of being highly strung and lacking in self-control. There isn't much you can do in the way of figuring out why he is this way. I don't really think we can do much to influence people's character one way or another; we can only manage our own responses to them in a way which may or may not nudge them in a different direction. And most of all, FIND A DIFFERENT JOB. If upper management is getting this crap from him, observing it every day, and doing nothing, I doubt you'll get very far in filing a grievance. (Though you could try it, if you really feel it would help.) Good luck.
Wed 27 Nov | | I think you're worried about nothing. The guy apparently does a good job and treats you well and honestly, except that he gets angry. Big deal. You just have to let him know you're on his wavelength and you're fixing whatever it is that's stressing him.
Wed 27 Nov | Steve Barbour | Heh, I had few leaders or two like this in the military. Try smiling at him while he's throwing his tantrum. If you appear to be unruffled by his behaviour it may force him to seek another tack. If nothing else, it'll make him wonder what the hell you're smiling about. When he asks you can explain how amusing his antics are, and how you get a kick out of watching people scurry away from him when he displays them. You could also try telling him how amusing everyone else finds it too, and throw in a mention of the guy in your office who does a really great impression of him (there has to be at least one person who does this, there always is).
Wed 27 Nov | Tj | I've known people like this, the best thing to do is be at least as good at your job as they. If this is not worth it, quit. It is unlikely that there will be a touchy-feely way of doing things, and I don't think fucking with him mentally will work either. But no harm in broaching the subject with him, in a professional manner. Email him, it's a pretty neutral method of communication. Don't complain, do it just to understand.
Wed 27 Nov | mark | ok, I've been in this situation before. I worked for a small software company in South Jersey for almost 2 years, that never had more than 15 employees. In the 2 years that I worked there, I outlasted every employee that was there when I started, with the exception of my boss. I also watched more than 25 employees come and go in this time, so many that I created a spreadsheet with their names and why they left, and how long they made it. I am not shitting you, a few didn't make it through the first day. I stuck around for awhile, because I was unexperienced. I watched this guy treat everyone, programmers, tech support, clients, and potential clients, like total crap. The sarcasm was unparralled; I'd never seen anything like it in my life. By the end of the first year, I was raising my voice back at him. By 18 months, I had mastered the art of sadistic sarcasm (that's sarcasm that's intended to make someone truly feel stupid, not to make someone laugh). I talked down to him like a four year old sometimes. My advice is this-- Don't take anything he says too seriously. We had several screaming matches, and I enjoyed every one. Nine times out of Ten, when we'd argue, I'd have a smile on my face. That just made him more angry, but it gave me great satisfaction. I learned a lot there, and I'm glad I stuck around as long as I did. Oh, or you could just set him on fire. Management hates that.
Wed 27 Nov | David Clayworth | Be very careful about upping the confrontation stakes, i.e. shouting back. It might work, but if it doesn't you probably have no more cards to play. Your only option then will be to quit. However this isn't exactly an uncommon situation, and your company may have ways it expects you to deal with this situation. None of them are probably going to be quick, so prepare for many months of hard work. Obviously, as with any problem like this, your recourse should be to talk to the angry manager if you haven't already done so. If that doesn't get anywhere, for heaven's sake talk to someone. Staying silent or just quitting are helping nobody (it may come to quitting later, or you may not want to go through the process of trying to fix this). The next person to talk to is your boss' boss, or someone in HR. Even a small company should have one person outside the management chain that you can go to. If you have one you might go to a Trade Union or professional association representitive. They can give you better advice on what to do next. Try all the above people until you get someone who gives a satisfactory response. HR people are often best, as their job is dealing with people. Responses you might get include: suggested ways of dealing with the problem; sending you on a 'working with people' type of course; sending your boss on a 'working with people' type course; sitting down with an intermediary and working through the problem. Whoever you talk to mention that this is affecting your work, so it becomes a company issue. Finally, try this book: http://www.successunlimited.co.uk/books/bistress.htm
Wed 27 Nov | Prakash S | Irrespective of you sticking there or leaving that place, do not burn any bridges. You never know... About recording the stuff he says, be careful, if your boss or anyone finds out, your goose is cooked! About his attitutde, just don't take anything personally, but don't take shit from him, know where to draw a line. Be cocky, not arrogant.
Thu 28 Nov | Alberto | Jab a sharp knife deeply into his throat, preferably, severing his aorta. Then, scream, 'my God, he's just stabbed himself.' Because of his past behaviour, most people will believe you.
Thu 28 Nov | Ged Byrne | It sounds to me like you are witnessing frustration rather than anger. I think its impossible to simmer like this for weeks on end without ever blowing your top. This man has a very specialised domain knowledge, and he might find that difficult to express to others. The necessity to keep repeating the same, obvious, fundemental facts to people can really start to wind somebody up. Have you ever had somebody non-technical with a computer problem. Something simple, and you tell them what to do to fix it (say, clear the browsers cache). They they start to doubt you answer, start asking for explanations of why. You really don't want to have to start explaining the way a browser caches files. You've told them how to fix there problem, and they are not excepting your authority on the subject. I've been in this position, and I find I have to stop myself from getting annoyed and showing it. Could this manager be in a similar situation? The sympons you describe seem to describe this frustration and impatiance, rather than anger.
Thu 28 Nov | Anonymous Coward | I've read some of the suggestions on how to persuade the guy to change his behavior, but I'm deeply skeptical. Maybe it's just me, but I have never been successful in changing other people who irritated me. This sounds like some kind of touchy-feely self-help principle, but I think that the only person you can really change is yourself. Just re-train your mind not to stay calm in the face of the guy's hostility. Remember this principle: Never try to teach a pig to sing. It wastes your time, and it annoys the pig.
Thu 28 Nov | Anonymous Coward | 'Just re-train your mind not to stay calm in the face of the guy's hostility.' Um, sorry -- disregard the word 'not'. (Why can't we edit these posts?)
Thu 28 Nov | Nobody Special | [The necessity to keep repeating the same, obvious, fundemental facts to people can really start to wind somebody up.] The guy is not repeating obvious fundamental facts to me. He blew up the other day because HE didn't know the answer to my question. If it was so simple and obvious, then he should have known the answer. As it turned out, the problem was with his program. Is that a legitimate and rational reason to blow up at me??? My program had to use his program. Well doesn't it make sense to ask the person who wrote it why it didn't work? Or should I have spent the rest of the day trying to find out? In addition, I didn't have a password I would have needed to run it. He got into such a frustrated state he became irrational, barking at me to run a program I didn't have a password for. So much for your dumb theory.
Thu 28 Nov | Hardware Guy | Here are a couple of little-known secrets about managers. a) Managers are not mind readers. b) Technical managers, even less so. In all likelihood, your manager does not know he's behaving like a jerk. (Remember that report that came out earlier this year, showing that incompetent people don't know they're incompetent? Getting angry with employees for no good reason on a regular basis is managerial incompetence.) Or if he does suspect he's a jerk, he doesn't know the sheer magnitude of his jerkiness. And he doesn't know how upset you are. Or that you're at a loss about what to do. Here's what you have to do. You have to tell him. You will not, of course, say, 'You're a colossal jerk,' unless that statement is accompanied by your resignation letter. Instead, you will tell him calmly, *specifically*, what it is about his behavior that bugs you. Give examples. Be dispassionate. Be firm in your conviction that the problem must be taken seriously. Play your best card: of the two of you, you're the adult. The angrier he gets, the calmer you get. Is this guaranteed to work? Are you kidding? Maybe it will, maybe it won't. Sometimes jerkitude makes a person impervious to rational criticism. But from everything you've told us, he hasn't picked up any subtle clues that you're unhappy. So this isn't the time for the passive-aggressive stuff that engineers tend to resort to (I'll turn in bad work! I'll poison all the plants in his office!) instead of the more straightforward-but-painful approach of actually trying to talk to him. Tell him clearly and objectively what's wrong; don't be tit-for-tat nasty, but don't hedge, either. If that doesn't work, go to his manager. And if that doesn't work, it's shop-for-a-job time. Use this problem as an exercise in learning how to deal with the lame and irrational. I guarantee this won't be the last time in your career that such knowledge will come in handy.
Fri 29 Nov | anonQAguy | 'Remember this principle: Never try to teach a pig to sing. It wastes your time, and it annoys the pig.' another one I heard some years ago, kind of like this one: 'Never fight with a pig. You both get muddy, but the difference is that the pig likes it.'
Fri 29 Nov | Ged Byrne | ----------------------------------------------------------------- The guy is not repeating obvious fundamental facts to me. He blew up the other day because HE didn't know the answer to my question. If it was so simple and obvious, then he should have known the answer. ---------------------------------------------- Nobody Special Actually, this fits in with my theory. I was writing from his perspective. You probably asked a question that he should be able to answer easily - yet he can't. He considers himself smart, and puts a lot of value to this and yet he cannot answer your question. Frustration mounts. Its surprising how much knowledge we think we have, but when somebody challanges us our ignorance is exposed. We thought we were experts and all we really had is a bunch of leaky abstractions. When somebody asks me to explain _why_ they have to reboot their computer, I get frustrated. The real reason being that I don't know exactly why. I have ideas, theories, vague images of leaking memory, but I can't give a proper explanation. I just know from experience. Of course, his behaviour is still irrational and unacceptable. The guy has a problem. I'm just trying to be 'touchy feely' and relate. ----------------------------------------------------------------- So much for your dumb theory. ---------------------------------------------- Nobody Special See, your starting to get a little aggressive yourself ;)
Fri 29 Nov | Tj | Yeah, Nobody Special is getting a bit aggressive. If you have any friends or close family worth anything (some coders don't), I'd suggest you take care of this problem soon. I still don't think there's any non-neutral way to it. Maybe he was beaten as a child, for all we know, and that part of his psychology is inaccessible to you.
Fri 29 Nov | Been there, been that | I think Ged has the right idea. When someone is frustrated, they can often become irrational. Its not you question that frustrated as much as it pushed him over the edge. Once you hit you limit, its very hard to clear out your “frustration cache” and start over. You tend to remain in a high state of tension. What you need to do is look at this objectively. Why is he frustrated? If you can identify some of the major issues, you might be able to “connect” with him. Once he sees you as someone who understands his pain things will noticeable improve. I had this problem, and as other have said above, didn’t know it. I was always pissed off and alienating people but I didn’t see it. I was simply to frustrated to notice! Here were my problems (as I identified them): 1. The management was incompetent. I couldn’t exaggerate how badly they handled things. This was because the product was originally written as an internal system for their company. They later shut down that business and “became” a software company. Need I say more? 2. I had lots of domain knowledge and knew the system inside and out. The problem was, it wasn’t very useful to anyone else. I wanted to change jobs because I disliked management so much, but I couldn’t because my skills were not in demand. I felt trapped in my job. 3. Because of management’s bad practices, I was forced to “protect” my team from them. My team never knew all of the fires I put out because I consciously protected them from it. This meant that I was always miserable and my team was always happy. I think part of me hated them for that…. In fact, it’s making me grumpy now… :) One member of my team was a specialist at accounting software development. Because of this, he was often at high-level meetings with me. He never had to deal with the crap, but he knew about it. That led to a great working relationship between us. In fact, he was the one who sat me down and told me I was alienating the team. The solution? I treated the team better; blowing some budget money on pizza’s each Friday and the like (I took all 35 to Starwars Episode I). Things got better and I found I really liked my team. In fact, 10 of us left together and started our own company. The upside of bad management? They weren’t smart enough to put in “non-compete” clauses into their contracts…. ;)
Fri 29 Nov | Nobody Special | Being subjected to his anger and not being able to fight back is making me one angry coder. I get 'revenge' by making fun of him with co-workers (everyone knows what he's like), taking longer breaks, staring at the computer screen because I'm too mad to think, etc. Yes, the built-up rage is also harmful to my close relationships. My manager does seem to be a fair and rational person. One problem may be that he feels superior because of his high intelligence; even though he understands intellectually that he shouldn't look down on people, it's a habit he can't break. And he knows intellectually that no one knows everything, not even him, but it still drives him nuts.
Fri 29 Nov | Ged Byrne | Perhaps you can make fair sport out of this. Make a list of all his characteristic angry behaviour and create a score sheet. 1 point for a slight raise of voice. 5 points for a huff and a puff. 50 points if you can make him blow his top and stamp his feet like a little child. Then you can all have a go at winding him up. Everybody buys the highest scorer a beer at the end of the week:)
Sat 30 Nov | Pete | I don't really have much concrete advice for you, NobodySpecial, but I can say that there are quite a few good suggestions in this thread. I would also say that it's very very very rare that assholes realise what they are (whatever this guy's abilities might be, self-perception is obviously not one of them) and make an effort to change. I'm sure it does happen sometimes, but I wouldn't say playing the odds is much more than optimism. I know it's really tough to quit a job over something like this. One of the things I've found (for myself) to be a major psychological plus about working as a contractor is that you always know it will end... and it's sooo much easier to just not renew a contract (as opposed to quitting it outright). Heh, a goddamn fscking drunk is bashing on the door and front windows of our house (it's currently half-past three in the morning) demanding money. Not too bright, doesn't seem to understand 'no, fuck off', nor 'police have been called'... *pause* Heh, now she's wandered into the road outside (still has traffic, even at this hour) and is weaving around trying to stop cars. Dumb as a post. Anyway, where was I... oh yeah. There's only two ways you can be sure of a change - one is to quit, another is to get him fired. I'd suggest quitting (keep it in mind, at least), and when/if you do, make _damn_ sure that all of your co-workers and superiors know why. BTW, just out of interest... your description of this guy is eerily familiar to that of someone I didn't work directly with, but heard a hell of a lot about. You wouldn't happen to be working in North Carolina, would you? For a company named after a breed of dog? Said manager's first name wouldn't happen to be 'David', would it? (okay, I know it's unlikely, but _damn_ it sounds like the same guy ;-) Pete.
Sat 30 Nov | Nobody Special | No, it isn't Dave and it isn't NC. There are probably lots of these guys around. Regarding your suggestion to quit and let everyone know why -- the problem is if I quit I would probably have to ask him for a reference, which I doubt he would give me if he knew I had formally complained about him. I agree with what you said about consulting -- at least you know it will end and that makes almost anything bearable. Does the lack of security bother you, though? I feel torn between this job and consulting because at least this job seems to be very secure and they never have layoffs, and they can't fire anyone after the first 6 months without a good reason. If I could learn to live with it somehow I would be pretty safe, at least.
Sun 01 Dec | Pete | NobodySpecial said: 'No, it isn't Dave and it isn't NC. There are probably lots of these guys around.' Yeah, no doubt :). There were a couple of things you said about him that, put together, sounded just like the (David) guy I knew of. Apparently David was just scary in a verbal argument - he was smart, but the main thing is that he was incredibly quick thinking on his feet and verbally aggressive. He would probably not be so successful in a formal debating environment, but in the day-by-day working environment it got to the state where nobody (_including_ people senior to him, _including_ the head guy of the company) would dare to disagree with him because they knew he'd wipe them out. Classical technical prima donna (see http://www.itrecruitermag.com/magazine/display-management101.asp?ContentID=603 , along with quite a few other references you can find via Google). Have a look at that linked article, I think you'll be nodding your head a lot and going 'uh-huh... uh-huh...' :). Much as is the case with your guy, where you said he'll behave in the same rude way to employees senior to him and get away with it. Dave could get away with it because the upper management (mainly VC-appointed) hadn't been with the company as long as Dave - he'd written a large part of the main project code, he knew every aspect of every project under development, he had all the domain knowledge. Essentially, the upper management were too scared to even consider firing him, because they _believed_ he was too valuable. And once they let him get away with being rude to them once... well, they could excuse it to themselves with 'well, he's a technical prima donna, everyone expects him to behave that way' and then that behaviour just becomes the norm. NobodySpecial said: 'Regarding your suggestion to quit and let everyone know why -- the problem is if I quit I would probably have to ask him for a reference, which I doubt he would give me if he knew I had formally complained about him.' Ah yes, that's a point. I hadn't considered this... though on the other hand, future employers generally don't care that much about the specific person the reference comes from. If you can find someone else (preferably your manager's manager) who is prepared to simply say 'Yes, he (ie. you) worked here for n months, he did everything he was supposed to and nothing he wasn't, was a perfectly satisfactory employee,' then that's really all you need. If any future employer asks you _why_ you left, you simply say 'Personality issues' or some similar waffle phrase. Of course, it's preferable to be able to say 'I got a better offer somewhere else...' ;-) NobodySpecial said: 'I agree with what you said about consulting -- at least you know it will end and that makes almost anything bearable. Does the lack of security bother you, though?' Heh. Interestingly enough, even though I've been without income for nearly three months now and have been supporting a partner who is studying, no. It's all part of the fun :). I gather your perspective changes dramatically when you also have kids to support, but I don't. NobodySpecial: 'I feel torn between this job and consulting because at least this job seems to be very secure and they never have layoffs, and they can't fire anyone after the first 6 months without a good reason. If I could learn to live with it somehow I would be pretty safe, at least.' Learn to live with it? Hmmmm. Well, think about how far ahead you can see yourself doing this same job. A year? Two? Five? Ten? And dealing with this guy (who will _never_ change) for all that time (whether as an immediate superior or not)? Sometimes 'job security' can actually be a bad thing *wry grin*. Keep working on your 'fuck-you' money - living inexpensively and saving a decent amount is the key to riding out periods of low demand. And always remember, work is a support system for life, not the other way around. Pete.
Sun 01 Dec | Nobody Special | [Apparently David was just scary in a verbal argument - he was smart, but the main thing is that he was incredibly quick thinking on his feet and verbally aggressive.] That might be the problem, but I don't know. I've noticed that he's more enraged when he doesn't know the answer. I used to think he was impatient with me because he's smart and I'm dumb. But after observing for a while I noticed that his degree of rage does not correspond to my degree of dumbness. He has been enrage by simple misunderstandings, or when something isn't working and it's his own fault. In other words, I agree he is smart, but I'm not sure that's what's making him so mad. One other possibility is I could try to switch to the other group. They have problems too but nothing like this. I am not looking for perfection, I just don't want to dread Monday mornings. I would actually prefer a situation where I don't have just one person over me. It's just human nature for that kind of situation to be oppressive.
running project on sourceforge.net | Fri 29 Nov | dk
Please excuse me if you think that this question should not be posted here. I have a part of research project which I decided to make open source. Two monthes ago I published it on http://sourceforge.net and announced on freshmeat. This is a simple but nice tool (at least on my opinion) for c++ developers. So far, statistics show more then 100 downloads. The problem is that I get no feedback from people. Nothing. No bug reports, no problem reports... Just nothing. I would like to ask if this is normal? Does anyone have the same experience?
Fri 29 Nov | Mike Swieton | I'm not running on SF myself, but so far my little pet project has received 2 emails from people. One was a diff, one was a bug report. The two worked out well. I found this surprising at first also, but then I thought about how much I send to authors. I maymake it a personal habit to send a ``thank you'' to OSS authors, as I know I appreciate it. I think it's normal not to generate a big buzz, because not many products are new: mine is a command-line cd/file catalogger: there are graphical ones out there that most users will prefer, and I expect little. Most projects, I think, are like that: one or two fill the niche, and the others mostly remain obscure. That's OK though: I wrote my software for me, because I needed something that did XYZ. I'd like others to use it, but if they don't, it's no big deal because I never meant for it to be some new trend. Just curious: what have you written?
Fri 29 Nov | dk | This is shameless self promotion, but I can't resist: dgd.sf.net
Fri 29 Nov | XRD | I am running a free project since 2000. I hosted it in 2001 on SF. In almost 3 years, I received about 30 emails. Most of them were saying 'Hi, great piece of code! Do you plan to support feature X or Y?' I received only one bug report and had a total of 3000 downloads. So your statistics are not alarming, they are just normal. I had a look on the web site of your project. It seems to be a 'highly specialized' software. So the audience is very limited. You cannot have as much downloads as other star open source applications. My advice is to continue its development and to ignore statistics.
Sat 30 Nov | Albert D. Kallal | First, you of course have all read Cathedral and the Bazaar. I had 3 copes of that book , and due to lending it out, I now only have one copy left (and that is lent out also!!). Anyway…read the book…I am sure you all have. The book explains EXACLITY WHAT motivates people to contribute to project (a combination of interest, and also ones ego). There are several important things that will help a open source project. #1, the existing functionally of the product must be of good use. If the product has too limited in terms of functionally, then no uses will care to use the product. #2, to get any kind of real feedback, the product must attract developers. So, a program that manages your cooking recipes might attract some downloads, but few developers are really into cooking (on the other hand, I did cook a fabulous plate of pasta tonight!). Hence, if the product is not used by a developer type of person, then you will not get much back in the way of developers will you? For example, a lot of web developers use Apache, and thus it is somewhat easier to get them to give you feedback. If every single user of Apache was JUST an end user, then no code updates will occur. However, many users of Apache are also web masters with a lot of coding experience. The more the product is useful to developers, the more likely you can get developers on board. #3, The product is a obvious way to reducing licensing costs, or replace an existing commercial product. This type of product also carries some prestige to the developers, as success with this type of product can make you famous. Samba is real cool in this way, since it reversed engineered windows networking, and lets you now use a Linux box as a file server to a windows network. Samba has to got to be the #1 thing that MS hates right now!, and as result seems to be the #1 thing that open source people love!. People will contribute to products like this just for the principal of the matter. (ie: getting rid of a very strategic commercial product, and replacing it with a free one!). Of course windows networking is free, but Samba just means I don’t have to purchase a windows server. I see this product cropping up every where these days, and can even smell the joy those programmers have for this product. #4, There must be clear path, or idea that much more can be done with the product. As each step, or large goal falls, then the developers will loose interest. Now that Samba works, and a great leap/benefit was created for the general community, , many developers will loose interest and move on. Hence, what are the possibilities, and results if I as a developer contribute? This list could get a lot longer, but open source is not so simple. In addition, it is very important to realize the good developers are hard to come by, and they may already be involved in other projects, or sitting here writing this post in place of working on your project! In other words, there is competition for developers in open source just like the commercial market, and they are a limited resource. I am always amazed how people think that open source is a un-limited resource. It is nothing close, and developer time is hard to come by. Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Sat 30 Nov | Ryan LaNeve | I agree with everything said thus far, especially the point about realizing how rarely any of us submit feedback on the numerous bits of software we all try out. There just isn't enough time in the day. I've been on both sides of the fence on this issue. I've setup two projects on SF, and while one of is somewhat popular (13k d/l in 19 months + 220 forum posts), the other died a miserable death. And, from a technical perspective, I always felt the latter project was more impressive. Go figure. One recommendation: make a sample of some kind available and *quick/easy* to get up and running. Too often I find something on SF that, while it sounds interesting, takes far too long to get working on my machine just to see what it really does. Most people aren't going to spend the time. And if any level of frustration arrises from getting the code to do what it's suppose to, I'll likely just shut-down the environment, delete the downloaded files and move on with life. I've wasted enough time as it is, so spending more to send an email isn't likely to happen. If a sample isn't applicable or possible (rare, I think), then at least some screenshots of some kind. Documentation is almost always lacking or non-existant in OSS projects, so the author has to do *something* to make it easier for people to check out and use their work. Anyway, just my two bits thrown in. The most important thing to keep in mind, I think, is to just write the software for yourself - for your own needs. If you want to make it available to the rest of the world, that's great. If you expect to be crowned the new 'King of OSS' overnight, well...that may be a bit unlikely.
Sat 30 Nov | Ian Stallings | dk, I wouldn't worry, they'll let themselves be known if something does not work :D I also host a project on sf.net and after 4500 downloads I have seen about 20 direct emails either requesting features, bug fixes, or wanting to help. My project is also very niche oriented and does not pull the attention that large projects get. But as it and the technology (C#) matures it does seem to be gaining momentum. I once complained about this very subject on /. and got a response from the creator of a specific linux build with over one million downloads and his response was (in so many words) it's normal and get used to it, lol.
Coding vs. design | Fri 29 Nov | anonymous
This subject came up in a previous topic, so maybe it can be continued in this new thread... On one hand coding was said to be a straightforward almost routine task that is not difficult (e.g. coding a report on a payroll system). On the other hand it was said to be highly involved and complex (e.g. 3-d algorithms for graphics, etc.). Software was contrasted to traditional engineering projects such as design and construction of a building... an ongoing development/feedback/revision effort vs. a one-time build-it-and-they-will-come approach. To rehash an old saying... the difference between coding and design is greater in the coding phase than it is in design. I guess it is too obvious to mention that when someone says they are coding what they really are doing is making design decisions followed by implementation and more testing, getting in the zone, etc. Any comments?
Fri 29 Nov | Tj | I sometimes wonder about those analogies to other forms of engineering. There are too many shoddy roads, apartments, etc, and you'd think that given millenia they'd eventually get it right. So I have the feeling that there's something wrong with these analogies. I think 'coding' and 'design' are arbitrary terms used heavily by IT. There are so many restrictions by the need to satisfy many masters (deadlines, cost, target market) that we just mentally separate Stuff into discrete things like coding and design. Is it the difference between strategy and tactics? Has anyone ever given a non-messy distinction between the two? Do the effectiveness of tactics give feedback to strategy?
Fri 29 Nov | Ged Byrne | -------------------------------------------------------- The unique thing about software is that it is infinitely clonable. Once you've written a subroutine, you can call it as often as you want. This means that almost everything we do as software developers is something that has never been done before. This is very different than what construction workers do. Herman the Handyman, who just installed a tile floor for me, has probably installed hundreds of tile floors. He has to keep installing tile floors again and again as long as new tile floors are needed. We in the software industry would have long since written a Tile Floor Template Library (TFTL) and generating new tile floors would be trivial. http://www.joelonsoftware.com/news/fog0000000337.html --------------------------------------------------- Joel I think this sums it up. All other human endevours have been distinguished by the cost of effort to repeat any activity. This has lead to the division of labour that is reflected in many of the distinctions between coding and design we now see. However, this is wrong thinking. As Joel points out, the model of labour divison just doesn't appy to software. The current structures are just leading to inefficiency. The problem is, we still haven't worked out the right way to do it.
Fri 29 Nov | Must be a manager | Almost all software development is complex. It's not just obviously technical fields such as 3D. The complexity lies in perceiving the true relationships between entities, and then in resolving the resulting complexity to make the product simple for users. In most fields, this perception and resolution of compexity has never been done before, because humans can implicitly accommodate the resulting nuances. Algorithms can't, and that's why good programmers are needed. The term 'coder' is actually part of a dismissive attitude towards the role and contribution of software designers ( aka programmers. ) If you watch, you will see that it's mainly used by non-programmers. The use of the term is meant to convey that the work of software designers is simply the production of the code, and that there's nothing to that part of it. Software designers tend to use other terms to describe themselves.
Fri 29 Nov | Mike Swieton | I think many terms in tech culture are poorly defined: The coder/design confusion you cite is just another. Consider the hacker/cracker confusion. I personally frequently distinguish between software being easy to *use* and easy to *learn*. Other fields, such as construction, have been around longer and the definitions are clear. There are organizations that ensure that, say, civil engineers are qualified and there is a central authority there: they therefore have some degree of power over the terms they use. But software is not like that: It's so wild and uncontrolled that almost nothing is standard, and therefore this confusion springs.
Sat 30 Nov | Beka Pantone | The only analogy with software development that ever raised either of my eyebrows was when it was compared to gardening. I can't quite remember were it was but the analogy was spot-on, in that it exposed that there's more about craft than there is about engineering in the software field. I wish I could find the reference. I am one of those rogues that doesn't really believe in 'software design' as a separate activity, or as a document, or whatever. I believe the design of a piece of software is implicit from the very first line of code. Coding can't go without design, and design can't go without coding. Successful designers are those who can code, and successful coders are those who can design. The phrase 'coding vs. design' is a contradiction in terms, at least in my philosophy. Now, a FUNCTIONAL design is a totally different beast altogether. But I don't believe in them either. ------------------------- But software is not like that: It's so wild and uncontrolled that almost nothing is standard, and therefore this confusion springs. ------------------------- Mike, could you please elaborate on why you think that software development is 'so wild an uncontrolled'. I have the feeling you are right, but I would like to hear why you think so.
Sat 30 Nov | Jan Derk | I consider Coder to be a honorary title. But then again I don't mind to be called a geek or nerd either... The general misconception is that coding and designing are separate things. They are not. Coding = Designing. The source code is the detailed design. It's the compiler and the linker that actually build the software design. Somebody in an old thread provided this link to an excellent 1992 C++ Journal article explaining the whole issue: http://www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm
Sat 30 Nov | Beka Pantone | Somewhat offtopic but I'll go for it anyway. Ged Byrne reminded us of this article: http://www.joelonsoftware.com/news/fog0000000337.html And after reading it again I think I must object. ------- In software, the boring problems are solved. Everything you do is on the cutting edge by definition. So by definition it is unpredictable. That's why software has more of a science nature than a construction nature. ------- Oh! really? Is that the reason why many software developers _waste_ a considerable amount of their life writing UI code? Shouldn't UI subsystems be sufficiently sophisticated by now to spare programmers the pain? I mean, no matter how far we are into the XXI century I keep hearing people complain about how the customer wants 'this in red now', or 'one more field in this report here', and 'this other button in the other tab there'. Mindnumbing work that would rather be spent doing something else if you ask me. Many coding activities are silly repetitive work. When a software developer is doing silly repetitive work there's something very wrong. Alas, many software developers are now busy changing the code of 'that' button so they can meet their customer demands by tomorrow, to think of a better approach to the whole UI ordeal. Of the millions of developers out there, few are truly remarkable, the rest are doing grunt work. Sad as it sounds.
Sat 30 Nov | Mike Swieton | Beka: What I'm getting at is that there is no meaning to the terms 'coding' and 'design' that is considered standard across all 'coders' and 'designers'. This is because there is zero barrier to entryh to the field. Now don't get me wrong, I like that. But it means that there is no standard meterstick with which to judge people and their positions. Not to say there should or shouldn't be, only that there isn't. If I'm a brain surgeon, I've taken tests and gone to school and done a specific set of things and then after I am considered qualified to do a specific job. But software jobs have no such measurement, so you get people saying they do XYZ, but it doesn't mean XYZ to someone else if you say the same thing.
To refactor, or not to refactor... | Wed 27 Nov | Frustrated Perl Programmer
Is there ever a time not to refactor? That a codebase is so dingy, so dirty, so horrible that every time you read it you get in a really bad attitude, that you should start from scratch? Let me preface this by saying Ive read Joels articles on refactoring. http://www.joelonsoftware.com/articles/fog0000000069.html http://www.joelonsoftware.com/articles/fog0000000348.html I think its a good idea, most of the time. But I think that Ive come across a project that it might not be the best way to go about it. Here is the short rundown: It was written around 1996 through 97 (actually, only a few months in those years). It is about 30000 lines of perl (mostly duplicated) over 160 cgi scripts. It doesnt use a database, rather it uses the filesystem, and about 30 undocumented files to store the data (Ive deciphered quite a few). It has its own templating system, based on the order of the arguments passed to the template function (i.e. the first argument is #1#, the second #2#, etc). It doesnt use my(), only local() (for those of you not familiar with perl, think all globals, all dynamically scoped), and there is quite a bit more that I could go on about as well. Oh, did I mention it doesnt use strict, warnings, or taint mode? Its an old Content Management System. Ive written a good part of one before so I have a good idea of what I want and dont want. What I want to do is put this whole system into mod_perl, with a database, following the Model-View-Controller paradigm. Now Ive mapped out my plan for refactoring already, but I noticed in maintaining this and looking at it to plan the refactoring that all of the scripts are pretty much one function. So they have a pretty well-defined purpose in life. Im convinced I could just take the functionality it needs and implement it in mod_perl. Nothing is complex, its all get data from form, process, put into database. Now maybe this is all me rationalizing rewriting it myself, but Ive thought a lot about this, and think rewriting it clean might be the best way. Lastly, to give you an idea of this project, it was written mainly by a guy that thought it was a good idea to put the perl binary in cgi-bin webspace so he didnt have to type #!/usr/bin/perl at the top of his scripts, only #!perl. There are similarly well-thought out things throughout... So what should I do? Have any of you come across projects that you just shouldnt refactor, because of large architectural changes or other reasons? Thanks for the input...
Wed 27 Nov | software engineer | if it doesn't do much of anything already, throw it out. I am involved with a project now where some guys took about 2 years to implement 1/20th the functionality of 'Tomcat,' with no comments and no documentation. I convinced my boss to chuck the original pile, and start anew. 3 weeks into it, all exitisting features were implemented, along with 80% of the actual application level features. The whole damn thing is going to take about 4 months, MAX. I think Joel's advice only works if your original crufty codebase already does 80-90% of what you need. If it does < 20%, and it sucks, get rid of it.
Wed 27 Nov | Frustrated Perl Programmer | well, it mostly (80%?) does everything it needs. Its just a real pain to modify anything. and I mean *real* pain. Want to the main file format? Cool, but *every* search query will have to be re-written. And its not so much a query, as a entry in a file, where each line looks like: |perl expression that returns 1 or 0|Search title|morestuff And in that line, you can have the template substitution I talk about before (with #1#, #2#). Also, !N! means the N entry in the filename given in the line, by a pattern match given in the morestuff. Not every file has it all filled out, so this is by memory. So the problem isn't that it isn't finished. It could be used in its current state just fine -- as long as you never need any changes. It actually has some neat features. But, to make any changes takes so overwhelmingly long, that I don't think its worth nursing this code anymore. Case in point: You want to add a few items to the survey feature in this site, a few more questions, thats it. Easy? No, undocumented file, with assumed positions in the file, etc etc. About 4 hours of work. Should be less than 5 minutes with a web form.
Wed 27 Nov | Frustrated Perl Programmer | when I say 'not every file has it filled out, so this is by memory' above, I meant that I was looking at an older version of the file (there are multiple versions of the files in this) that didn't have all the whiz-bang features used. So I was describing it by memory :)
Wed 27 Nov | Carnage4Life | Ironically, the Quote of the Day on http://www.ibiblio.org/java/ is Refactoring improves the design. What is the business case of good design? To me, it's that you can make changes to the software more easily in the future. Refactoring is about saying, 'Let's restructure this system in order to make it easier to change it.' The corollary is that it's pointless to refactor a system you will never change, because you'll never get a payback. But if you will be changing the system‹either to fix bugs or add features‹keeping the system well factored or making it better factored will give you a payback as you make those changes. --Martin Fowler
Thu 28 Nov | Simon Lucy | Fix what offends the eye and fix it in a way that doesn't break everything else. Repeat until glorified.
Thu 28 Nov | Someone who is currently rewriting something from scratch *sigh* | Sounds like you have a Big Ball of Mud (http://www.laputan.org/mud/) my friend :-) I'm not sure I understand exactly what you're saying though. Do you mean that every time the database (files) are used, the code to access them is inlined in the application code? If so then that's an excellent place to start your refactoring if you want to change to a db system. Write a DatabaseThing which takes those 'queries' and translates them to queries to the files and replace the application layer file access code with calls to your Thing (as Joel suggested, that latter can probably be done with a macro in your favouite editor). Cool. Now if you want to use a db instead of induhvidual files you simply change the DatabaseThing so that it translates the old style queries to SQL (or whatever), and replace your file based system with a proper db, assuming this is what you want to do. Sounds easy if you say it quickly ;-) (Incidentally, I once worked on a project where we changed from a noddy db system to a proper one in one day, precisely because we had this type of setup.) Then you can refactor again so that that application code doesn't know about which files/tables the data is in. Then you can refactor the db so that it is fast and/or normalised. As Simon Lucy suggested, if the benefits warrant it then eventually you have refactored everything, but at each stage you have had a fully working system. When you should test it is really up to you, but after each refactoring stage is probably a good idea, then changes can be released frequently and hopefully whoever is using it can see the benefits as it evolves (either that or they see there are no benefits, in which case you will be the one on benefits :-)
Thu 28 Nov | Daniel Berlinger | I liked the last answer, but I'd add that to refactor safely you need tests. So before you touch anything right some tests that ensures (as much as possible) that the functionality doesn't change. Then writing the facade stuff will be safe, because you can feel comfortable that nothing has changed. These tests will boost your confidence again when you change the 'backend' of facade to the db. Again you'll be certain that you're getting back what you expect. I believe all this crosses over to the questions of business value and 'You Aren't Going To Need It'. I believe that current best practice would suggest that if you have to touch something to add business value, write the tests, refactor, and leave everything else alone until you have a need. That way you've provided business value, and you've improved the code, and you've kept the system going.
Thu 28 Nov | Bruce Rennie | Basically, our rule of thumb is: If the code doesn't bother you, don't bother it. Everyone has some crufty code somewhere. But if that crufty code isn't generating any bugs or doesn't need to be extended in any way, then for god's sake don't mess with it. On the other hand, if you are being asked to extend the code, then it's open season on refactoring.
Thu 28 Nov | Bruce Rennie | Forgot to mention: I ABSOLUTELY agree with the person above who stated that in order to refactor properly you have to have unit tests. No unit tests, then tread with EXTREME caution when refactoring.
Fri 29 Nov | Just me (Sir to you) | Just out of curiosity: What is your estimate for a complete rewrite of this system?
Fri 29 Nov | Keith Wright | In my opinion, there is a point at which you've crossed the line and have to rewrite rather than refactor. That is when the code is really really bad, hard to change, done all wrong, and most importantly doesn't even come close to meeting its requirements. The only time you don't keep anything is when there is nothing worth keeping. It sounds like what you have isn't as bad as all that. If it would take more time to rewrite than refactor, I'd say you don't have a case for rewriting.
Fri 29 Nov | Frustrated Perl Programmer | Estimate for a total rewrite, about 3 months. The software doesn't fall into the 'doesn't do its job' category. It falls into the 'does its job, but very brittle and resistant to change'. Even to just change a template. I see how unit tests would be a good idea. I think the first thing I'm going to have to do is get this software easy to modify. i.e. get it all to run under strict mode in perl, with warnings on. Then, I'll start with the db/filesystem interface, then template interface, etc. Thanks for the input, I think i'm going to try to refactor!
Fri 29 Nov | T. Norman | Rewrite the stinking thing if your boss will let you. If the code is mostly garbage and you have to change more than 25% of it, you're probably better off rewriting it. I've refactored and rewritten thousands of lines of code myself, and let me tell you, good code mixed with crappy code ultimately becomes crappy again unless fight VERY HARD to keep the clean parts clean. It's like placing a bucket of sewage beside a bucket of perfume. The sewage will always win. After a rewrite you'll probably find that the code size has dropped by more than 60%, and many changes that used to take hours and even days of coding and testing will drop down to a few minutes.
Sat 30 Nov | RB | You should also consider whether refactoring will get you to where you want to be. If fundamental design is flawed, then it's going to be very difficult to fix by refactoring alone. (When I say 'flawed', I mean that it cannot accomodate required changes without a large redesign). Also, try adding up the amount of time it will take to implement any upcoming modifications with the code in it's current state, with the code refactored and with the code rewritten. If the rewrite will take longer than refactoring, but will significantly reduce the amount of time to make any future mods, then maybe a rewrite is justified.
Which web tool to choose? | Wed 27 Nov | Frederic Faure
My brother has been playing with .Net for a few months. Personnaly, Ive only scanned through a book, but Im a bit more familiar with open-source tools like Zope or OpenCMS. Are there people here experienced with those and also J2EE that could summarize the pros & cons of using one tool over others? Id like to make sure Im not wasting my time before diving in. Thx Fred.
Wed 27 Nov | Bruce Rennie | When I went to school the first semester work was in Fortran as they wanted to give the students a good grounding in a 'useful' language. Resign yourself to the fact that you ultimately will most likely be wasting your time no matter which you chose.
Thu 28 Nov | Scot | On the Java front, there are many options... JSP, servlets, Struts, etc. I have found one that stands out... tapestry.sf.net. The reason I like it is that there is no dealing with web constructs explicitely (URLs, sessions, etc.) Everything is nicely hidden behind objects. From what I have read, Tapestry is very similar to Apple's WebObjects, only it is open source!
Fri 29 Nov | Opportunist | What is your objective? For small to mid sized projects I suggest php. It's easy, free, and fast to develop in. For larger projects maintainability is key. Java and python both allow for maintainable code even if the programmer is subpar. For the money. In this economy its all bad. Maybe, cell phones or voip...throw in some XML parsing too. Oh yeah make it enterprise. It really depends on your objective.
Sat 30 Nov | Frederic Faure | Thx everyone for the tips. I need to rewrite accounting and payroll applications that my dad wrote in VB years ago. Since the code is a mess (euphemism) and those applications need to be updated fairly often, I was thinking of rewriting them as web apps instead of dedicated apps. But I'm worried about the limitations of the web browser (spread sheet/grid object, menus, etc.) My brother is building a prototype for another app in VB.Net, but I'd much rather use open-source tools that can run on other platforms and non-IIS web servers. Thx
Sat 30 Nov | Scot | Well, it is easy to get around running it on IIS. Check out GLUE from www.themindelectric.com. It allows you to expose Java classes as web services with a few lines of code, and it is free. Apache Axis does the same thing, as do some PEAR libraries for PHP. Using web services on the server side is a win. Then the question becomes what to use on the client side. If you control which computers it is deployed to, then MS.NET is a good choice because it is easy to use and their are no royalties for the client-tier developed in C# or VB.NET. You can also develop the client in Flash or something like Tapestry (using the Java client stubs generated by GLUE or Axis).
Web site design and Ecommerce site charging fee | Fri 29 Nov | Nicholas Franks
Well i just got a couple of contract lately for web design and web driven applications You know the hole shabang.... But i was wondering how much or how should i charge. Per contract per hour per page ??? Thx
Fri 29 Nov | GiorgioG | Nicolas, I wouldn't necessarily go 'per page' because it if they are dynamic (data-driven) sites/apps, you will generally have less pages than a static site. Per contract ('fixed price') is generally considered good if you've already done very similar work and know how long it will take you (you can make more than hourly in this manner (especially if you can reuse some code that you've got laying around.) Although a fixed-price contract generally requires a fixed set of requirements based on the original specification/RFQ (request for proposal) because adding new features/functionality will cause the project to take more of your time than you had planned/budgeted for. Hourly pricing is good for projects in which you've either A) never done before & can't really estimate how long it will take you to do and/or B) when your client is the type that likes to change things/features/look/etc 47,000 times during the project.
Fri 29 Nov | Nicholas Franks | Yes Thanks, But know once i decided to go per hour or per contract, I was wondering how much too charge in $$$ I think i will call a couple of local web designer/Programmer to make them give me a pricing for a simillar project. I've only done/sold Database applications wish none of them were web aware, so i really dont have a clue of the $$$ in the market today for that kind of developpement.
Fri 29 Nov | GiorgioG | Nicolas, It depends where you're located, how complicated the project(s) are (what skill level they require), etc. If you're a consulting company you can get away with charging $125/hr+. If you're joe schmoe independant consultant, $60-$95 is more like it (in my area - Buffalo, NY.) Just as a gauge, Buffalo is pretty cheap as there's not a whole hell of a lot of IT needs in the area, so you'd definitely charge more in a place like NYC for example.
Why compiled help? | Wed 27 Nov | NNB
I was looking at the documentation on the .NET HelpProvider class, and it occurred to me that I couldnt think of one good reason to create a compiled help file (*.chm) instead just plain html files. Is there something Im missing?
Wed 27 Nov | Joel Spolsky | I like the fact that it gets everything into one file. Also, I think .chm files include a keyword index so that you can search quickly.
Wed 27 Nov | Chris Tavares | Searchability is the main reason. Without the compile step, you don't get the index and search features without using a separate search engine. That and it's really nice to have everything in one file.
Wed 27 Nov | -j | The simple answer - easy deployment. When you hover over a button and request help, you have 2 possible outcomes - an application error/crash, or display something to the user about the button in question. The same event repeated inside a textbox has a completely different scenario; Does the user want help on the form element's functionality and/or description, or help on the the actual input they have entered into the element (e.g., context and phrasings in the textbox)? HTML cannot do this and neither can chm/MS-Help 1.x - but MS-Help 2.0 (shipped with .NET, and looks alot better) can and does do this. To download the compiler pre-release: http://msdn.microsoft.com/downloads/default.asp?URL=/downloads/sample.asp?url=/MSDN-FILES/027/001/914/msdncompositedoc.xml
Wed 27 Nov | Ged Byrne | I don't know about .net, but for my PHP I have downloaded the chm file. It's much better than the html because I can call it with a keyword for help. This means that I was able to set up my text editor (Scite) to give help on the current word. Easy.
Thu 28 Nov | Frederic Faure | BTW, anybody knows if there's a free compiler to cram all HTML and JPG into a single file, whether .CHM or another format? And if someone knows of a WYSIWYG HTML editor that can build a TOC and an index section automatically like Word does...
Thu 28 Nov | Ivan-Assen Ivanov | Microsoft's help compiler (which makes the CHMs) is free.
Thu 28 Nov | -j | <> Off topic: I'm pretty skeptical about open source editors (except vi), but I just downloaded Scite (1.49) to check it out, and was suprised after launching it. It's rather excellent, lightweight, versitle, cross-platform, and is documented very well. Bye-bye TextPad. -j
Thu 28 Nov | -j | <> The link I posted above. You need to have VS.NET installed in order to use it though (and it does not genereate CHM). Otherwise, you can use the HTML Help Workshop (includes the chm compiler, and an image 'editor'). Any WYSIWYG HTML editor can edit the content (config'd in the workshop), and the workshop will give you a UI for the other files (TOC, Index, Topics). http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/vsconHH1Start.asp
Fri 29 Nov | Leonardo Herrera | Maybe this can help: http://citydesknews.com/CityDesk/news/entries/2002/August/22.html
Fri 29 Nov | Ged Byrne | -j, Yep, Scite rules. http://www.scintilla.org/
Trial-ware expirations | Sat 23 Nov | NNB
Whats the best way to manage trial-ware expiration dates? I want to create a 30-day trial application, but every method that I can think of has at least one loophole. Any advice from the experienced? Thanks
Mon 25 Nov | Tony E | There is a good article on why you need a expiration here: http://www.ambrosiasw.com/cgi-bin/ubb/newsdisplay.cgi?action=topics&number=14&forum=*The+Ambrosia+Times+Newsletter&DaysPrune=25&article=000052&startpoint=
Mon 25 Nov | tapiwa | Whatever you do, do not disable the save function. Rather have it with a watermark. Nothing pisses me off more than non-trivial software that makes it impossible to save your work.... One rarely has an eight hour session to'evaluate' a piece of software. You want to be able to try doing the same thing in a number of applications, returning to tweak here and there, and also to compare the results.... I remember not buying Case Studio because it was crippleware. The trial version does not expire, but it does not allow you to save. You cannot even save a DB schema and send it to the suits to argue for the licence fees. There is only so much you can do with a screenshot.
Mon 25 Nov | sam | Stephen - Guess I forgot to clearly mark that as sarcasm. Thought it was obvious enough when I got to the part about deleting the MBR...
Fri 29 Nov | David Chen | Anti-piracy has a few perfect uncrackable methods almost as effective as perfect encryption (which usually involves some well-thoughtout hardened usage of one-time keys) but damn it they are just as hard to implement (it's hard to implement a system that properly uses one-time keys too!) and ridiculously hard to get a shareware to make use of it. [One of uncrackable service idea is to: A) write your shareware to constantly use a web service. B) Have the web service kick you off if you are using a duplicated license key rendering your shareware useless. C) Ensure cryptographically/mathematically that users can't make up valid unique keys without authorization.] * First most of us don't know how to create unique keys properly.. that's best solved by checking out a book call Building Secure Software where there's an C example of how to do this: http://www.buildingsecuresoftware.com/ * * Second of all, it's terrible to force a user to be online 24/7 just to get their shareware working. This limits the software that can use this system to those that 1) depend on fresh media or info that aren't cachable in nature (the minute these info are stale.. you invite crackers to setup caching servers to get around your key protection.. so if you have a dictionary shareware.. people will simply buy one key, copy the dictionary data.. and share that data against your wishes.. this works even with live data that more one one people will share unformatted.. like stock data) 2) can be afforded by users who are online 24/7 on DSLs and @HOME networks 3) doesn't hurt the user because the network is unreachable.. this depends on the user usage pattern and the pattern of the problem/solution the software is trying to solve. * Third.. it's slightly more time consuming to write webservices.. but the real kicker is writing SECURE web services. You have key secrets you must keep secret or your entire licensing scheme breaks down. So you can't store the secret at home or at a co-hosting server. Yet you can't validate these people without such keys. That's why services like Microsoft passport exist and could one day help you make these validation components less tedius to write and maintain.
Painless Schedule App needs beta testers! | Thu 28 Nov | Tim Sullivan
Do you use Joels Painless Software Scheduling? Or are you willing to give it a go? Well, this could be the app for you! :-) Im looking for people to beta test my Painless Schedule software. Spaces are limited. Testers who give really good feedback or find really weird bugs will be rewarded with a free copy (at my whims!). Contact me directly for info. Thanks.
Thu 28 Nov | Tim Sullivan | I should have mentioned: This is currently for Windows only. A Linux version should be available sometime next year, but not in the initial release.
Thu 28 Nov | Tim Sullivan | Thank-you for all your requests. There are no more beta spaces available.
I need fast image converter | Wed 27 Nov | Alex
I need fast image converter from bmp to jpg. Please advice
Wed 27 Nov | Dave | I used ReaJpeg from reasoft.com
Wed 27 Nov | Brad Siemens | MS Paint?!?
Wed 27 Nov | Ged Byrne | You'll do no better than irfanview. http://irfanview.tuwien.ac.at/english.htm It's freeware and it does batchconversion.
Wed 27 Nov | Brad Siemens | Ged Thanks!
Wed 27 Nov | Glen | I do like this http://www.reasoft.com/products/reaconverter/
Wed 27 Nov | sam | I've been using IrfanView for years, but never realized it did batch conversion jobs. Cool! It's not much for image editing a la photoshop or even paint, but it's a light, fast, free viewer/resizer/format converter, has some basic effects/filters (including the dreaded 3D bevel) and it's one of the things I download every time I do a new OS install. (=
Thu 28 Nov | Bella | Instead of doing a new OS install, try backing up your finalized fresh build onto a mirror or backup drive. (after all apps and configurations are done) Occassionally, mirror your current drive onto the backup..If you ever need a reinstall, just swap drives. You'll never need to reinstall an app again.
Thu 28 Nov | Andrey | I would recomend imagemagick http://www.imagemagick.org .
Thu 28 Nov | Thomas Sanders | Another IrfanView fan! It can also create photo albums, includes a hex editor, and -- I imagine -- washes your dishes, if you ask nicely.
Fox Pro | Wed 27 Nov | Ryan
From following along in some excellent discussions, it seems that for database centric apps Access and FoxPro tend to be highly touted. Could someone explain the basic architecture of FoxPro and when it might be a better solution than Access. Thanks
Wed 27 Nov | Simon Lucy | I'll confine it to Visual Foxpro. VFP is a file based database, every single table is a separate set of files, up to three if memo or large text/binary fields are used. The database structure, the relational integrity, triggers and field validation and so on are also contained in a table, a database container. The DBC also contains Views (like stored queries) of tables. VFP conceptualises database connections which means you can use VFP code to access any remote data and use exactly the same native database manipulation syntax on that source. That also makes heterogeneous databases logically straightforward. The language that VFP uses is an inheritor of xBase which is an algol like language in terms of control structures, scope and conditionals. In other words the basic syntax is easy to pick up. Because of the xBase inheritance it includes database manipulation syntax within the language. This means you can do row or record oriented processing along with SQL processing giving the best of both worlds. VFP is an OO language which is integrated around that core syntax. Objects, properties and methods are usually encapsulated in libraries which are in fact database tables. The language includes all of the usual inheritance and polymorphism you would expect. You can create novel objects that have more than one type of object by creating containers and filling that container with whatever objects make sense. Although this is often used for visual objects, components of UI you can also create non-visual components in exactly the same way. VFP can be used for a large range of applications, you can write fat clients to remote sources, departmental applications where the database is local and native and any level in between. There are some extremely large VFP databases and applications in use. Apart from using standard OLE/ActiveX components there are a large range of class hierarchies, VF components and tools available. The hierarchy I generally use is Codebase, http://www.codebase.com Access on the other hand is more like a productivity tool, useful for small databases. It does have a language, VBA but its database specific syntax is very restricted. In the past Access databases have had a bad reputation for corruption, especially in transactional situations. This might have improved. Robust applications that seem to use Access are, for the most part, using the Jet engine, the database engine underlying Access. These applications tend to be written in VB and can use a vast array of third party components and tools. In general I wouldn't compare Access the product with Visual Foxpro at all. There are comparisons to be made between using the Jet engine and VFP. On the whole I prefer VFP largely out of familiarity and use but also because I know there are no limits with VFP. If I need to migrate a database to remote or back end server database products I know I can take virtually the same code and with planning exactly the same code, and run with the migrated database. That is possible with VB but you have to write the majority of that encapsulation yourself or rely on ADO to provide the data. I could go on, but I imagine people are yawning already...
Wed 27 Nov | Alberto | I think you got it right Simon.
Wed 27 Nov | Alberto | Not about the yawning that is.
Wed 27 Nov | Frederic Faure | Just on question : how do file-based DBMSs, ie. those without a server process acting as a front-end to the actual data, handle concurrent accesses? I looked at light DBMS's like SQLite, Tsunami, etc., but they seem to depend on the underlying OS to handle this issue, and considering how poor 9x is, I'm reluctent to use them although they're greate for stand-alone applications. Thx Fred.
Wed 27 Nov | Simon Lucy | At the beginning of each table is a header which gives the structure of each record, as well as a back pointer to the containing database. When a record is locked the region of the file is locked, otherwise access is open and can be read using the same underlying file system reads. If there are multiple clients reading that file and that record then any bottleneck will be in the server raw read. If you build it as a server and have a single access but provide the data as XML, strings of stuff or whatever then you may win on the roundabout of raw read but lose on the swings of apartment threading. Though I believe VFP 8 might alleviate that. Databases which maintain their own file systems tend to only lock regions of the file space and on some applications and types of database you can get superior performance on the same hardware using an xBase table as opposed to a Jet, SQL Server or Oracle table just because of that behaviour. I'd still probably rate VFP as the fastest file database around and comparable with back end servers for some kinds of applications. As with everything you can tweak things like retry counts and timeouts for handling contention issues.
Wed 27 Nov | Frederic Faure | Thx Simon for the clarification. Bottom line if using a server-less, light DBMS : Stability is only as good as the underlying OS/filesystem. In other words, it wouldn't be a good idea to use those tools on a 9x host when multiple hosts are trying to read/write into the database.
Wed 27 Nov | Simon Lucy | Well I wouldn't use 95/98/Me for anything :-) I'd use Win2K.
Wed 27 Nov | Frederic Faure | I do too... but there's a lot of 9x/ME/XP out there... Guess I'll go with (My|Postgre)SQL...
Wed 27 Nov | Herbert Sitz | I know next to nothing about FoxPro, but I would like to correct a common misunderstanding about MS Access. It's true that Access alone isn't the best choice for large scale database apps. But you can connect Access to any back end you want via ODBC. And beginning with Access 2000, Access includes the ability to build 'Access Data Projects' (or 'ADP's'), which are essentially front ends to MS SQL Server that retain almost all of the RAD aspects of Access with a heavy-duty database server. It's true that VBA doesn't have the language specific database-handling commands that FoxPro does, but that's what ADO is for (and ADP's are based on ADO). I think the combination of Access (using ADP's) and SQL Server is probably at least as well suited for large scale apps as FoxPro (and certainly better suited than FoxPro using only its file-based data system.)
Wed 27 Nov | Simon Lucy | Which is why I talked about Jet, the database engine.
Wed 27 Nov | Simon Lucy | And at the risk of repeating myself, Visual Foxpro has always had the ability to front endback end data sources and use all of its native database commands. That's about 9 years now. Not that I'm really trying to willy wave about VFP compared to Access.
Wed 27 Nov | Albert D. Kallal | I should be point out that ms-access in fact is really two products now. It can be used in the old traditional way, as a file share system, or as a native OLEDB system with sql-server. (these are called ADP projects). As for the question about locking, when used as a file-share system the management of locking is actually done by creating of locking files (ldb). In other words, a small file is created. This file is then used to control the locking mechanism. As for the programming language used, it is straight VB. The only real difference here is the forms object model is different. Other then that, you will be hard pressed to find a difference between the VBA in ms-access, and straight VB. They both actually share the same code base (DLL library). Thus, the one real advantage of ms-access is that the time spent to learn the system means you also learn VB. On the other hand, VB is not hard, it is always the object model you are dealing with that is hard. As mentioned, Ms-access for the last two versions has shipped with two database engines. (remember, ms-access is simply a front end to whatever database system you use). The first engine you get is JET. This engine can be used to a file share, or it also can be used in a ODBC fashion to a variety of database systems such as Oracle etc. (In fact, ms-access is the most popular front end to Oracle databases next to their own tools!). The other database engine you get is the MSDE. This is a 100% compatible sql-server based engine. It means that you can then write server side code (t-sql), and also use triggers etc in ms-access. (and you can manage sql-server from inside ms-access!!). This is classic Microsoft getting you hooked on sql-server! To use the MSDE engine, you can use JET via ODBC, but the real news is as mentioned that you can make ADP projects in ms-access. This means NO JET, and NO local tables! If you create a ADP project in ms-access, then you are creating a native oleDB connection to sql-server. You generally want to create a adp project when your application is going to be used for sql-server, or you think that the number of users will grow. Doing so, allows you to create applications with great ease, but you are in fact creating a sql-server application. This means that the performance of a two tiered application in ms-access will now perform the same as any other offering from the Microsoft stable. The free MSDE engine from Microsoft is a SQL server compatible database engine. When you use it, you are taking true client server here. The engine is throttled in an attempt to get you to upgrade to sql-server after 5, or 10 users. Ms-access is a incredibility popular tool In fact, some articles rate it 2nd in use to only VB as a development tool. There is still a very strong commitment from MS, and as a result the product is becoming a very good database development system. The product is not what it was just a few versions ago. The addition of ADP projects now means that it is a scalable and robust tool. It can now honestly be used in the corporate market. There are applications running with excess of 1000 users connected to the same database. Take look at all the goodies you get with the office developer version. http://www.microsoft.com/office/developer/suite/fastfacts.asp Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Wed 27 Nov | Albert D. Kallal | >>Apart from using standard OLE/ActiveX components there are a large range of class hierarchies, VF components and tools available. The hierarchy I generally use is Codebase, http://www.codebase.com A few things, I went to University with, and knew Ken Sawyer (the founder of codebase.com). I used to know him on a personal bases. I Just have not kept up with him as of late. His company is of course located in my City. Now, back to my question: www.codebase.com is simply a high performance xBase compatible library. Why in the world would you dump the use of the VPF engine, and use codebase? (or are you suggesting the use of the codebase server?). I most certainly recommend codebase for a C++ project, or even a VB project where you need a high performance data engine, or you want xBase compatible files. However, you are hinting that one should dump the VPF engine, and use codebase in it place? Do you not loose features such as referential integrity when you do this? This does not make any sense here. Perhaps you might explain why one should dump the VBF engine, and use codebase? By the way, I absolutely recommend the product codebase, especially when writing a commercial program in C++, and you need to have an embedded engine. In this role..code base is a winner, but you are the first person I seen to suggest to use codebase WITH VPF. Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Thu 28 Nov | Simon Lucy | Actually that's weird, since I don't use Codebase, but Codemine. http://www.codemine.com Nope, I have no explanation for that :-)
Windows C++ Development | Tue 26 Nov | matt
There are a few different choices available for developing native Windows applications in C++. For example: - MFC - ATL / WTL (although WTL is unsupported) - Custom wrappers around win32 (depending on the size and scope of the project obviously) Note that Im not asking about Delphi, VB, .NET, etc. Im specifically interested in starting a thread about Windows and C++. Personally, I like to style my own code using modern C++ idioms as written about by Meyers, Lippman, Sutter, etc. I like to take heavy advantage of the STL and generic programming; I know that OOP is not a panacea, and that other valid design techniques exist. MFC was architected before the C++ standard existed, and before templates and the STL were defined, let alone popularly used. Understandably, it doesnt fit in with the aforementioned development style. ATL and WTL, on the other hand, make heavy use of these modern techniques. Unfortunately, ATLs scope is very tightly defined, and unless paired with WTL falls short of being a general Windows development library. WTL, from what Ive seen of it, is very nice. As I mentioned, however, it lacks any official support, and documentation is quite sparse. My questions follow: What do you recommend? What have you used? What does Microsoft do internally? What does the Office codebase look like for example? What about companies like Adobe? From the looks of Photoshop, it uses a custom GUI toolkit. Whats it like? What are some good resources that can answer questions in this space? Do you have any related advice or insight? I realize these questions are quite broad. I think its healthy to model yourself after those who have found success with their techniques, and so I will be intently reading your comments. Thanks a lot!
Tue 26 Nov | jb | I use both ATL and MFC for building the GUI portion of the application. I tend to do the main GUI part of the application in MFC. I generally restrict my use ATL for writing COM objects and some library code. This is not my personal preference (I love the power of ATL would happily do most of the application in it) but I find that MFC is easier for people following me to maintain and understand. Where possible (and it not always is) I try to split the application internally into the GUI and Logic portions. The actual logic functions I tend to write in std C++ (STL etc). I try to avoid using MFC collections and other non-GUI MFC objects as their STL counterparts are generally superior. Where I have to use both I designate an interface point of the application where I translate all the MFC objects (e.g. CString) to/from their STL counterpart ( std::basic_string<> ). I have not used WTL but would be really interested in having a look at it based on what I have heard from others.
Tue 26 Nov | Z M | At my work, we support Windows and Mac. We use MFC and maintain our own inhouse Mac port of MFC for our cross-platform code.
Tue 26 Nov | Andrew Simmons | We use Borland C++ Builder. It has a few quirks, but at least you don't have to deal with a filthy mess of preprocessor macro trickery as in MFC, and to some extent ATL. There's a recent thread on Builder in this very forum.
Tue 26 Nov | Brad (The .NET Guy) | I don't understand your desire to avoid WTL. You say it's unsupported, but so would any wrapper library you write. It's white box (all source is included), so you can fix any bugs you find. In short, why is that a big issue? -- Brad http://dotnetguy.techieswithcats.com/
Tue 26 Nov | Just'in | Have you considered QT toolkit ? It is written in clean C++ and works on many GUI.
Wed 27 Nov | Ori Berger | Or a high-performance, lightweight, cross platform, GUI library? check [ http://fltk.org ] - FLTK strikes an amazing balance between usability and complexity. And it's also extremely fast.
Thu 28 Nov | | '[ http://fltk.org ] - FLTK strikes an amazing balance between usability and complexity. And it's also extremely fast.' The latter is not something that can be said for the website ATM. I gave up on waiting for a response :(
Jean et Marie play computers | Tue 26 Nov | Simon Lucy
I just flipped onto the Fog Creek Home page by accident and saw the new photograph. The photographs on the site have always been a welcome feature, but the new one looks like it came from a 1986 Training Brochure with the caption Many of our students have never seen a monitor before.
Tue 26 Nov | Michael Bean | That's the way most stock photography is. Lots and lots of friendly people looking intensely into computer screens. Try going to: http://www.comstock.com and search on the keywords 'people, computer' to find literaly hundreds of other examples. The company I work for has examples that are just as bad [ http://www.forio.com/lead.htm ] but our website design tests indicate that people respond very positively to human faces.
Tue 26 Nov | Michael Bean | Oops! In my reply above, the correct search phrase for the Comstock photos is 'people computer' *without* a comma between the words.
Tue 26 Nov | | 'the correct search phrase for the Comstock photos is 'people computer'' If you search for 'computer people' you get a bunch of bearded 30 somethings (and barely face-fuzzed under 20s) in sandals. Hah! Made you look!
Tue 26 Nov | Jeff Hultquist | There are five people gathered around one monitor. They must using the new & improved 'even-more- extreme'programming!
Tue 26 Nov | Evan | Ok. But what about the one person who is not participating in the 'team' fun?
Wed 27 Nov | Simon Lucy | That's the manager.
Wed 27 Nov | Prakash S | hahahaha
flash card program for learning a foreign language | Tue 26 Nov | Jim Buck
Hi, I am a native English-speaker living in Poland for a little while and trying to learn the language beyond the beginner level. Ive tested out a couple flash card-type programs that I found on download.com for trying to learn vocabulary, but all seem to either be clunky or dont allow special characters to be entered. (Polish has some additional characters to the usual alpha set.) Id like a program that can: allow me to enter non-standard alphabets, be able to test foreign language->english testing, and english->foreign language testing. Some kind of charting of score results over time would be a plus as well as to organize the data sets (isolate verbs/adjective/nouns or food/numbers/etc). I had considered writing my own program on top of Excel, using Excel as the data-entry for this but thought maybe something better existed out there. Can anyone recommend a solid program perfect for this task?
Tue 26 Nov | Tomasz P. Szynalski | Check out SuperMemo. It is not king of usability and reliability, but the repetition spacing algorithm is really something. I can personally attest to its effectiveness. Here's an introduction to the software from my website (meant for English learners, but still relevant): http://www.antimoon.com/how/supermemo.htm The official site for the software is http://www.supermemo.com
Tue 26 Nov | Adam | Tom, Given that antimoon.com is a 'SuperMemo' promo site pretending to be a guide to learning English, I'd be interested to know what your relationship is to the software you're promoting here. I'd also be interested in the relationship you have with 'Jim Buck'. His query seems like a really perfect lead-in for your advert.
Tue 26 Nov | Stephen Jones | Yea, the first post appears to be a leader for the Spam in the second post. I find it very hard to see exaclty what supermemo does, or who it is aimed for. It would appear to be some kind of program for educational tests but the dociumentation is aimed at the user instead of at the teacher. There's no trial version, and none of the screen shots are showing an actual question. There is passable freeware language authoring software available in 'Hot Potatoes' and robust and long established commercial software in Author Plus. I can't see this program getting any fans at all. Why is the guy wasting his time spamming this forum though?
Tue 26 Nov | Jim Buck | Wow, tough crowd! :) I'm not related to Tomasz at all, but it's interesting that I'm learning Polish, and a Polish guy responds. Tomasz, czy mozesz polecac cos inne zeby uczyc sie dokladnie polskiego? To make myself credible, this is me: http://gamelord.org/features/tm4team.htm I'm a developer in the game industry (but no longer with Sony) - not the Super Memory industry. I will check out the other suggestions above, but does anyone else have other ideas as well?
Tue 26 Nov | Jim Buck | (Just a test to see if Polish letters can show up on the board.. please ignore: ąćęłńóśżź)
Tue 26 Nov | Stephen Jones | Well, maybe you're real and Tomasz isn't, or maybe it is a pure coincidence. It's still not at all clear what you want. If you just want something for flashcards for you then go to the stationer's and buy a pen and some cards. If you want a picture on one side for some strange reason then get some clip art and print that. There are computer programs available for English, and to a lesser extent French and Spanish, but I doubt if there is much for Polish. What happens when you do a Google Search! If you could be more explicit about your needs I could do a search on the main CALL sites.
Tue 26 Nov | Stephen Jones | The Rossetta Stone series does do Polish, but it really is a pretty elementary vocabulary recognition program though well done. The Polish CD costs a whopping $195, but you can get a one-month web subscription for $19.95. I must admit that the graphic intensive nature of the Rosetta Stone program would mean a lot of waiting for the downloads! This site might give you some tips http://eleaston.com/polish.html However, if you are living in Poland I would suggest you try and swap Polish lessons for English lessons.
Tue 26 Nov | Jim Buck | Ok, I can see where my original message may not have been clear enough. When I say 'flash card program', I don't literally mean that I want to print up flash cards. I mean I want the same functionality that people often use paper flash cards for when learning a language. I'd like a program that allows me to enter Polish words and their English counterparts. (In this case, it obviously doesn't have to be a program specific to Polish.) Then I can tell the program to quiz me on these words both in the Polish->English direction as well as the English->Polish direction. Ideally, it allows me to keep track of the words in some kind of logical way so that I can test myself on, say, the food words (a subset of nouns).. or all adjectives.. or colors only (which is a subset of adjectives). Ideally, it can track my scoring over a period of time. Ideally, it stores the data in simple text format (so I can easily edit it external to the program if needed). I thought maybe someone here had the 'ideal' program for doing this since there seem to be a lot of people doing translations for Joel and, hence, went through foreign language training. I did search on download.com with unsatisfactory results toward the programs I installed. I also tried google.com a while back with a lot of irrelevant results. As for exchanging language lessons, I am already taking a class.. but it ends in a few weeks.. and I'd like to test myself on vocab in my free time anyway. A lot of Polish words are hard to remember since they can often look like relatively-random characters put together - to the English eye anyway.
Tue 26 Nov | Stephen Jones | I'd say that the physical cards are more convenient , portable and easier to use than any computer program. The time you would spend setting up the program wiould be better spent learing the language. To give you one of the great quotes in software engineering 'The fact that you can do something on a computer doesn't make it a good idea1'
Tue 26 Nov | Crimson | So Jim, You worked on Twisted Metal 4? Cool! What advice would you give someone who's interested in transitioning over into the gaming industry? I'm not definitely saying I'll do it yet, but I'm definitely interested.
Tue 26 Nov | Food for thought... | Crimson, Be warned - working in the game industry sounds 'fun' (and maybe it is?) but are you willing to work 18 hours a day, 7 days a week for 3-4 weeks at a time during 'crunch time'? A friend of mine is a developer on the sims online and this is what he does. I've known him for 5 years and this is how his 2-3 last jobs have been. Yes, he makes good money, but to justify working 18 hours a day for 3+ weeks at a time? Even if he pushes 6 figures (which he does.) No way it's worthwhile in my opinion. I considered it, but unless/until you become a lead developer, the money isn't great (b/c everybody wants to be a game developer) and the hours are shitty all around.
Tue 26 Nov | Jim Buck | Well, I honestly believe I'll learn much better with electronic 'flash cards' than with the paper ones. Anyway, I can type entries much faster than writing them (and they'll be legible :) ). Games industry.. ohh.. probably should start another thread. I will (or someone else please) if it goes beyond this reply. Is that Crimson as in Crimson Fury? :) Yeah, I worked on Rally Cross, CART World Series, Twisted Metal 3, and Twisted Metal 4. I started in the industry in early '96 and left Sony mid-'00. I essentially gave my lifeblood for the 4 years I was there. I worked TONS - basically it was wake up, work until really late, sleep, wake up, etc. However, it was extremely interesting work, and I loved it. However, I had a relatively little social life for that period of time. I left as we started to get into PS2 stuff to start my own company with a guy I worked with. http://www.depthq.com for those interested, however it is down since we are on sabbatical (hence why I'm in Poland). If the hours don't scare you (and this guy talking about his friend on The Sims isn't exaggerating), then.. to get in the industry.. I would say the best way is if you had a connection. Like all industries, the games industry is all about relationships and minimization of risk. If you know someone in the industry already, they might be able to short-circuit a path to get you a job somewhere. If not, then you have to knock on a million doors. Just to give you a little insight how I got in. I graduated with my masters in '95 and started replying to all games-programming jobs I could find on rec.games.programmers. Everyone wanted experience. Everyone has heard this paradox before in other industries. You can't get experience unless you get a job in the first place. Well, I had sent my resume to a friendly guy that was working as a producer at Sony Interactive. I actually got a positive respone from him, and he had me talk to a couple guys on the phone (including the lead programmer). They decided to fly me out (from New York) to San Diego for an interview. After talking with a few people there, they made me an offer, and I accepted. I think the only reason why I got past this friendly guy was that he wasn't as hard-assed as other people I had contacted and didn't really have an idea of what to ask me. He was one in a million that was willing to talk to a guy with no experience. Not the norm for sure. So, luck got me in the door. But, in the interview, it was my math background that really got me the job (they wanted me to do vehicular physics simulation for Rally Cross). So, I got lucky basically. I think those are the only two ways in - luck after knocking on enough doors or knowing someone. I don't know much about building up a portfolio of demos/etc, but I imagine that without luck or knowing someone, it might help in the cold calling.
Tue 26 Nov | Stephen Jones | I suppose if you're used to spending more than twelve hours a day in front of a computer screen, then electronic flashcards become more attractive. I would think you might find it quicker to actually write a program yourself than spend ages looking through the web, downloading stuff, learning how to use ti and then finding it is not appropriate. I am a language teacher so I have a fair idea what is in the market, and nothing immedialtely springs to mind. Why don't you use Access? Create a form with two text boxes, one for the Polish word and one for the English word. have a command button that toggles the visible property for each text box, and seeing you're a mathmetician get another button to access the records randomly. But email me a copy of it when you've finished (minus the words - Polish isn't on the agenda at the moment). Incidentally, if you look around the web at language llearning software, as a games developer you'd be amazed how bad it all it. If you get venture capital contact me, there's an opening :)
Tue 26 Nov | Joel Goodwin | If anyone else is interested, I did put together a flash card style language tool in Excel myself some time ago, (originally for learning Japanese but works for any pair of languages) and also to exercise some VBA skills. If anyone wants a copy, please send me an e-mail... it's free an' all...
Wed 27 Nov | Jim Buck | I don't have Access, but I don't think it takes a math degree to get random record access working. :) You are 100% write on the software I have come across so far - just plain horrible. I did consider writing my own from scratch since I know I could do a much better job than I've seen, but it would only be for myself. I sell games not language software, but who knows.. if there truly is an opportunity, maybe it's a good idea. I could be like how FogBugz came to be. :) My business partner also speaks a foreign language, so this would interest him as well. Any ideas on what the possible market for this is and what they are looking for? Anyway, I took Joel up on his offer to check out what he has. I thought Excel was a good place to have a quick'n'dirty one since people use Excel to keep lists.
Wed 27 Nov | Stephen Jones | I gave up on Excel after I had to spend an afternoon re-entiering a load of data it had let me scramble. As Joel mentioned somewhere on the site, Excell was never intended for people keeping lists. It was just that that was what people used it for. The advantage of using Access for this is that if you decide to go further with it you don't have to restart from scratch. But for a couple of hours quick coding, just use Excel.
Wed 27 Nov | Tomasz P. Szynalski | My relationship with the company which develops and markets SuperMemo software is simple: I am on their affiliate program. So yes -- you have reasons to distrust my recommendations. I started using the software around 1993, something like 7 years before I started my site for learners of English and got on the SuperMemo affiliate program. I have published my experiences with SuperMemo here: http://www.antimoon.com/how/tomandsm.htm
Honest days work | Mon 25 Nov | Gary Black
How many quality programming hours are you able to squeese in an 8 hour work day. I am lucky if I can get four hours, and I am feeling quite guilty.
Mon 25 Nov | Fire & Motion Captain | I can say I feel the same way... but what can ya do? If you can't get yourself 'in the zone' for extended periods of time - this is the result. I get in the zone for extended periods around 1 or 2am. But there's no way I'm doing 'work work' at that time of the night after unsuccessfully trying to stay 'in the zone' from 9-5. Clients/salespeople call, coworkers instant message, and everbody emails me. And even on days when nobody calls/messages/emails, I still cannot stay in the zone. That's what joelonsoftware.com or slashdot.org are for ;-) If you put in a really productive 4 hours a day - you should be content.
Mon 25 Nov | Philippe Back | The best days is when I am producing code for my own little software product and need to show it off for review... This happens while working at home. Being self-employed helps in being motivated.
Mon 25 Nov | Mr Jack | See if they'll let you work from home - I find it much more productive.
Mon 25 Nov | Hmm. | Working at home doesn't 'work' for everyone ;-) I work at home 75% of the time and find it easier to goof off or just procrastinate than when I'm at a client's office.
Mon 25 Nov | Tj | 4 hours -- good for you. I don't get this obsession companies have about hours per day. Your productivity is what counts. Companies probably have such primitive productivity measurements that they think that hours is all it's about. Still, if you like the romantic idea of codathons, I think that it's possible to do more than '4 hours of work' a day. If you're working on something atrociously cool, or maybe if the company is set up to let you tailor your workday as you see fit to reach your goal, then I believe it's possible.
Mon 25 Nov | Andrewm | Four hours of an 8 hour day actually producing work is good. Where I work, when developers make time estimates, we ask 'how many hours to code it if you came in on a quiet Sunday afternoon'. So you give estimates as if you were producing in the zone. Then we put a factor on the estimate. The factor depends on what other things the developer is likely to be involved in (code reviews, meetings, various interruptions, a certain amount of time that your brain is not actually devoted to work). The factor is typically around 2 to 2.5. That means that if you estimate a task will take 4 Sunday afternoon hours, we'll schedule 8 real-world hours.
Mon 25 Nov | Crimson | 4 hours sounds about right. And when you say coding, I lump in designing software with that too. Occasionally I hit stretches where I'm 'on' for a long periods of time, but a lot of software development consists of doing boring, but vital 'dirty work' and it's hard for me to get in the zone for that.
Mon 25 Nov | Colin. | I do work from home and find it to be the most productive environment. Of course this does require some discipline, but I attack all problems as soon as I get them with the intention to get some clear time to visit the cinema or do something fun. As for hours of work, I find that it's the hours not being worked that's the most important. Attempting to work 7 days a week or for long hours every day is normally counterproductive. So long as your 4 hours are good hours when you're not feeling beat then you're probably doing fine. It's just the dodgy preconceptions we have making you feel guilty.
Mon 25 Nov | Mark Hoffman | I'm very fortunate right now. I've been on a contract for about a year where I am the only developer and I interface with management about 1-2 times a week to give status reports, updates, etc. Beyond that, I'm left alone which is a welcome relief from being constantly micro-managed and forced to attend endless (and pointless) meetings.
Mon 25 Nov | anonymous | 4 hours undisturbed sounds like a good day - often I get less than that, doing all the workshops, meetings and other sales-related stuff. I find that when I stay after work hours I get the most stuff done. But now I am in a place where people consider coming in at 9am late.
Mon 25 Nov | Bella | More importantly, what kind of employer allows you to work an 8 hour day?? Wow!
Mon 25 Nov | Robert Moir | Most importantly, do you meet schedules. If I'm given a task by management, I'm given a date it has to be ready by. As long as its ready by then, they don't care. If there is a good reason it won't be ready by the due date, then as long as i keep them posted and do what i can then they accept sh!t happens. Same if I delegate a task downwards; this is the date it has to be done by... I don't care how work is scheduled otherwise. Which isn't to say i'd let wholsesale goofing off slide, or that i'm unavailable to help someone who needs it.
Mon 25 Nov | Tj | btw, I meant to note that I think some people are perfectly productive doing more than 4hrs/day. Just that hours don't matter for pure coding, only productivity. People are different (surprise).
Tue 26 Nov | HeyMacarana | On average I get around 3-5 hrs. I rarely ever get to 7 or higher given an 8 hour day. If you get stuff done on time, then if you only do 1 hr of actual work then that's fine in my opinion since it's management's fault for not giving you enough work to do. But I suspect your feeling of guilt is arose due to either your actual or perceived feeling of falling behind on the schedule. If so, I recommend you figure out what makes you tick and get in the zone. Perhaps you need to think of a 'happy place' (ie. 'Happy Gilmore :) to get your mind focused. Everyone has their own unique way of getting into the coding flow -- you just have to find your unique way of getting your mind to that point.
Tue 26 Nov | DB | Currently... ooh, as much as 2 or 3 minutes a day sometimes. Amazing how demotivating it is when you are told you'll be laid off next year along with 95% of the rest of the company... and suddenly every IT project is frozen and the boss says, in response to a question of 'So what should I work on now?' ... 'Your CV'.
Tue 26 Nov | Bruce Rennie | Why do you feel that you're not working when you're not programming? I am the 'coach' (team lead) on a team doing Extreme Programming and this is probably one of the most frustrating things to hear from a developer. Any monkey can bang on a keyboard. A developers job isn't to code, it's to help the group deliver a product that does what they said it would do on time. That's the tricky part. It usually involves talking with other team members, working with QA and the technical writers, etc. These don't involve programming yet they are vital to our success. My suggestion is to stop defining your contribution in terms of hours of coding and more in terms of project progress. On another note, you should be careful what you wish for. I've done pair programming sessions that have lasted for the better part of a day (7 hours) and you're pretty wrung out after that. The only reason I would trust the code that came out of that kind of marathon is that I had another set of eyes backing me up. I am skeptical about any claim single programmers might make about how they crank out wondrous code in 8 or 10 hour sessions. Sure, the code might exist, but I suspect it's a time bomb waiting to happen.
Wed 27 Nov | Omar Kilani | 4 hours of productive work is quite good. (On a slightly off topic note) It's also the maximum amount of time you should be typing/mousing a day according to papers on RSI/CTS. You should be resting 30 seconds every 3 minutes of typing. And then taking a 10 minute break after 45 minutes of typing. And you're supposed to stop completely after 4 hours of typing. And it's very easy to regulate yourself: http://workrave.sf.net/ You can download Linux/Win32 versions, and they have this 'borg' like ability so they enforce the timing stuff over multiple machines. Trust me, it's worth using. 3 months ago I felt a huge amount of pain in my right wrist. I was diagnosed with tendonitis; basically, inflammation of the wrists. My right hand was paralised with pain for the next 2 weeks. I couldn't type/eat properly/etc. I've spent a huge amount of money on physiotherapy and chiropractic. I still have pains 3 months afterwards, and I've started showing symptoms of Carpal Tunnel Syndrome. And my left wrist has started to play up. I now see a chiropractor every week and do daily hand/wrist excercises. It appears to be getting better. 3 months of pain is _not_ fun at all. No amount of money is worth the pain.
Bringing Code Samples to Interviews | Mon 25 Nov | David Carlson
I have heard anecdotes about people bringing code samples with them to interviews. How does this work? Has anyone done this or been wowed by a candidate who has? Any advice or stories that you can share? I am proud of the work Ive done, and I want to clearly communicate the scope of my contribution. But a method or class in isolation doesnt necessarily tell you much. Good code is often boring code, as the need to do something tricky usually means theres a better way. Ive thought about making some kind of a portfolio of the stuff Ive written, with background description, DB schemas, diagrams of the general flow, etc. to help get a discussion going during the interview and to save time re-drawing them on a whiteboard. Is this overkill? Should I just work on a quick verbal summary of the project I can rattle off, and go practice the questions at http://www.techinterview.org/ instead?
Mon 25 Nov | Mr Jack | At my last interview (at which I got the job), they asked for a code sample of 100 lines. of code. After some thought, I decided to submit what was essentially a whole class (albeit a small one) - edited slightly so as not to disclose company secrets and a small snippet of windows code. I feel the point is to show consistent variable naming, function naming, parameter use and so forth. In C or C++ you probably want to show you have plenty of pointer skills.
Mon 25 Nov | Alberto | It goes both ways, code samples. I have bought in slightly bad ones (complex errors only) and used them to determine if the people who read them know what they are talking about. If they say that the samples are good I talk up my rate. Otherwise, if they pick up the flaws I know I am talking to peers.
Mon 25 Nov | John C | I remember one guy I interviewed brought in about 50 pages of code samples (most of it generated by the ATL wizard I might add). I had a leaf through it and found a bug and then showed him the code and asked if he could work out why it was a bug. Very revealing. I think it was more useful to see his reasoning process and understanding of the code than if he could churn out hundreds of lines a day.
Mon 25 Nov | dk | Some questions related to the subject: Is it a good idea to make CV references to my Open Source projects? Is it good idea to mention during the interview that I paricipated/created in Open Source projects? I can think of a situation when such a reference can actually make negative result - guys (usually human resources people) in a company which develops mostly for Windows will look on my Linux project, say 'Ok, this is a Linux geek' and send my CV to the /dev/null.
Mon 25 Nov | David | Yep. Anybody that mentions /dev/null metaphorically is a linux geek and the HR folks would have been justified in sending your resume to the 'recycle bin'.
Mon 25 Nov | mackinac | My previous employer asked prospective interviewees for a code sample and a writing sample. These were read and evaluated by technical staff before the candidate was brought in for an interview. My current employer asked for code samples, but I just brought them to the interview rather than sending them in advance. DeMarco and Lister in 'Peopleware' recommend using code samples to evaluate employment candidates. I think it is a good idea, but there are some problems with it. The biggest problem, for the interviewee, is to have code samples available. Code we are working on for our employer is often proprietary. I tried to get permission to use some code listings from my last job, but was denied. All I could find to use was a little Python script, but it turned out to be adequate. You may want to build up a portfolio to have something available when you need it. Be careful about what you use. At my employer that asked for samples in advance, the reviewer was supposed to check to be sure that the sample wasn't proprietary code that the candidate wasn't allowed to give out. If it was, the sample was returned and the candidate immediately dropped from further consideration.
Mon 25 Nov | David Clayworth | Mr Jack has it right. We ask for code samples, and what we are looking for is good coding style. This means easy to read, consistent variable naming, well laid out, no devious tricks when they are not needed. Highly complex code would have been less useful to us, unless we could tell that the complexity was absolutely necessary. It doesn't necessarily have to be code from work. We would take home project code as long as it was professionally written, and a few hundered lines is fine. We don't have the time to look at more than that anyway.
Mon 25 Nov | Ichabod Crane | Asking for code samples is a waste of time. It is almost impossible to determine if the code was written by the submitter. Unless they do something stupid like submit a code sample that you know is floating around on the internet and claiming it as their own. Better to have them write som code for you as part of the interview. That way you know it is their code.
Mon 25 Nov | sam | Having candidates write code during the interviews is probably the best way to gauge their code-writing skills, although there will be people who are so nervous in an interview that they may do poorly here. Code samples have been more useful to me in the pre-interview stage -- some candidates have provided some really awful code. One of them got hired to replace me, but I didn't really have much input in that process. Someone else provided a decent sample I could read, made it through the interviews, and turned out to be one of the smartest people I've ever worked with. Another alternative to bringing code samples is to do a quick demo of an existing app -- although this may not be possible for developers who've been working on proprietary apps.
Mon 25 Nov | Robert Moir | 'Is it good idea to mention during the interview that I paricipated/created in Open Source projects?' Depends on the job doesn't it? If you are scared of upsetting people in a more 'button down' environment then you might consider if you'd be happy there anyway. If you do want to submit that work and are worried then how about not bothering to shout about it being 'Open Source', with capitals and all, and just talking about 'a project I worked on' After all, if I wanted a politician I wouldn't advertise for a programmer.
Mon 25 Nov | Norrick | My current employer gave me a sample exercise to code up and send in before they agreed to interview me. Sadly, they stopped this practice and as a result at least one developer who never would have passed muster ended up being hired. I appreciated the fact that they challenged me. It made me want to give them the best damn code I could write, and I did. Now, as far as asking for examples of past work, that may not always be possible due to the fact that your employer owns whatever code you write.
Mon 25 Nov | Nat Ersoz | For my first job I had to submit a stool sample. Mmmmmm. Food service.
Tue 26 Nov | Must be a manager | Nat, I've eaten there.
Tue 26 Nov | Danil | Unlike Mr. Crane, I don't care if the applicant is also the author of the code sample they bring to an interview. If applicant walks in with, for example, Herb Sutter's exception safe stack implementation, that's a pretty good sign that (a) applicant can recognize good code (b) applicant learns from good sources. If the applicant can then (c) explain the code intelligently - well, what more were you hoping to get out of that portion of an interview?
Tue 26 Nov | Marc | 'My current employer gave me a sample exercise to code up and send in before they agreed to interview me. ' In my opinion, there is no better way to test a candidate’s aptitude. The way they solve problems tells you a lot, even if they just search the internet for the answer. You get to see how they code, how they think, and how they apply solutions to problems. Just make sure the questions don’t require a lot of domain knowledge. They should be general enough that anyone could answer. Printed code samples don’t tell me much. They show that they can write well formed code, but that is about it. And as someone said, you have no idea if they even wrote it all. But the big one; “Coding at the interview is BAD”. You’re asking people, who are naturally nervous, to snap themselves into the “zone” on command. It flies in the face of everything else Peopleware says about management. Its hypocritical to say that your developers work best in a state of “flow” and then turn around and hire based on ultra-pressure coding in an unfamiliar environment…. Can you tell I didn’t like this section of Peopleware yet? Just please, don’t do this to people.
Tue 26 Nov | Prakash S | Marc: Shouldn't you ask the prospective candidate to atleast show a bit of what his primary job would be?
Tue 26 Nov | Mr Jack | Marc: You're not asking them to produce ultimate code. You're asking them to solve a small and simple problem and looking at the steps they take and the way they write. More importantly you are in a position to spot mistakes in their code and see if they understand them. Of course, it's not equal to seeing what they can do under good work conditions but it's still far, far better than not making them code at all. At the interview for my current job, I was shown a peice of code and asked to find problems with it. That seemed a pretty good interview exercise.
Tue 26 Nov | Marc | Prakash, History has shown that no matter who you hire, you will need to have some ramp-up time. This can take anywhere from six months to a full year (some industries are even longer). Many people advocate hiring the best “thinkers” over those who have the most domain knowledge because teaching someone about your domain is a lot easier that teaching someone to “think” correctly (I would argue its impossible). I send a candidate a sample database and some sample code. The sample code is a small application (two windows with menus) with limited functionality. I have them add the following to the application: 1. Produce a report that calculates the average sales for each customer over a specified date range. The report should be run from the “Report Menu”. 2. Add an email address field to the customer table. Add this field to the customer editor interface. 3. Add the ability to send an email to the customer’s email address. 4. Add the ability to export the list of customers to a file. Use any delimiter you wish. Sometimes there are a few more, depending on who I’m interviewing. The goal is too see how they “think”. While I’m looking for specific things in their answers, there isn’t a single correct answer to these.
Tue 26 Nov | Kevin Clary | At our company, I ask prospective programmers for code samples in advance and ask them to write some code during the interview. I will favor programmers who provide sample code that I can actually run. In my experience, programmers who code for fun (and are therefore able to provide a non-proprietary working program) tend to be top performers.
Tue 26 Nov | Ian Stallings | [If you do want to submit that work and are worried then how about not bothering to shout about it being 'Open Source', with capitals and all, and just talking about 'a project I worked on'] The use of capitals denotes that the application most likely uses a OSI certified license, such as the BSD license, and associates itself with 'Open Source' movement as opposed to the Free Software Foundation's 'Free Software' movement with it's strict adherence to the GNU license and philosophy. http://www.gnu.org/philosophy/free-software-for-freedom.html#relationship It might seem like they are shouting but it actually serves a purpose to make the distinction. Quite interesting stuff I think.
Tue 26 Nov | Bruce Rennie | Personally, I would never accept a job at a company that wanted a sample of my code. To me, this speaks volumes about the focus at the company and it's not good. I've interviewed a number of people where I work now (some of them hired) and, quite frankly, I couldn't care less about any sample code they might have brought with them. The single most important thing I need to know is: Can I work with this person? If the answer is no, then it's not likely anyone else at the company would be able to either. And if that's the case, then who cares how talented they are? Assuming they aren't complete sociopaths, the next thing I want to know is: Is this person afraid to think? Does the person have common sense and know when to use it? Again, if the answer is no, then who cares about their coding talents? We've all met people in our industry who are quite talented but are terrified of thinking on their own. I don't want, or need, a person who I have to direct. I want someone who is going to contribute. If the candidate is sociable and exhibits common sense, then there's a reasonable chance their work is of good quality. In the off chance it's not, you can train them to improve their work habits. No amount of training is going to fix an anti-social, cubicle denizen, no matter how talented.
Tue 26 Nov | Peter Ibbotson | Here we ask people to code a simple file parser with some formatted output. It's generally not a bad idea, since you get then to ask them about what they're doing and how they're doing it. Typically we start out with a file along the lines of: orderNo, Customer,ItemNo, ProductCode etc.. and ask them to produce an output consisting of Order No, Customer ItemNo1, Product1 ItemNo2,Product2 Since we've historically been in VB land I would expect them to produce a collection of order Classes keyed by order number each containing a collection of order items Whats interesting is how their code looks, if they've commented any assumptions (e.g. OrderNumbers always have the same customer) The best programmers we've seen tend to validate the input data in some way, often writing two versions. A quick n dirty version first with a note at the top of the parse routine saying that it's not very good and assumes the data is valid (possibly listing a few duff cases), followed by a second version which they write adding bells and whistles in data validation and output options which they keep on enhancing until we interrupt them. The really smart ones ask early what sort of a solution we're expecting i.e. should they parse it into a Jet database then use Crystal for output or should they parse into memory then output some other way. It's not perfect, and I'm sure we miss candidates who don't perform well under pressure. Under different circumstances when I've been interviewing for embedded systems programmers I've asked questions like: Hand compile the following code into assembler (assume you're a VERY stupid C compiler with no optimisation) void TestFunction (int x) { int y; int z; y=x*x; z=x*x*x; printf ('x is %d x squared is %d x cubed is %d',x,y,z); } int main() { TestFunction(4); return 0; } Good embedded systems folks will do this with a stack frame and put the parameters on the stack the right way round for printf, (Possibly producing an optimised version) Typically bad (embedded) programmers just get this wrong. They'll use registers all over the place passing the parameter in a register, won't use a stack frame and generally show no sign at all of ever having debugged C code down at the assembler level. If someone didn't use a stack frame a quick prompt asking them to do it using one often brings good results or a very blank face. Some good candidates miss the idea that I want a VERY stupid C compiler and that the code has been simplified for ease of compilation rather than so you can optimise it. In terms of bringing in sample code, I'd rather look at a finished application than code samples as it gives us something to talk about (e.g. problems etc)
Tue 26 Nov | Brent P. Newhall | A popular alternative is to ask the applicant to debug some code samples during the interview. This happened to me once; I was blindsided with programming problems at an interview. Interestingly, though I think I did relatively poorly (I stumbled around a lot and couldn't answer some of the questions), the person interviewing me was a fabulous programmer who was undoubtedly studying *how* I approached the problem rather than my final answer. I may not have arrived at the best solution instantly, but the steps I moved through illustrated my knowledge of the language and programming in general. I was later offered the job. Anyvay, this can be a reasonable alternative to asking applicants to code during or bring code samples to the interview.
Tue 26 Nov | mackinac | >>> Personally, I would never accept a job at a company that wanted a sample of my code. <<< I am currently working for my fifth employer and have had exposure, via contracts, to a few others. All of them had some problems, but one stood out as being somewhat out of the ordinary. It could just do a much better job of hiring good people and getting them to work together. This was the place that requested code and writing samples in advance for job candidates. I should be cautious about extrapolating that experience, but I would be concerned about accepting a job at a company that didn't want a code sample. Unfortunately, that company didn't survive the bubble.
Tue 26 Nov | Rate the hirer | Some places use code samples to validate the hirer, choosing esoteric or narrow samples the hirer knows inside out, but which are not necessarily good tests. These places hire people from almost exactly the same types of environments and become stale. Other places use an intelligent interactive approach, often using samples as a springboard for discussion. These places do a much better job of assessing capability.
Wed 27 Nov | David Clayworth | We have easy ways to get round the problem that code sample might not be written by the interviewee. Firstly we ask them to talk us through it, and ask questions about it, so if they've just copied it from somewhere we find that out quickly. Secondly we are mainly interested in what they think good code looks like. If they don't care about maintainability then they will produce sample code with no comments but lots of complex programming tricks in, because they think that's what we are looking for. If they know what good code looks like they can probably write it.
PR firms | Tue 26 Nov | Diego
Anyone here ever used PR firms and have stories (good or bad) to tell?
Tue 26 Nov | rick chapman | Go to www.softwaremarketsolution.com and read the Flacks Do ROI Article. rick
Tue 26 Nov | Chris Tavares | Gigantic money sink. Major waste of time. If it weren't for the useless PR firm bills, my last job would probably still be alive.
Tue 26 Nov | Mike | Ditto
Tue 26 Nov | J. D. Trollinger | You could probably get Lizzie Grubman pretty cheap right now: http://www.washingtonpost.com/wp-dyn/articles/A37482-2002Nov25.html
Writting a 900 MB CD-ROM | Tue 26 Nov | David Alvira
Has anyone experience writting 900 MB CD-ROMs? I bought a couple of them, but my software+CD-writer dont recognice it.
Tue 26 Nov | Prakash S | nope 702 is the max i have played around with.
getting even | Tue 26 Nov | Mr. Smith
i just started a new job at a company thats schizophrenic about software and basically has (as ive come to discover) a somewhat adversarial and malignant culture and work environment. this is basically a result of haughty management and a complete disregard for the engineers. basically, im new here, and management is a pain in the ass. on the one hand, they say they want us to take more time designing, while meanwhile, we get tons of pressure to get tech docs done fast. (ultimately, we need to push them out the door fast to make it look like were doing something)... im having beef in particular with one of these managers. hes creating conflict with me, where none is necessary. im not trying to be difficult with him, but hes finding my questions academic and he told me in private that i am creating problems rather than solving them. ive never had problems with a manager to this extent... his attitude to me has me absolutely livid and i was wondering if anyone has stories on how to manage a situation like this (a micro-managing manager who swoops in to make assertions when hes not really tuned into the small issues)... also, anyone have anecdotes about destroying people like this :) and yes, i am looking for a new job.
Tue 26 Nov | Jack | Sometimes, things can't easily be explained: http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=20366&ixReplies=7 Sincerely, good luck.
Tue 26 Nov | sherlock_yoda | Try reading 'how to work for a Jerk' - I can't remember the author but you should be able to find it on Amazon. Remember, the key to survival isn't to do your job well - it's about finding out how to help your manager meet his own agenda. If your manager finds you useful he'll treat you well and protect you. Then, in the long-term you can search for a more sane job, which will let you actually do good work. My prayers go with you. Sherlock_yoda ;0)
Tue 26 Nov | Just me (Sir to you) | Get out, now! Run for your life! Oh, I see, you are already looking for a new job. In my experience this is the worst situation to be in, and the 'bully' manager of this type is very unlikely to change. Focus on job hunting and in the mean time, just say yes to whatever he comes up with and then proceed to ignore it. Yes, he might get mad. No, you should not care and no, it will not be worse. After a while he will ignore you.
Tue 26 Nov | Prakash S | This might be a good time to start praying :-)
Tue 26 Nov | DB | Next time he's talking to you just stride out of his office and shout 'And next time you try and touch my ass, I'll sue you for sexual harassment!' Make sure plenty of people are around to hear the shout.
Tue 26 Nov | | You could always try writing a job application from the painful one to your company's main competitor, then leave it in the office copier.
Tue 26 Nov | Robert Moir | Perhaps you should document all the times this person places you in an unfair position - times, dates, witnesses etc, and establish a pattern of harrassment. With that done, speak to that manager's manger and/or Human Resources. Of course, if the whole corporate culture is this way then you need to bail.
Tue 26 Nov | HeyMacarana | Since you've stated you seem to only have a problem with one of the managers, then you may want to try the following: 1) Try talking to him and letting him know exactly how you feel. (I'm guessing you've already had this conversation when he pulled you into his office.) 2) If the above doesn't work, which I'm sure it won't, then you need to get an independent third party involved. Since it seems you get a long fine with the other managers, you may want to talk to a few of them and express your sentiments about how he's treating you. You also have to be very careful about who you choose to talk to about this, and also be very tactful and sort of indirect about how you speak of his actions. Also make sure you choose someone who seems to have some sort of authority (not necessarily rank) over the problematic manager. Say to the other manager, 'I'm not sure why [Insert his name] feels like I'm creating a problem. He says that my questions are 'academic', but I just want to ensure the success of the projects by making sure we do the right thing from the beginning. Do you have any advice on what I can do to change his perceptions about my questions during discussions?' If he agrees with you, then you've won half of the battle. The other half requires persuading him to talk to the other manager about changing his attitude about you. The manager may be relectant to confront the other about it, which is why it's imperative you choose some with the authority and audacity to make decisions and act upon it. If he doesn't agree with you, then just let it go, and keep on looking for a new job with more enlightened management.
Bug Triage | Mon 25 Nov | Gordon Taylor
Hi folks, Im trying to come up with a metric that we can use to accurately determine which bugs we should fix. In the past, weve used things like status - just one field that determines the severity alone. The trouble with this was that what was high priority 3 months before we ship isnt considered high priority by the dev team 2 weeks out - soon every bug ends up getting raised as a critical fix. I figure if we can get a simple weighted equation that covers all the things we need to know, we can discuss the bugs raised each day and give them a score. Shouldnt take too long, and would allow the QA guys to start setting the quality bar based on a realistic metric, rather than trying to fix 100% of the bugs and being dissapointed everytime we release... So far, Ive got: Severity - How bad is the bug? Embarrasement- Would a defect of this type be perceived as symbolic of a more general quality problem? Extent - What percentage of our customers are likely to encounter this bug? Potential for destabilization - is fixing this bug going to break a whole bunch of other things? Testing Impact - Is there enough time to adequatley perform the regression tests to verify this bug fix? Origin - Has this bug been raised by a customer? Have you learned folk got any suggestions as to other factors that affect which bugs to fix? Is this a crazy idea?
Mon 25 Nov | Julian | You also need to consider how long it will take to fix each bug, so you can allocate your time in the most productive manner. Though you may consider several factors, you need to prioritize the order in which you'll fix the bugs . Then you can work down the list, dealing with the most important and accessible problems first.
Mon 25 Nov | Ron E. | I guess my question would be if the bug was considered high priority 3 months ago, then why wasn't it fixed 3 months ago? I can see how low priority bug fixes can be delayed but not the high priority ones. At any rate, other things that can be taken into consideration would be: * is there a workaround available? ones without workarounds should have a higher priority (how much higher would be up to you) * how often would the customer encounter this problem? are they going to see this problem every time they run the software or will they see it once or twice a year? * can the bug be documented as a limitation instead? hope that's helpful.
Tue 26 Nov | Gordon Taylor | Ron, The high priority bug from 3 months ago would be fixed - it's just that if the same bug came up under different circumstances (closer to the shipdate) it would probably be swamped by a bunch of other 'High Priority' Bugs, and our QA guys would then upgrade it to 'Critical'. The ratings system ends up devalued. I figure if we discuss all the bugs, we might be able eliminate some of this.. Thanks for the workaround one - good point.
Tue 26 Nov | anonQAguy | I recommend two ratings, but I like to keep them simple and concrete: severity and priority, expressed as follows. severity (i.e. significance of the symptoms) enhancement inconvenience-minor error malfunction-workaround malfunction-no workaround (default) crash/data missing/corruption obviously, these go from lesser to greater severity. For priority (i.e. sequence of correction), I recommend: Low Medium (default) High Critical No big deal here except that critical is intended to be preemptive -- you pretty much drop what you're doing and get those fixed right now. Personally, the systems I've seen not work too well are those that are: 1) based on numbers/letters for their labels alone 2) have a lot of gradations to them (I think > 5 is probably too many) 3) combined systems that tried to bundle severity and priority together. I've used the ones I listed above in a couple of places and they've worked pretty well. Most defect tracking systems I've used let me specify the labels for priority and severity, and where the decision has been mine, I've chosen not to use a defect tracking system that didn't support these two metrics and the ability to customize the labels used. This system seems to strike a reasonable balance between flexibility and simplicity, at least in my experience. HTH, Cheers,
Tue 26 Nov | anonQAguy | Oh - forgot to mention...if the defect tracking system lets me designate a default value for severity and priority, I set it to the ones indicated in my previous post.
Tue 26 Nov | Gordon Taylor | So anonQAGuy, how do you decide which bugs don't get fixed? This might seem too complicated, but I was thinking of a meeting each day during the stabilizing phase, where the Development Lead, the PM and the QA Lead triage all the new bugs. They do this by assigning ratings for each significant factor discussed above, and then add them all up, weight them accordingly and come up with a number - say out of 100. We then have a 'criticality' factor, and we can decide which bugs get fixed first. We can also decide where to set the quality bar - we could say that we can tolerate shipping with bugs that score less than 35... This is something that I've just dreamed up in my head - I really can't decide if it's a good idea or a completely retarded one...
Tue 26 Nov | Foolieh Jordan | What exactly are all your developers doing for the other 2.5 months when they're not fixing these high priority bugs? Hopefully not writing new code, right? It sounds like you are trying to apply a technical fix (in the form of a complex bug rating scheme) to a social problem (getting everyone to agree on which bugs to fix).
Tue 26 Nov | Brent P. Newhall | This sounds to me suspiciously like too many people are arguing over what's really 'important.' This may not be the case here, but if it is, you might want to consider setting up only one person (or a set of people) who can determine the priority of a bug. Then they can set that one priority field. It's not up to developers to decide a bug's priority. They can provide input, which may change the decision maker's mind about the bug's priority, but the responsibility should still lie with the decision maker.
Tue 26 Nov | Gordon Taylor | Foolieh said: 'It sounds like you are trying to apply a technical fix (in the form of a complex bug rating scheme) to a social problem (getting everyone to agree on which bugs to fix). ' You know - I think you're right. This problem is definitely social, and is more a symptom of overall team dysfunction, so it doesn't make a lot of sense to address it with a technical solution... I guess I've been looking for the silver technology bullet, when what I really need to do is focus on improving the communication between the two teams... I think rather than trying to baffle the QA team with bugfixing complexity, I 'm just going to talk to them more. How low tech... Thanks!
Tue 26 Nov | Chris Tavares | What we started doing is prioritizing bugs not by some generic 'severity' but by milestone. A low pri bug might be 'fix by release', where a high pri bug would be 'fix by '. This of course only works if you have fairly short increments. These don't have to be full scale releases, of course; internal milestones work fine. We started out with the usual 'High, medium, low' ratings, but ended up spending many hours recategorizing the severity of bugs as time went on. The fix-by dates were a lot more stable.
The Penny Black Project | Mon 25 Nov | Igor K.
Take a look at http://research.microsoft.com/research/sv/PennyBlack/ Is seems to be similar to Joels spam filtering idea.
Tue 26 Nov | Simon Lucy | One of the problems about charging for mail is that it can't then be mail. Not in the ordinary sense. It would have to be some kind of double blind system where a public address was known and a relationship created where the sender was trusted to send mail to the recipient. Either ends of that connection could look like mail but the bottleneck of having a single database that validated that relationship would likely make it unusable. Then there's the problem of initiating that relationship, if you want to receive mail from someone in this kind of setup you force them to enroll in it. If you want to send charged mail to someone who isn't already enrolled you could just umm send mail and uh tell them to enroll. Oh. As always with these kinds of things it depends on ubiquity and the ability to micro charge. But if you have ubiquity it will likely get polluted in much the same way, only more slowly. You accept mail from a corporate source as part of their terms and conditions they have you agree to using that mailing address for promotional material, then other collateral material gets pushed into the same delivery and before you know it you have the same junk mail problem that you have with physical mail. With micro-charging you get nickel and dimed to death, validating that you actually sent that many mails at that time would probably cost you as much as the bill you get presented with. So its likely that billing errors would accumulate, much as they do with telephone, banking and utility charges which have a similar problem of many small transactions. (Sent from very close to the home of the original gummed and printed stamp, Wyre Forest Worcs).
Tue 26 Nov | Robert Moir | OTOH what if you don't require tickets for each member, but for each trust between a sender and recipient. The server mechanism for granting tickets could be the same, and you could encode an encrypted string containing details of the 'trust ticket' into the mail headers without too much bother, much the same as we can exchange PGP encrypted emails now if we wish. Of course, it's still a bit of a 'boil the whole ocean' thing.
Pricing | Mon 25 Nov | confused salesman
I am wondering if any of you has experience with setting prices for your products. I dont have a solid model of my market that I can use to seek an optimum pricepoint, and estimating the parameters needed to build such a model would likely be wildly uncertain at best. Id like to avoid putting something out there and then adjusting the price up and down to learn the proper price point by trial and error. Any advice?
Mon 25 Nov | Prakash S | Good question. You should consider these things: How about taking a look at other products in the industry that you compete with, and then do a feature compare. The time, resoucres you have spent on the product. When do you intend to break even? I am sure there are a lot of people who have shipped commercial software in this forum, who will give you a better idea.
Mon 25 Nov | . | Time spent, resources expended, and break-even goal shouldn't affect the price. Your customers don't care about any of this. You should set the price to maximize revenue. (Of course, in practice, it can be hard to determine this price point.)
Mon 25 Nov | What do I know | If possible, test the market. Try out different prices, in different ads or different regions.
Mon 25 Nov | Jason W. Paul | I disagree with the post that says one should only be concerned with maximizing revenue. Agreed, the customers don't care about any of this, but maximizing revenue is not the 'be-all, end-all' to this equation. Consider the scenario where the immediate goal is market share oriented. In this case revenue amounts to didley-squat. He may want maximum market penetration, and revenue (in the short-term) might not matter.
Mon 25 Nov | Alberto | Also, it depends on the 'volume' of product you intend to ship. If you're only going to ship 1 unit and it represents years of work then the price should be high. OTOH if you're in the lucky position of being able to sell tens of thousands then the price adjusts accordingly.
Mon 25 Nov | Must be a manager | You need to know your market and what they normally pay for products like yours. I've known cases where a product price was increased 50 times as a result of this research, and the product was very successful. Similarly, if your product provides some really narrow functionality that's very important for wealthy businesses, then they will pay amounts you wouldn't dream about.
Mon 25 Nov | iHeartNY | the last comment is true. as I try to figure out how to eke out more than $40K doing scientific computing, my friend in NYC makes about $250K writing extensions to outlook for financial corps and hospitals in NYC. speaking of NYC, it would be interesting to see the percentages of fog creek's income coming from product sales vs. consulting...
Mon 25 Nov | brother | Marketing 101 pricing strategies: Cost plus: What it cost you to produce, plus a little extra. Skimming: Jacking the price up on innovative products. What occurs when new technology is introduced. Penetration: Low pricing to penetrate the market. Price/quality: Price of the item influences the perceived quality of the item. Meet competition: Used mainly for commodity products. You charge what the other guy is charging. Meet profit goals: self explanatory. Price elasticity of the buyer: Smokers buying tobacco tolerate price increases more than gum chewers buying gum. It really depends on your business plan as to which strategy to choose.
Mon 25 Nov | Torment | I've had to price a half dozen products and the first thing I try to do is consider how much I would pay for the product given the benefit of the product, the proposed license agreement and the support services offered at that price. It is far easier to figure out what you would pay for a product than to try and figure out what others would pay. There are other factors that usually get applied, but that is what I start with (and it is what I end with, because no matter what other formulas do to the price, I still have to believe that it is a product I would buy at that price.) If you feel strongly that your income is very different than the bulk of your target audience's income, then you may need to take that into account. The first product I ever priced I tried to figure what other people would pay, and as a result, I had to fiddle with the price two times over the course of the first year because I had it wrong. The first adjustment was 50% reduced (desperation), the second adjustment was a 20% increase because sales were strong, but it was difficult to cover support costs. Sales continued even stronger after the price increase. Since then, I have set the price of 5 more products and, using the basic method above, they have been good sellers at the original price without making adjustments. Anyway, the bottom line is you are looking for the price that the market will bear. What if the market price can't support the cost of development and support? Well, that is why companies fail. My only other two peices of advice are: Try not to change your price unless you have 6 months worth of data at the current price. When setting your price , if it sounds like it might be a bit low, remember that you can always increase your price later without looking bad.
Mon 25 Nov | HeyMacarana | 1. Rate your competitor's products. 2. Create a best fit curve in Excel for your competitor's products given the two variables: product rating and price 3. Rate your own product relative to your competitor's products. 4. Find the price point on the best fit curve found earlier given the rating on your product, and adjust the price from there. The hardest part about this is, of course, the rating part. Any ideas on essential factors to include when rating a software product?
Mon 25 Nov | . | Estimate how much money (time included) your product will save your customer. Divide that by two and you have your number. If that doesn't cover your costs, you've chosen the wrong niche.
Tue 26 Nov | Prakash S | HeyMacarana: YOu have a link to that?
Tue 26 Nov | confused salesman | Thanks to all for the responses. Sounds like it's as complicated as I thought :) Think I'll have to do some research, but this material will certainly be useful in starting in the right direction.
Tue 26 Nov | Jonathan A. | Also remember that in a lot of customers' minds price also says something about quality. If you're 50% below your competition in price, then they may think that the quality of the product is not as good.
Tue 26 Nov | jim rigney | If you'd care to read up on the subject, the following book is excellent: http://www.amazon.com/exec/obidos/tg/detail/-/013026248X/102-1854524-9936957 The language is often dense and it's mathematically oriented, but if you want to develop a robust model of your market and an effective pricing strategy to apply against it, this book is excellent.
Follow up procedures | Mon 25 Nov | sroy
Just looking for some advice,I called up the Director of a small software company, regarding job opportunities,after ringing him a few times,I got a call back from him.He asked me for my references from the school I graduated and from work,so I provided him with my references, through e-mail and also sent him a copy of a written reference from my former employer.This was around 10-15 days back.Should I wait some more time for him to reply,or should I contact him again?
Mon 25 Nov | Ran | Everyone will have a different opinion here, but I would wait until the Wednesday after the Thanksgiving holiday (assuming you are from the states) and follow up then. That would be a three-week interval, he could hardly accuse you of being over-persistent. I wouldn't call immediately after a four-day weekend, and I wouldn't wait until the mid-December craziness is upon him either. He asked you for your info, so it is perfectly acceptable to follow up and see if there is anything else you can provide for him. Good luck.
Mon 25 Nov | Tony E | Give him a call NOW. Make him know you want to work for him. If you wait three weeks he will have forgotten you.
Mon 25 Nov | Robert Moir | Would a note or an email, something thats not so in your face as a phone call, and therefore less likely to get a 'knee jerk' reaction just to get you off the phone so they can go to that urgent meeting, be appropriate? I think its fair to show that you are interested. You should also show that you respect their time, by not pushing too hard, and that you respect your own time, by doing enough pushing to let them know you would like an answer.
Mon 25 Nov | Stephen Jones | Robert's riight. E-mail, don't phone. We had a guy applying to my college who was almost certain for a job, but he kept on ringing the Department Chairman on his mobile phone at the wrong times, and now he just can't get through.
Mon 25 Nov | sroy | problem is,with an e-mail, I won't be sure if he will respond.It's kind of strange as I did not have an interview with him, but he asked for my references.
Mon 25 Nov | Nat Ersoz | I work at least 7 hours out of an 8 hour work day. Not always coding - much of the time its reading other peoples' code (3rd party drivers), understanding it, reading standards or debugging/testing hardware. When stuck on a problem, I'll print the docs & code and find a quiet conference room to spread out in with a white board. It takes away distractions like JoS and the urge to code. On most days I leave promptly at 5. If I work extra hours its in the morning. To those who think its impossible to be productive 80-90% of the day, all I can say is 'bah'. When I spent time at the minimum security facility i Redmond, we had a guy who coded no fewer than 10 hours per day. He was an animal, and by far the most productive member of the team. From what I understand, he still works like that. 4 hours of productive work/day? Sounds lame to me.
Mon 25 Nov | Hmm. | Nat - wrong thread ;-)
Mon 25 Nov | Nat Ersoz | speaking of lame: wrong topic...
Mon 25 Nov | Prakash S | Send him an email this week, and call him up 7-10 days after that, IF he has not replied to your email. All the best.
Tue 26 Nov | HeyMacarana | In my opinion, the Director probably just asked for your references to be polite since you've called him about looking for a job several times. If he didn't mention anything specific about a certain job position when and/or before asking for your references, then my guess is he's most likely just trying to be cordial to your persistence in calling him up several times before.
How to let managment know about quoting | Mon 25 Nov | Frustrated at Work
Typcially, at my current workplace, management makes quotes for software development without consulting the software developer. This has led to some extremely interesting situations.....people have tried to sue us for being late on software. Nobody seems to have learned the lesson. Just today a quote was finalized and signed by the customer without a developer seeing if the timeline was reasonable for the amount of software changes required. What can I do to change this without jeopardizing my employment.
Mon 25 Nov | burned out PM | As soon as you receive the schedule or timeline or whatever you get, evaluate it for risk and report it, preferably numerically (i.e. 'we have a 30% chance of meeting this timeline given current scope, resource, quality, and budget constraints). In other words, get as many facts and figures onto the table as possible and make them as public as possible. Someone will see those numbers, panic, and hopefully do something about it. This also puts the responsible parties into the position of either explicitly telling you to lie by altering the numbers, or answering some difficult questions.
Mon 25 Nov | Matt H. | 'we have a 30% chance of meeting this timeline given current scope, resource, quality, and budget constraints' It's been my experience that a lot of management will just say 'great, we can do it ...' That is to say, they plan to hit a series of home runs out of the park, without considering that, for the majors, a .300 batting average is pretty good. So, 30% might not do it ... far too many people will simply roll the dice and hope they get lucky. But it's better than nothing ...
Mon 25 Nov | Scot | To a large degree, you can't, although 'Burned out PM' is on the right track: get something in writing as soon as possible. Do the best you can to educate the 'people above you' about the situation. At my former (notice I say former) job, the sales guys would literally just pick numbers: the highest dollar amount they could squeeze out of the client and still get them to sign, and whatever delivery date the client wanted they were promissed. Either you have project managers and Owners who support this mentality or your don't. There has been some good discussion in another thread about questions to ask an employer during the interview process. Some of these may help in finding your next job. By the way, does anyone know of a good forum that lets developers 'vote' on employers as to whether or not they are 'good'? We can't all work at Fog Creek, and employers can lie to our questions at interview time. It would be great to at least help distinguish the good situations from the bad, based on other people's experiences.
Mon 25 Nov | AW | In some companies it is totally intended to give the customer impossible delivery dates. I know two reasons for this: 1. The customer won't buy if he is promised delivery in three years. He will sign if he is promised delivery in half a year. If , after half a year, the customer does not get the full thing, he is promised 'just another 6 weeks' ... and so on. The customer wants to be lied at at first. (It is the same with elections. Usually the party gets voted that promises to reduce taxes ...) 2. A second reason may be to build pressure onto the developers. But in my experience the first reason is much more important.
Mon 25 Nov | burned out PM | AW has the right of it - the deadline pressure is typically there to drive down lead times when negotiating with the client. The general approach is to make unreasonable promises to the client about delivery dates and then build some safety back in later on when negotiating changes with the clients. Since all the folks trying to land the contract are adopting the 'lie now, fix later' approach, you actually place yourself at a serious competitive disadvantage by being honest. Lots of industries do this. Ever wonder why all those constructions projects run so far over schedule and budget? To gain a competitive advantage in a market like this requires a whole lot of work, especially in educating the client - solid information in the key. They need to know why they should choose you even when your quoted lead times are longer than those of your competitor. Tricky situation, for sure. You also need to drive your lead times down as much as possible while preserving your ability to deliver on time reliably - also difficult, but not impossible, to do. If you can pull these two things off, though, you will own your market segment while your competitors scramble to play catch-up.
Mon 25 Nov | Alberto | The key objective for you is to less frustrated at work, the first step is to see the time estimates for what they are. That's not to say that management dont need an accurate picture of the actual timeframe so that they can manage the when and where of the lies they are going to need to tell. I understand the problem though, to tell management that you cant do it on time can cast you in a bad light, even though you are right. Play the game, if they can lie, you dont need to worry too much about agreeing or disagreeing with them, either way.
Mon 25 Nov | Matthew Lock | Over the years I have come to the depressing conclusion that in companies where the managers or sales do the quoting then there's nothing a programmer can do to improve the quoting. There are usually political issues in those companies that will stop any change ever happening.
Mon 25 Nov | Must be a manager | Frustrated, when you're working for morons, you have to learn to treat them as morons. Use your imagination. But get rid of the idea you will be able to reason with them.
Mon 25 Nov | Torment | Unfotunately, that's just sales in any industry. They don't care about the reality of your situation. The reality of their situation is to close the deal, beat the competitor, get the commission, etc. And the more they lie and cheat, the more your company probably takes notice and rewards them. The 'quality' of a sale is only measured by the dollar amount. When the penalty for doing wrong is 10% commission and a full-paid week at some island resort once a year, don't expect you'll be able to change anything.
Mon 25 Nov | Prakash S | In quite a few companies, many projects do not get completed. From the 'looks' of it don't think you can make much of a difference. Do a good job of whatever you are working on, update your resume, and be on the lookout for a new job, 'cos when the project is not done on time, someone has to take the blame, invariably that will be a few consultants and programmers.
Tue 26 Nov | pod | Remember that bad news is always best early. As soon as you get that situation arising, you have to start carrying on really loudly about how you can't meet the deadline. Throw out all those rosy ideals of 'Maybe... if I work 18 hours and sleep under my desk...' Nah - That's just not the way life works. Tell your boss. Tell the boss of your boss. Ask them when you're hiring all the new staff. Make it clear that you live in real life, even though management don't. No amount of delusion will force the software to ship on time.
Tue 26 Nov | Must be a manager | No, no, no, this stuff about 'carrying on really loudly about how you can't meet the deadline, ' and 'Tell your boss' never works when you're dealing with morons. They will just congratulate themselves on how clever they are at fobbing you off and 'encouraging' you to work harder. People like this deal in leverage. Be creative. Find the porn on their hard disks or something.
Tue 26 Nov | HeyMacarana | My guess is management thinks this is how things should be, and that management is responsible for scheduling. While this is partly true, you have to make them understand that while they are indeed responsible for scheduling they should also take into consideration input from the people who will actually do the work (ie. the developers) before finalizing the schedule. Additionally, to help back up your suggestion, give them links to articles on the web, etc. for them to read which promotes involving estimate inputs from developers. By putting it this way, management will still feel they are still important and needed, which is usually the most important thing to most of them; and this probably also applies to everyone and not just management.
Tue 26 Nov | anonQAguy | Many good points here already; I'd only add that if you decide to solicit 'ammunition' to present early on to management, once the irrational deadlines land in your lap, don't forget to hit up members of the team besides just the developers--visual designers, documentation folks, sysadmins, QA folks, etc. If you're going to try to show how big the 'pie' really is to mgmt, you might as well try to get all of it considered. I guess if you're really lucky, these other folks might throw their voices behind you as well (ok, so maybe that's a bit too optimistic, but I guess it could happen someplace, someday). I heartily agree with including these sorts of things in your interview questions for the company as well -- that was a very good point. Sales folks are not inherently evil , but like all of us they will react to their reward structure, so you might want to ask how the sales people are rewarded, e.g. do they get commission based on what was signed, or do they also have some monetary stake in actual delivery? If they are constrained to sell what can actually get built in order to get their all their compensation, that can correct a lot of this sort of thing. Not all places work this way, though.
Tue 26 Nov | Prakash S | anonQAguy: this is why Joel says: http://www.joelonsoftware.com/articles/fog0000000070.html
Tue 26 Nov | Ralph Chaléon | I heard once : - In a company ruled by salesmen, every project fails and the turnover is high because teams are demotivated by unrealistics schedules. - In a company ruled by PMs, you can't sell a project because potential customer are scared with risk lists longer than the arm. Maybe the two worlds should match one day. I once worked for a big french car constructor. Every single hired employee spends one month building cars on an assembly line and one month selling cars for a dealer. I think it's great, because you understand much better what the business is about. We all tend to stay in Plato's cave when considering other people's work. Then it's really easy to say : - Salesmen only see numbers. - Managers are morons. - Users are dumber who don't care about the tools we make for them. Maybe the world is not that simple. Maybe we should all spend 2 month in a sales departement making phone calls all day long.
Tue 26 Nov | jb | I have met one or two sales people who have been really good, both at their job, and who actually understand the realities of what they are promising or selling. However, that does seem rare. The problem is that you don't need any quantifiable skills to be a salesman so it's the place where people with no skills at all often end up. This probably irritates the good salesmen as much as the rest of us...
Tue 26 Nov | Must be a manager | Monsieur Chaléon, it's certainly true that it's good for staff to experience different roles. The problem we are discussing arises because the salesmen have never experienced development roles.
Tue 26 Nov | Matt H. | Frustrated: You might want to read 'Death March' by Yourdon. It's got a few interesting points. Take it with a grain of salt, but some things in it might help.
Tue 26 Nov | Ralph Chaléon | 'Never ask someone to keep the secret about what you told him. Because you can't expect him to do what you just didn't'. If we're the smart people and they are the 'sometimes good but easily not', we have to show it with our work but also with a better understanding of how it fitts in a whole (in which sales, I'm afraid, has a VERY large part). Don't believe I don't have my own proplems with salesmen, we all have. But I think they all can be solved by understanding each others point of view.
Tue 26 Nov | Norrick | What can you do to CHANGE this? Probably nothing. What can you do in RESPONSE to it? Quite a bit. If people are going to be making unrealistic commitments on your behalf, the least you can do is prevent them from living in a state of delusion about what they're doing to you. I suggest you do what Joel described in his Painless Software Schedule articles - you make your own estimate and post it in a very public place alongside the manager/salesman's estimate, updating it weekly. Let everyone see who's numbers stack up to reality.
Need a better UI for master/detail tables | Sun 24 Nov | Marty Potokar
Reference two tables named Contractor and Trade where Contractor denotes a one-to-many to Trade. The Contractor table contains a number of fields like ContractorID, Company_Name, Address, City, State, Phone, etc.., whereas the detail table Trade has only three fields or ContractorID, Division, and Section, and contains a maximum of one to three detail records for each record in the Contractor table. The main form for the Contractor table consists of a grid (read only) used for viewing and selecting records in the Contractor table, and allows the end user to add/edit records via a popup entry form. While I could easily add another grid to show the detail record/s for each Contractor record in the main form or, for that matter, use a page control with tabs (one for Contractor and one for Trade) to show the same relationship, Id prefer something better to present this data to the end user. Ive also thought about using one form grid based upon the Trade table using lookup fields to show a many-to-one relationship for the Contractor table but then I can no longer sort on the Contractor name field which is a lookup field in the Trade table. Any suggestions as to an alternative UI to better show this particular relationship while allowing the end user to add/edit records for each table is appreciated.
Mon 25 Nov | Baz | sketch some alternatives out, show them to the (potential) users. describe what is happening to the users, but DO NOT use the words 'master', 'detail' or 'table'. because the best UI depends upon who it is for. a part-time receptionist, a techie or a 'time-is-money' executive? and once you've decided on the best UI for the target audience, build it - you mention being unable to sort on lookup fields. well, buy another grid control. or write one. or decide that sorting on that field isn't worth the effort. but don't choose the ui based on the tools available, choose the tools based on the ui required. unless it's just an app for yourself. in which case, do what you want!
Mon 25 Nov | Alberto | don't sweat the small stuff.
Mon 25 Nov | Simon Lucy | The first question is the purpose of the form, and whether you actually have two Use Cases. Show all Contractors of a particular Trade Show all Trades of a particular Contractor There are the other Use Cases of Create/Edit/Delete but for your question you need to decide which is the true case, and if both are required you really have two different forms.
Mon 25 Nov | Albert D. Kallal | Here is what I use on occasion. I place a list box (or whatever you use for the grid on the left side of the screen). When you move through the data, then you have a another grid/listbox or what ever you use also on the right side of the screen. That way, the user can easily scroll with the arrows keys up down, and NOT have to 'click' to open another screen. Here is an example screens shot: http://www.attcanada.net/~kallal.msn/test/gs1.gif If I move up a few times with the arrow key, you get: http://www.attcanada.net/~kallal.msn/test/gs2.gif On the left is actually a listbox control. However, on right, I needed the list to be editable, and also to display a check box. Hence, I used a continuous form (if you lucky to have those!). You can do the above by using two of your favorite grid controls. Albert D. Kallal Edmonton, Alberta Canada kallal@msn.com
Mon 25 Nov | CharlesC | I do the same as Albert but top/bottom instead of left/right. Master list at top, details at bottom. Use a freeform style instead of grid for the detail. This gives more room for the detail data and help differentiate between the two types of data being displayed on the screen.
Mon 25 Nov | Tim Sullivan | Here's a small screenshot from an upcoming release. The master record is at the top, and when you press the + beside it, you get the child records. In theory you can go as deep as you'd like, but more than one level and it just gets confusing. http://www.uil.net/images/masterdetail.jpg
Tue 26 Nov | Marty Potokar | Thanks to all, especially Albert and Tim for the screen shots. Also, valid point made that the UI dictates the tools. Fortunately, I have the tools to simulate the screen shots and a third party control that I've been toying with that emulates Tim's. Didn't really consider or think about the side to side grid layout that Albert uses. Needless to say, different and much better as opposed to the customary top/bottom grid that most all demos use. I only wish that there was more of this out there for database programmers like myself who have to go it alone. Thanks again for the help.
Tue 26 Nov | Albert D. Kallal | I will also add that the whole process of doing a search, and viewing the results can be EASILY done via the keyboard. The those above screen shots, the text typed was pr, and if there was NO matches, then the cursor stays in the search box. If there is a match, then I move the focus to the list on the left side. The user can then use up/down arrow keys to move (and view details that show on the right side). Note that if the user hits enter, then that customer record/form is displayed. Of course inside each customer is the details. However, the user can also hit the tab key, and the cursor moves from the left side list to the right side. At that point again the up/down arrow keys will move, and again enter will bring up the detail record. What this means is the whole process of a search, and a browse via the arrow keys can be done, and both the customer main record, or the detail record can easily be brought up. Again, NO mouse is required. (of course use the mouse to click on, or select a record on either side of the screen does work). Also, of course a double click on either side will bring up the record in form view. I think it is very important to make these types of tasks very fluid, and not have to switch between keyboard and mouse to select a record. The whole process from start (the search) to finish (selection of record) should be nice simple keyboard sequence, and not some dance between the mouse and the keyboard.. Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
C++ Builder - any good? | Fri 22 Nov | Mike Grace
Hi, I have come from a predominantely xbase background and I have used dbase recently. Because of the Borland origins dbases IDE is very similar to C++ builders. It seems that I can hit the ground running and convert my stuff to C++ with some ease. What are other peoples opinions of C++ builder?
Mon 25 Nov | Baz | Delphi isn't better than Access for small projects. I always think of Delphi sitting between VB6 and C++: you can start with the nice easy drag/drop data-bound stuff like VB6, but you can move all the way to massively layered OO systems which spit on data-aware controls. Of course, this is exactly where J++ and now C# are aimed. With Access, I've never seen a large project which doesn't look like a maintenance nightmare. With VB6 I always felt that I would run up against a brick wall soon. With VC++ I never knew where to start.
Mon 25 Nov | Javier Jarava | ---- Perhaps I am mistaken, and maybe Delphi is a product that leans more towards data centric applications then a products like VB. I am still open to the fact that Delphi may be several orders of magnitudes better then VB, but I have not seen any evidence of this fact. If this is the case, then so be it, but I sure do not see this right now. ----- I think the main point, the main difference, between ms-access and Delphi is that in Access you're limited in the 'size' (scope) of the projects you can realistically aim to. Only 100% 'data-aware', small projects can fly with Access. For that kind of apps, yes, access flies. You have a quick way of setinng your data model and then building around it. Of course, _if_ the app has to do something more than basic data processing, you're out of luck. OR if you need to access a DB system that is bigger / more powerful than Access. I see the difference as one between Word and a DTP system. Word lets you do quite a lot of things, writing-related, very quicly and conveniently. You can even strech its abilities and get quite professional-looking docs with it. But if what you want is to be able to produce _any_ kind of document, with the required finish and bells & wishtles, then a product like Quark / InDesign is a must. Of course, using Quark to write a memo is quite overkill. And using Word to typeset a book is, if possible, a sure way of asking for trouble. So, if you only need a very defined set of data manipulation, and it's within the 'target market' of MS - Access, then that's easier, quicker, more convenient. Of course, if the app then grows and scales (as most in-house app end up doing, in my experience, until they resemble the original app in very little), then you'll end up hitting the limits of Access sooner or later. Delphi, on the other hand, gives you a full fledged programming eviroment, with a world-class OOP language, and a _wonderfull_ class libraries (VCL and CLX for x-platform development). The data-aware controls and classes are very easy to use, and save you tons and tons of work (it's easier do to most DB-related things with them than with VB, IMHO); maybe not as dead-simple as in access, but the power to be able to do much more has a price, albeit a tiny one, IMO. And, of course, with Delphi you can extend your app at a later time, to add 'little' things as web-awareness, Web Services, client /server protocols, etc etc... And 'porting' to different DBs is made quite easy because of the data manipulation layer, so you can code your app in a way that's not tied to a particular DB. But of course, the only person that knows if the trade-offs are woth it is you. I tend to believe it's worth a little more power, but then that's me :) (Besides, I tend to think that working with Buidler / Delphi is great, but then that's my own bias :) my 0,00002
Mon 25 Nov | Giorgio Pallocca | 'What are other peoples opinions of C++ builder ?' I'm currently using C++ Builder and I think is simply the best tool that I have ever used under Windows. You gain: Power of C++ (OO,fast) Very RAD enviroment (Visual Basic level) The elegance of Borland Libraries With Kylyx you can probably (never tried myself) run your project under Linux. just my two cents P.S. Sorry for my poor english
Tue 26 Nov | Mike Grace | Thank you all for your input. Will C++ builder be available for Linux and the MAC?
Tue 26 Nov | Frederik Slijkerman | It's already available for Linux, see http://www.borland.com/kylix . It's doubtful there will ever be a Mac version, although I'd sure love to see one.
Tue 26 Nov | Andrey | Hi all, ================== Is Delphi really a better and more data centric IDE then is VB? ================== I agree that ms-access is sometimes more apropriate dev tool for small DB-centric applications over Delphi , but not VB. In Delphi besides being trully OO development tool, DB-aware controls actually works, so you can quickly drag-n-drop simple applications. Then it has variety of built-in report generators (QuickReports and Rave included in the box + much more on the web) and variety of database engines. This is just for simple applications. Then in high-end versions of Delphi 7 (Enterprise and Architect) you can find UML case tools, from which it is possible to genereate complete application from UML specs.
Similar websites as JoelOnSoftware | Thu 21 Nov | Hakon
What other websites about software development do you visit regular and could recommend to me? I think that this website JoelOnSoftware is great - but there must be some other great websites worth visiting that I am missing. Hakon www.SoftwareQuotes.com Quotations from the World of Programming
Mon 25 Nov | programmer | See 'people who visit this site also visit': http://www.alexa.com/data/details?url=www.joelonsoftware.com
Mon 25 Nov | dunno wair | <> Hmmmm... Anna Kournikova Naked Pictures In Penthouse Nude Photos That wasn't ME, honest! Better check it out when I get home, though...
Tue 26 Nov | . | www.stickyminds.com
bait and switch: what would you do? | Thu 21 Nov | whatToDo
Hi, 6 weeks ago I got hired for a project where I was to build a cool statistical mapping/graphing application for some people in an R&D department. My background is more in standard enterprise data management apps, and the main reason I took this job, is because I am trying to move away from enterprise data management apps, into scientific research applications. (please no comments about the financial foolishness of this plan ;-)) Anyway, my interviewers mentioned that I would also need to help out on another app, which is a pretty typical enterprise data management app. 6 weeks into the job, I am ONLY doing work on the data management app, which has no end in sight. I pointed out a number of problems with their original design, and proposed some changes that I thought would work better. Big mistake! Now Im the lead on this thing I dont really want to do. In fact, they are now doing an employee search for someone to work on the charting app that I thought I was being hired for! Now, the main reason I took this particular job is because I want to get into cool scientific visualization type work, maybe even go to grad school. I didnt want to work on yet another data management style app. However, the second more important reason I took this job is because I needed a job! Im happy to be employed, but not particularly happy that Im working on this particular project, especially when I thought I would be working on something else. I sort of want to chime in and say that I thought Id be working on something else, and dont particularly like this project...however I dont want to get sacked! Any job is better than no job! (maybe) I now know that this project is much more important to the organization than the graphing app. My contract is for a year. What would you folks do? chin up, tough it out for a year? mention that I want to be working on something else? neither? something else? any input would be nice. im also starting another related thread in this forum...
Mon 25 Nov | Need2Know | so Bella, what do you do now?
Mon 25 Nov | Alberto | Don't listen to them Bella, they're all fat motherfuckers with angry wives.
Mon 25 Nov | Norrick | That actually happened to me at my last job. I just lined up a new job and left. I'd start interviewing if I were you. Voting with your feet is the best way to get what you want.
Mon 25 Nov | Bella | Norrick, that is not the advice people want to hear. Only compliment people, say naive/optimistic things, and how he got a raw deal. Never suggest taking responsilibity for your situation, or doing anything proactive to rectify it. Rather, suggest blaming others, and not reallly doing anything about it. That is sure to get you more support that the advice you originally gave., (Bella deserves no respect. We've heard things like 'if you don't like your job just leave' for too long.)
Mon 25 Nov | whatToDo | 'PS: Have you not developed ANY business acumen since being laid off, and having had ages to reflect? Do you have to ask why they would assign you to this project, when you yourself said it is more critical? On second thought, you may deserve to be fired. Bella' how is this a useful comment? how's the divorce? found a new job as a commercial fisherman, or whatever you are doing now? anyway, I talked to my boss. The people advising me to sue were a bit overboard. i usually get jobs from friends, through friends, and litigation would effectively destroy my network. the situation is that they basically don't really have anyone competent to do this stuff, and they really need my help on this enterprise thing. so, i'm going to help them out, and hopefully work on the fun stuff after the first of the year.
Tue 26 Nov | Just me (Sir to you) | If they do not have anyone competent, then why weren't they hiring for this. Instead, they put out the nice job description that lured you in. They might not have done this on purpose, but that is the present day reality. As it stands, they are still not hiring for the job you are doing now. Instead, they are putting out a job description for the fun stuff again ... What makes you think your situation will change? Or do you believe that they are now trying to 'bait and switch' the next sucker to come along, and you will be fine ...
Tue 26 Nov | whatToDo | Actually they are hiring two more developers. The job descriptions are sort of 'programmer at large.' I'm involved with the hiring process for any further developers, and I will essentially now be managing both projects, so things will work out OK. There are other reasons to stick with the job, such as very flexible hours (I can attend night school, something I've never had time to do in the past), and it looks good on a resume for the field I want to get into. So, it still isn't ideal, but it should be OK for the time being. Thanks everyone for the advice.
MultiThreading | Thu 21 Nov | MRC
hi , i started learning about multithreading(using java) last week and found it very interesting. just want to know ur thoughts on multithreading and any good references.it appeared to me like ,multithreaing can only be exploited with multiple processor CPUs. regards mrc
Mon 25 Nov | Raist3d | Can anybody recommend a good book on threading issues in general? Particularly with C++ and a Windows programming environment? I also have to agree with the comment of 'the less thread you end up using the better' as a rule of thumb. Or at least from my limited experience using threads in Java. Basically yes, threads can be nice but don't go thread happy. - Raist
Mon 25 Nov | Chris Tavares | Here's the book I learned win32 threading on: http://www.amazon.com/exec/obidos/tg/detail/-/0201442345/ref=pd_sim_books_1/002-9993785-2739234?v=glance&s=books Excellent discussion of the issues involved, and spends a good deal of time with MFC, which was important at the time. O'Reilly also had a book on threading on Win32, but it's listed as out of print. I haven't read it, but I know one of the authors (Mike Woodring) and he really knows his stuff.
Tue 26 Nov | Raist3d | Thank you very much Chris! I'll definitively check it out.
Tue 26 Nov | Andrew Simmons | I've always found 'Principles of Concurrent and Distributed Programming' by Ben-Ari very useful for fundamental concepts - I don't know if it's still in print. Also the following papers: Dijkstra, 'Cooperating sequential processes' Hoare 'Monitors' and 'Communicating sequential processes'. The one by Dijkstra is online at: http://www.cs.utexas.edu/users/EWD/ewd01xx/EWD123.PDF There are at least two implementations of Hoare's CSP in Java: http://www.cs.ukc.ac.uk/projects/ofa/jcsp/ http://www.rt.el.utwente.nl/javapp/
The Goal and Critial Chain | Wed 20 Nov | Anonymous Jonah
Both books mentioned in Joels most recent posting are worth reading (and re-reading). Both also afford some insights applicable to software development. As Joel notes, _Critical Chain_ is a worthwhile read even if only for the discussion of schedule padding and buffer management. An equally important take-away, though, is the idea of protecting your contraint resources. Your best option for protecting your commitments is to identify and protect the things that your commitments are most sensitive to. _The Goal_ isnt as obviously applicable to software development, but theres good information in there if you look hard enough. The important idea is a focus on throughput and the things that constrain it. If you are designing tiered systems that need to scale you will learn that no matter how hard you optimize, if you dont focus on your bottleneck, you wont have a positive impact. In fact, you can actually degrade performance by being naive in your optimizations. Constraint management also provides some insight into how to manage traditional waterfall-like development processes. If your developers are the bottleneck, you need to do whatever you can to relieve them, so offload the testing, for instance. If, however, your testers are your constraint, then your developers should give some of their excess capacity to the testers by doing more careful pre-screening of their work.
Tue 26 Nov | Reginald Braithwaite-Lee | 'The Goal' really provoked me into rethinking a lot of my beliefs about software projects. Basically, I started to read the book with the idea that I'd learn about the Theory of Constraints, and then 'Critical Chain' would tell me something about Project Management. I pretty much flipped the 'bozo bit' on the idea that I could learn much about software development from a factory. But now, having read the book... I'm intrigued. Up to now, I've always said that software development isn't like manufacturing, and that's why manufacturing methodologies don't work for softwre development. And for proof, I've pointed out how projects based on a simplistic manufacturing model fail. But the premise of the book is that factories built on a simplistic manufacturing model also fail. What if the problem is with the model and not with the applicability? So now I wonder... for example, what if software development projects have Inventory? How much is Intellectual Property (like designs, requirements, and code) like inventory of Work-In-Progress? What if 100% utilization of people to produce IP is actually counterproductive to software development? Like I said, I am fundamentally disturbed by this book. In a good way. -- Reginald Braithwaite-Lee http://www.braithwaite-lee.com/ Programmed. In me somewhere, he thought, there is a matrix fitted in place, a grid screen that cuts me off from certain thoughts, certain actions. And forces me into others. I am not free. I never was, but now I know that; that makes it different. --Philip K. Dick, 'The Electric Ant'
N-Tiered Solutions/In-Memory Databases | Thu 07 Nov | beach bum
Folks, I was wondering if anyone here has produced n-tiered solutions which utilized an in-memory database? The product we are developing has reached critical mass. We have a calculation engine which makes use of a cache mechansim we built in-house. As the product requirements have expanded, this particular cache needs to become more sophisticated. At the moment I am analzying the feasibility of implementing sophisticated indexing algormithms versus commercial tools on the market. In theory, these products sound great and I could see many applicable uses for them. However, we have all been bitten by black box solutions at one time or another. So, in summary, I would appreciate any input, both positive or negative based on your experiences using any in-memory database technology.
Tue 26 Nov | Rover Still | > Relational databases are lousy at storing *some* complex data structures. This is not true. Relational database handles complex data structures much more gracefully than any other model. The value of relational database is 'relation'. A common mistake in understanding a relational model is to think they are 'rows and columns'. They are not. For example, a tree can be modeled as a single table: create table tree ( child char(16), parent char(16), value char(128) ) A sample tree: child parent value ------ ---------- ------------- boss NULL company villa manager boss company car programer1 manager new mouse pad programer2 manager nothing manipulate this tree is much easier in SQL than in, say, Java A general graph can be modeled with two tables: create table node ( node char(12), value float ) create table edge ( node1 char(12), node2 char(12) )
IE6 and the <APPLET> tag. | Mon 25 Nov | A bad day
I am having some problems with IE6 and the applet tag... IE tries to download the JVM and then tells me that it cannot install it because its kind of a protected software component. All works fine w/ Mozilla etc. This is really a bad thing, removing the JVM from IE... Of course, the CLR is now in...
Mon 25 Nov | . | A link would have helped.
Mon 25 Nov | Stephen Jones | Are you sure that the problem is not that when you are logged on to the corporate LAN you do not have install rights. I have this problem at work. Anybody know if I can download the equivvalent of a network install like I can for XP Service pack 1 (or is it included in that?)
Mon 25 Nov | Ron E. | Are you using XP? I think this was because of the lawsuit between Sun and MS. Since they've settled it, I believe that you can get the jvm via an MS service pack. Try poking around the ms site.
Mon 25 Nov | Stephen Jones | XP came without a Java virtual machine because MS decided to play Yaboo! with Sun in retaliation over the lawsuit. You can download it easy enough but the problem is that at work to get on to the Internet I have to be logged on to the LAN, and if I'm logged on to the LAN I'm not allowed to install anything so I get the failure message. I was looking for the separate corporate install but it doesn't seem to be there. Maybe it's on the XP sevice pack. I'll try and download the service pack after work, it's 124 MB I think, so it'll use up rather a lot of bandwidth!
Mon 25 Nov | mb | the last thing I saw was that it (the 'microsoft' vm) was going to ship on the CD-ROM version of XP SP1, but NOT the downloadable version. some sort of pissing match having to do with if the thing was pre-installed on your machine you could update it online, but not otherwise, but running a cd would install it. or if you upgraded (not re-installed) from a previous version of windows you could download an update. Alternatives are to get a JVM from Sun or BEA or elsewhere, or to find a pirated version of the Microsoft VM or mabye SP1 CD-ROM on the net. (Absurd to pirate free software, isn't it.) Of course this doesn't help if you're trying to write web pages for the masses. Nor does the absence of the EMBED tag. You'll have to use OBJECT if you need these features.
Taifoon Ware | Mon 25 Nov | Peter Kupferschmied
Hi! What do you think about http://www.taifoon.ch.vu ?
Mon 25 Nov | notInterested | Bad English, immature web design, naive product selection. Seeing as how you are still very young, I would suggest you work on your skills before making them public. For the web design part, get some guidance on how to use colour, lay-out and structure. For product selection, figure out why you want to do a calculator when most people already have a good one, either a physical device, or on their Windows PC. In other words, why do you think yours is more valuable and emphasise that, or think of something more useful if you can't. It is also considered good manners to explain yourself before you use someone elses forum for personal gain.
Mon 25 Nov | Annoyed | Well, I couldn't see the site because of all the freaking popup windows.
Painless Software Schedules: What kind of reports? | Sun 24 Nov | Tim Sullivan
Some of you may remember that I wrote a software package for handling painless software schedules (it was by request only, so dont look for it online! :-) ). Well, Im in the process of finishing up a major update to it, and want to know what sorts of information you would want from something like this. Im open to report suggestions, so be as fantasy as you want. All serious requests will be considered. Just to let you know the basics, this is a multi-user project/feature/task tracking system based heavily on Joels Painless Software Schedules article. Its a revision of a tool I use internally with great success. In my company, we didnt need reports, really. So Im curious what people are interested in knowing. Thanks in advance.
Mon 25 Nov | Alberto | Bottlenecks. That's what I want to see.
Mon 25 Nov | Tim Sullivan | So, places where the original estimate was nowhere near the actual time? Top 10? Top 10%? Anything over 50% larger than expected?
speaking of leaky.. | Fri 22 Nov | Nate
that article on leaky abstractions got me thinking about a long time dislike ive harbored against virtual memory. it seems to me that virtual memory is too leaky, for the benefits it provides. by the time youre using it, your applications are running so poorly you might as well cry. it also makes additional disk traffic, which is bad for power consumption. it seems to me that the primary reason that people use virtual memory is that theyre worried about the can of worms that might be opened up if we subjected processes to out of memory errors again. (like the mac of the mid nineties did) consider that virtual memory doesnt provide applications limitless memory, it just assures that they run slowly enough that theyll never reach that limit. if so, VM is nothing more than a disguised doomsday device. so if VM doesnt actually do what were keeping it around for, why not jettison it? screw page files. blech agree? disagree? dont care?
Mon 25 Nov | Omar Kilani | Re: Linux VM [root@psyche root]# cat test.c #include #include int main(int argc, char **argv) { char *x; size_t y = 800 * 1024 * 1024; printf('allocating %u bytes\n', y); x = malloc(y); if (x == NULL) { printf('Oh no, I ran out of VM!\n'); } return 0; } [root@psyche root]# echo 0 > /proc/sys/vm/overcommit_memory [root@psyche root]# ./test allocating 838860800 bytes Oh no, I ran out of VM! [root@psyche root]# echo 1 > /proc/sys/vm/overcommit_memory [root@psyche root]# ./test allocating 838860800 bytes Just FYI.
Mon 25 Nov | Jason McCullough | You will get this book, and then you will understand the point of VM. Basically, your complaint is that if a program's working set is larger than total userspace memory, VM is pointless. This is entirely accurate, but misses the point: VM isn't a solution to memory management for a single program; it's a solution to memory management for multiple programs.
Mon 25 Nov | 640 should be enough | How about some wires from the client to your brain, that way we can utilise some of the 90% of our brain box that we don't use - i.e virtual memory.
How many gas stations in USA? | Fri 22 Nov | Kenneth Branch
I know questions like how many gas stations are there in USA are asked in interviews, but I have no clue on how to arrive at an answer, or even to show thought processes. Heck, I have no idea how many cities there are in the USA, how many of them have gas stations, or even whether there the number of gas stations in a given area remains constant throughout the country (I bet it doesnt.) So how on earth am I supposed to arrive at anything close to meaningful? And what do such nonsensical questions help prove in the first place? Shouldnt the ability to do your job matter more than thinking outside the box or whatever its called?
Mon 25 Nov | Feynman fan | What would Richard Feynman say when asked 'why are manholes round?' at an MS interview? http://www.sellsbrothers.com/fun/msiview/#Feynman Absolutely hilarious!
The best of two goodies... | Wed 20 Nov | Guyon
Hi all, just want to let you guys know that i recently started exploring a combination which turns out to be a killer-combo Delphi & Python I really love both languages and combining them is just great and very easy to accomplish. Python has some nice GUI-toolkits but they fade away compared to the perfect Delphi IDE. I can now use Delphi to build a robust GUI and design a complete class-framework in Python in no-time. It only requires 1 extra DLL-file for distribution. Thats it. Really, I reccomend it very much and am still really excited about its possibilities. check it out: http://membres.lycos.fr/marat/delphi/python.htm http://www.atug.com/andypatterns/pythonDelphiTalk.htm Do you guys&girls have any experience with these kind of combinations?
Mon 25 Nov | Raúl | Has anybody tried to combine VB GUI's with python?
Mon 25 Nov | Hemanth P.S. | Take a look at Mark Hammond's 'Python programming for Win32' book. You will find financial applications there using VB for the GUI and Python for all the application logic. He has also developed the win32 packages for Python that allow you to interact with any COM objects and you can manipulate any Excel or Word document through Python. Activestate's Python installation comes with all these packages by default and also with a nice Python IDE. Check out www.activestate.com .
Mon 25 Nov | Raúl | Great answer!!! Thank you very much, Hemanth!!! :-)
Very OLD translations | Tue 19 Nov | Deluding Yourself
I have noticed that most of your translations are months and months old, most of them only have one of two articles spanning a couple of years. Seem like you have a presence in other languages but no real substance. Why do you think its important to have extremely old articles in a bunch of foreign languages?
Mon 25 Nov | Deluding Yorself | Patrik 'You obviously find nitpicking very worthwhile.' Sometimes, but not in this case. 'As you obviously has nothing more to contribute than to bitch about typos I suggest you find the site where the anal retentitive English majors hang out and go talk to them.' You have a very liberal interpretation of what constitutes a typo. Actually, I majored in Politics, but never mind, their are plenty of anal retentive political types too, and I do 'hang out' with them sometimes. I was interested in the discussion about the inappropriately designed translation links, and one thing led to another I think. I really pissed myself when I read that the author of this blog has written a book about UI design!
Mon 25 Nov | Patrik | Deluding Yourself, >You have a very liberal interpretation of what constitutes >a typo. Reread your post, and be thankful I do have a liberal interpretation of what constitues a typo. >I was interested in the discussionabout the >inappropriately designed translation links. Yes, and we are in agreement on that, they take up too much space. I would prefer a Single 'Translations'-link, that would go to another page where the different languages were. >I really pissed myself when I read that the author of this >blog has written a book about UI design! I have read the book in question, and it does its job. However it is aimed at tech-people, and takes your understanding to a level where you do not do the basic design misstakes. My more seasoned professional designer friends found nothing new in the book. This may sound strange, that Joel would make such an 'easy' design misstake, but he may have other motives than usability considerations for his design.
Mon 25 Nov | Patrik | Deluding Yourself, PS. And please do us the favour of telling us which language your mysterious X is, so the site can improve. I think we can agree on the fact that criticism along the lines of 'This translation of X sucks you know', is not very constructive.
Mon 25 Nov | Martha | For at least one of the languages, the translators know that there are problems with the current translations, but rather than taking down the flawed-but-better-than-nothing articles, they are working on the new and improved version(s) behind the scenes. (And I do mean 'they'; there's a mailing list and lots of collaboration involved.) I don't know whether all the languages do something like this, but even if it's just one person for your mysterious Language X, he/she can't possibly improve his/her translations if you don't reveal the language in question. Griping might feel satisfying, but in the long run, constructive criticism will have better results.
Mon 25 Nov | Deluding Yourself | Enough said already I think, It's enough to know that other people realise that the design is bad, and it's something that I won't do. If you look at my original post the question I posed was: 'Why do you think it's important to have extremely old articles in a bunch of foreign languages?' I thought that a reason may have existed, that was all I really wanted to know.
The Ultimate IQ Test | Wed 13 Nov | Prakash S
http://www.emode.com/tests/uiq/ Check this out, and what it says. Its free, its private and its developed by PhDs. Dont miss out! Get your 15-page, scientifically valid report at the end of the test. Good luck! PhDs .... hehehehehehehe
Mon 25 Nov | sulf | 133. facts curator coconut because it's hard while the othes are soft, :)