last updated:07 Jul 2004 09:34 UK time
Joel On Software Discussion Forum
JOS Statistics - Recent Comments
(Comments added for week ending Sun 04 Jul 2004) | View Other Weeks
Suddenly Unicode became vital | Sun 04 Jul | RP
http://www.nytimes.com/2004/07/04/magazine/04CHINA.html?pagewanted=all&position= This piece on the NY Times scared the hell out of me. Basically it states that the size of the chinese economy is so big that its dwarfing all other economies in the world. Although the writer tries to sooth the impact, the bottom line is, the chinese do what we do, almost as good and in number way bigger than ours. By we I mean the West. Now, suddenly it hit me. If youre going to write software, your biggest customers will soon be chinese companies. Is your software prepared for it? Have you implemented any and all measures you could to make sure chinese users can use their natural language on your application?
Sun 04 Jul | Mr. O | Unicode's always been vital... or have you always just ignored the Japanese, Taiwanese, and Korean markets?
Sun 04 Jul | Ron | 'the size of the chinese economy is so big that it's dwarfing all other economies in the world' It doesn't say that at all. It does say China's GDP is only a tenth of the U.S.'s, though.
Sun 04 Jul | Dewd | And even Unicode isn't enough to represent all their characters/symbols. But, use the browser, luke. :-)
Sun 04 Jul | son of parnas | And you are assuming they will pay for your software.
Sun 04 Jul | M.U. | I've been doing Unicode for years. I didn't want to ignore my (potential) users in what must be the world's wimpier economies, like Japan, Europe, and the Middle East. Oh, and Americans who need to deal with text from any of these countries. Then again, my copy of 'Unicode' is 3.0, 4 years old. (It's the one that used only 16 bits.) So if I have to release in a language that's not in the BMP, that might take a little work. No Linear-B localization this year, sorry... I really don't know what the deal with Unicode is. As long as you take a little care to pick libraries that support Unicode, and don't assume that char=byte, there's really nothing you need to do.
Sun 04 Jul | no name | I wouldn't worry about it, the Chinese will favor local software over foriegn product regardless of technical merit anyway.
Sun 04 Jul | Rick Magellan | > your biggest customers will soon be chinese companies I am sorry did you say biggest PAYING customers? > Is your software prepared for it? Hell no! > Have you implemented any and all measures you could to make sure chinese users can use their natural language on your application Nope, I really don't give a shit about their market at all.
Sun 04 Jul | Mr. Analogy | IT'S THE MARKETING STUPID It's one thing to have a Chinese version of your software. It's quite another thing to actually MARKET it in China. You'll need someone in China to market it. That's been the biggest challenge we've had with non-US versions of our software. Translating the software into Spanish was relatively easy. However, we've sold very little because we don't have a good way to market in spanish speaking countries.
Sun 04 Jul | karthik | > You are absolutely right. They wont. ! Anyone who thinks they can make money of the Chinese government can also con the greedy emperor Midas into parting with his gold. Microsoft has had a tremedous problem making an impact on the Chinese market. No one is willing to pay and the courts look the other way when Microsoft complains.
Sun 04 Jul | karthik | Mr. Anology, In China its not the marketing that counts. Main problem is piracy. They simply wont pay and thats the experience of most multinationals.
Sun 04 Jul | Matthew Lock | > I didn't want to ignore my (potential) users in what must be > the world's wimpier economies, like Japan, Europe, and the > Middle East. Isn't Japan like the second biggest economy in the world? Hardly wimpy.
Sun 04 Jul | M.U. | ...
RegisterRawInputDevices help needed | Sun 04 Jul | Code Monkey
How can I register for raw input and receive WM_INPUT messages on a background window? I filled out the appropriate field in RAWINPUTDEVICE (mouse[0].hwndTarget = this->m_hWnd;) before registration. The window receives WM_INPUT messages when in focus but not in background. Google search did not give any useful information on this topic. Your help is appreciated.
Sun 04 Jul | Mr. O | If a window is in the background, it does not receive WM_INPUT messages. You have to use DirectInput and set to exclusive mode.
Sun 04 Jul | Code Monkey | Microsoft states: "An application can receive data when it is in the foreground and when it is in the background."
Sun 04 Jul | Code Monkey | Forgot to add the link: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/RawInput/AboutRawInput.asp
Sun 04 Jul | . | And your dwFlags include RIDEV_INPUTSINK?
Sun 04 Jul | Dave B. | Applications may receive non-user interface input related data while in the background. A mouse run through it's windows driver does not qualify as non-user interface input but a process or thread running in the background receiving data from a serial port, for instance, would work. If you really need mouse data sent to a background window you may need to obtain that data via the ps/2 or serial port (if could even do that). Windows thinks the mouse is being used on the active window and doesn't send messages to background windows save perhaps the desktop window. It makes sense if you think about two 'pencil drawing' applications' each with their own window overlapped on the desktop. Dragging the mouse inside the foreground window leaves a line where the mouse has been dragged. Now if the user were to drag outside the first window over the background window you wouldn't expect the pen to continue drawing. Instead you want to activate the background window with a click thus telling windows to send messages to to it. I may be totally off on this, but it's the best explaination I can come up with.
Sun 04 Jul | Dave B. | nm.. the INPUTSINK flag would seem to do the trick.
Sun 04 Jul | Blank | I'm sure you're aware that this is only available on XP and .NET server.
Sun 04 Jul | Dave B. | So how does that work anyway? During the background applications' time slice windows simply sends the data to the application via the WM_INPUT message even though it doesn't have the focus? It seems you could do some pretty crazy stuff like that.
Sun 04 Jul | Code Monkey | Thank you guys. RIDEV_INPUTSINK did the trick. As a side effect I realized again how useful this forum is.
Wanted to add to project library, manager refused | Sun 04 Jul | Frustrated
Theres a function we call all the time (yes this is C programming), and sometimes we have to build up a parameter from two others. So I suggested why not create a new version of this function that would take TWO parameters and handle that. So we have the fuss in one place instead of dozens. Manager looked at me like I was a talking goldfish and turned me down cold. Thats why Im frustrated this week.
Sun 04 Jul | name withheld to protect the "innocent" | The local thinking is to do everything fast, without much thinking on how we do things and how to improve them. Every suggestion for improvement, however small, is required to go through a full design, design review meeting, adding to the gantt charts, it can take a week to get such a small thing done, assuming they will ever get to it. It's the same process if it's an improvement to the build process, refactoring the code a bit or doing a GUI change. They are all treated the same. The solution to this madness is to simply do things without asking, at worst, you could be asked to revert the changes. Most of the time, no-one will notice the change and your work will be more streamlined. You do need to make sure that your changes are not affecting anything critical, it would be unwise to do such changes a day before a version release.
Sun 04 Jul | Frustrated | Our shop has no 'process'. We do things and then when the programmer thinks it's done, we ship to the customer. No, the manager just can't imagine spending even a minute on code that doesn't go out the door. Even preparing files of test data and scripts to run them get me funny looks. The boss wants everything done manually and non-repeatably.
Sun 04 Jul | name withheld to protect the "innocent" | Then it's similar to my workplace, except they wrap the no decision with a 'process' to wear you down. As I said, instead of reading another thread on JoS, I'll simply do some improvement I wanted to make my life easier.
Sun 04 Jul | Frustrated | I wish I'd just added the damn thing. 'It is easier to get forgiveness than permission.'
Sun 04 Jul | Not going to tell my name! | 'No, the manager just can't imagine spending even a minute on code that doesn't go out the door.' oooh, i've been there. Take time to look for another job, because if the manager has a hard time seeing the money for the small saving with simple stuff, how is he ever going to see the big savings with the little more complicated things or even the savings that the products should have for the customers.
How does credit rating work? | Sat 03 Jul | JD
Hi, Few of you might know that I am currently in States. And being new here I often have question about how particular things work here. Earlier I asked about Mail in rebates. This time, its turn of Credit History/Rating. I have immediately realized that your life isnt good in US if you dont have good credit history to back you. I am new here and when I apply for credit card they reject it stating that I dont have credit history! Boy, if you dont give me chance of building credit history, how on the earth I will get one?? Anyways, I have started with Secured credit card to take small steps towards decent credit history. I was wondering how credit history is associated with person. Is it stored somewhere in central database by Government? Or is it maintained by some not for profit organization? Say, if I have one card now where I do not have any defaulted payment and another where I have had several defaulted payment, will it affect my overall credit history OR is it that my credit history is as good as the card I use. Also, any tips for new comer here to build history?? One friend told me simple trick. His idea is that you take loan of say 5000 bucks from bank, and pay same money to bank over year. Yes, you will have to pay interest but it will help you in building credit history! I am not sure if this is right way or not! So if you have any suggestions, please pass them on! :) Thanks for your time and Happy Independence Day in advance! :) JD http://jdk.phpkid.org
Sat 03 Jul | Bill K Ramsey | The secured cards are a start. But you need to actually develop a history. So, buy a few small things on the secured cards each month; and pay it off at the end of the month. It's the transaction history that you want to build up. You can also try to increase your trade lines by applying for 'department Store' cards: small and/or national shops found in malls. And again, actually buy something and pay it off on time. Unfortunately, you need to have at least 2 or 3 years of history to be considered as actually having a history. Otherwise, your application for major items (like a house) will be dismissed. However, there is a very large portion of the population that get by just fine using debit cards and / or no credit at all. Having a credit history certainly makes it possible to buy a house, but otherwise, you can live just fine without extensive credit. Credit is one of the biggest traps of American Society. Great care needs to be taken and many people fall into it's trap. (A former credit manager.)
Sat 03 Jul | Minh | You are taking the right direction. IMO taking a loan just to build credit history is not necessary. Just use the secured card you have every chance, then pay it up on time The way credit score calculated is based on many factors. However rule is try to create as many good trade records (satisfactory credit transactions) as you can. Also keep the number of credit cards or open loan accounts at about 3 or 4 (optimal number) and don't apply for many credit accounts. After 2 years you will start receiving pre-approved offers.
Sat 03 Jul | mb | Your credit rating is determined not by the government or some benevolent non-profit, but by one of several major credit report companies. Equifax, Trans-Union, and Experian are the big ones. Various organizations send them your personal data, indexed by your social security number, and they build up a report of good and bad info.
Sat 03 Jul | no name | There are a few blanks.
Sat 03 Jul | Yoey | Watch the 'Suze Orman Show' on MSNBC. She helped develop the FICO score, which is the 'credit rating' used the credit agencies. This may be of help too: http://www.bankrate.com/brm/fico/calc.asp
Sat 03 Jul | Lou D'Acriss | I thought terrorists used cash to avoid leaving a trail.
Sat 03 Jul | Doug | 'Is it stored somewhere in central database by Government? Or is it maintained by some not for profit organization?' You are new here. The information is maintained by profit-at-all-cost corporations with one of the best scams ever. The 3 big ones are Experian/TRW, Trans Union and Equifax. They charge you to get your information unless the government has required them to do otherwise, they charge those who check your credit and therefore indirectly you, they charge you to monitor your credit, they make it difficult to correct your credit and they're largely responsible for the lack of progress on resolving issues surrounding idenity theft. In other words, they suck.
Sun 04 Jul | Dennis Atkins | That bank rate applet is fun. It says my rating is 770 to 820. I guess that explains why I was able to get a commercial loan on a large building without even presenting a business plan or nuthin. Note: I have exactly one credit card and I have never carried a balance from month to month nor ever paid a single payment even a day late. Original poster, don't do that cash thing that is just silly to carry a balance like that and it will not improve your credit one bit. To get a good rating you just need to make timely payments over a period of several years. To get a VISA or Mastercard you do not need any credit history, you just need to show that you have had an actual job for at least 6 months and don't have a bad credit record. Disclaimer: my ex-wife worked at TRW.
Sun 04 Jul | Lisa | >>To get a VISA or Mastercard you do not need any credit history, you just need to show that you have had an actual job for at least 6 months and don't have a bad credit record.<< Try Providian. They approved me for a MasterCard with a $1000 limit last December, and at the time I violated both of those requirements. And you probably don't have to find them - I'll be surprised if they don't find you. Their marketing is in serious need of flood-checking!
Sun 04 Jul | Stephen Jones | My favourate story was that of 'The Guardian' correspondent in the States, Martin Walker I think, who never ever bought anything on credit on principle. When he wanted to get a mortgage he found that nobody would give him one because he had no credit rating. He ended up using a broker and paying a premium.
Sun 04 Jul | Dennis Atkins | I believe it was that way in the past, but currently when it comes to buying houses they'll give mortgages to anyone no matter what their credit, qualifications or ability to pay.
Sun 04 Jul | no name | Someone else mentioned the department store cards as being a good way to build up credit, and I just wanted to mention that gas station cards will do the same thing for you, plus (if you own/use a car) it's something that you'll buy anyway.
Sun 04 Jul | JD | Thanks guys for the responses. The reason I am bugged is that I want credit card which can help me get insurance on my car rental + help me get cell phone service without paying deposit. Btw, is it okie to transfer money to secured card thrice in month so as to maintain the same credit limit? Does it affect credit rating? Is it worth buying those credit reports online?? Have you ever got bitten by not having credit rating??? JD
Sun 04 Jul | Jeff | Get a cell phone with Verizon, pay the bill every month. If verizion asks for a deposit and it is reasonable to you pay it, you get it back within a year and the benfit to your credit can be worth it. Buy a laptop or computer or TV etc on a same as cash deal, and pay it off before the end of the terms. Those are two good ways to quickly, within a year or two, gain some credit respect.
Sun 04 Jul | Dan Maas | It is a good idea to check your credit at least every year. You may need to wait a few months before you will show up in the database (my bank reports credit quarterly). Look around for a website that will let you check your credit on all three main credit bureaus for $10-$30. (there are lots of 'free' credit-checking services on the web but they always require you to subscribe to 'credit monitoring' which carries a monthly cost). Be aware of the difference between real credit cards and 'check cards.' Most banks will give you a check card with a checking account, but these don't give you the same protections against fraud as a real credit card, and they don't build a credit history. I initially had some problems because I used a check card throughout college. I never tried to get a credit card until after I graduated, which was a really bad idea. Credit card companies LOVE giving card to students but not self-employed graduates (which probably show up as 'unemployed' in their database)! For US consumer issues check out www.clarkhoward.com
Sun 04 Jul | T. Norman | One year of using a credit card or paying a car loan is generally enough to establish credit so that they won't see you as having "no credit history". Not enough to be seen as *good* credit, and not enough to get the best interest rates for big loans like mortgages -- but 1 year is good enough for the small stuff like getting a cell phone account without a deposit or an unsecured credit card with a $1000 limit.
Sun 04 Jul | Lisa | Something about the whole torturous process of running credit checks on people for (relatively) small items like cell phones just annoys me. I realize that unless you buy it outright, you are running around with *their* phone, so I'm not being entirely logical here, but still. As if most people are going to smash the phone or something if it gets shut off for not paying the bill. And the car rental thing is absurd. Paying for the car rental is of course important, as is some way of knowing who you are and how to find you should you try to disappear into the wilderness with the precious beely. But it seems to be needlessly arbitrary. I mean, who has enough unused credit on their credit card to replace the dang car if they abscond with it? Why won't a picture ID and actual cash suffice, like it does for anything else on earth? I'm probably missing something perfectly obvious and sensible here. Feel free to holler it at me. :)
Sun 04 Jul | Should be working | Here are some of the things which affect credit rating downward: - Total amount of credit used vs. available. If you use more than 50% of your available credit, it's a minus. - Being late on payments 3 times in a row. - Being late on payments on more than one account. - Being at or over the credit limit for an account. - Having 'too many' accounts (credit cards). - Applying for credit several times within a 6-month period. - Bankruptcy or other 'significant' negative financial failing. Pretty much the best way I know of to establish a good record is to use a small amount of your available credit on a regular basis and be religious about paying it off. And it does take a couple years to built up a credit history. Once something is on your credit report, it stays there for 7 years, although I think bankruptcies stay on your record for 10 years (ouch). Last but not least, I'll throw in the standard warning about identity theft. The chance that you will be hit is low -- but if you *are* hit, it will take you years to recover your credit rating, to say nothing of the potential financial costs and time you will spend in re-establishing your identity. It's well worth the effort to take some steps to protect your financial identity. And very last, a belated welcome to the United States.
Sun 04 Jul | Me | Welcome to the US, JD.
Quicken's Quality Meltdown - Revisited | Sat 03 Jul | J. Peterson
A few months ago on this forum, I started a thread on Quickens Quality Meltdown. It asked how Quicken could have botched some of the most basic features in its decade old flagship product [to Intuits credit, the worst of the problems have gone away after four or five patches]. Heres a great essay by a former Microsoft Money developer that goes along way to explaining what the problem may have been: http://tinyurl.com/3e3xr [msdn.com] He describes a major Feature Arms Race with Quicken, and a botched strategy to turn it into a web property. Fascinating reading.
Sat 03 Jul | Dennis Atkins | Fantastic article. Thanks.
Sat 03 Jul | Huh? | During the first part of the article, he says that part of the downfall of Money was the extreme competition with Quicken. Then he suggest that the competition 'didn't serve consumers.' How fucking arrogant is that?! If my history serves me correct, Intuit was publishing Quicken before Microsoft. Microsoft jumps into the market, attempts to beat the daylights of the competition and dominate. Instead of delivering the coupe de grace to their victim, as they are used to, they actually find themselves *gasp* competing! Oh no Mr. Bill! The article is insightful, but I find the hint that it was really unfortunate that MS had to compete laughable. His disclaimers about competition notwithstanding.
Sat 03 Jul | mb | Well, it's partly true. Quicken and Money went on a downhill arms race: who could add the most glitzy and unusable features as quickly as possible, so as to garner review points. Real end users be damned.
Sat 03 Jul | Chris Altmann | Heh. This puts Microsoft's Inductive User Interface thing in a whole new light, doesn't it? http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwui/html/iuiguidelines.asp : 'This article describes a new user interface model called inductive user interface (IUI). Also called inductive navigation, the IUI model suggests how to make software applications simpler by breaking features into screens or pages that are easy to explain and understand. This IUI model is emerging in various Microsoft projects, most notably Money 2000. '
Sat 03 Jul | Dennis Atkins | He says that competing with them feature for feature (as opposed to a generalized and abstract competition in the PF sector) was a mistake because the competition was making their software worse not better. See the point is that if your competition is going downhill, its not a good plan to be following them.
Sat 03 Jul | Mr. Analogy | Very well put Dennis. Michael Dell (in Dell Direct, his book) made a really good point: follow your customers, not your competitors. If you're following your competitors, you will ALWAYS be behind. 'to garner review points. Real end users be damned. ' That is a BIG problem. Reviers aren't always a good representative of the customer. I.e., Reviewer may want things the customer doesn't care about and vis-a-versa.
Sun 04 Jul | son of parnas | Aren't reviews tied to the check list? We often have to create features just to satisfy check lists that must come from somewhere.
Sun 04 Jul | Frustrated | I won a copy of Microsoft Money at a raffle. I installed it. I could not make any sense of it. It wanted to link to accounts when all I wanted was a way to record expenses. Now I use a spiral bound notebook.
Sun 04 Jul | Mr. Analogy | 'Aren't reviews tied to the check list? ' Yes, but that checklist doesn't always come from a USER. Case in point: we were just reviewed by a canadian medical journal. The review pointed out that one of our programs was too difficult for the 'target population' of people with expressive language difficulties. Yes, the PROGRAM DESCRIPTION said it was for people with RECEPTIVE (comprehension) difficulties. So they obstenately misinterpreted (or ignored) the recommendations of who the program is for and then said 'it's not appropriate'. Can't complain too much, they rated our other programs pretty well. My point is that the reviewer had a checklist that made no sense for a user.
Sun 04 Jul | Should be working | I'm using Ace Money to manage my finances. Like about 90% of the population, my finances are pretty simple, and Ace Money lets me track things with a minimum of effort/time. Find it at http://www.mechcad.net/products/acemoney/ . Recommended.
Windows Degrading #n: Foreground windows | Sat 03 Jul | mb
Another why does windows degrade question. This time, my main machine no longer seems to bring windows to the foreground. I have right now 8 items in my task bar. If I bring one to the front by clicking or alt-tab, it gets the focus, but isnt on top. Well, most of the time. Clicking around through 2-3 other apps will bring the app to the foreground, and the intermediate apps sometimes will and sometimes wont go to the foreground. Ive seen this before, and think it went away after rebuilding the machine and/or running windows update. Supposedly some random windows update caused it. But I hadnt recently run any windows updates when this started. Anyone else seen this? I cant even figure out what to search for online to find a solution.
Sat 03 Jul | Alex | I think XP has a more restrictive 'bring to foreground' policy. Perhaps these apps were written for win9x where you could get away with SetFocus()?
Sat 03 Jul | mb | I'm not talking about the app itself setting focus, but rather me using alt-tab or clicking on the taskbar. For example, between different Internet Explorer windows. IE may be the culprit, as it's the hardest to prevent from being on top... maybe I'll reset my IE settings to the factory default and see what happens.
Sun 04 Jul | andrew | I get this problem too, and it bugs me. Maxmised windows seem to be involved. At one point I suspected my media player (they tend to have funky UI's), also my video drivers (yes I know driver != GDI32 != USER32). I've never really pinned it down. For example, my work pc is a pretty vanilla w2k3 install (boring corporate h/w, boring corporate s/w) and it exhibits this problem. I'm convinced that something I do/install causes it, because I don't remember seeing this problem on other people's computers or base installs. Very frustrating.
Sun 04 Jul | Alex | mb, after rereading your post, I have the same behaviour with Firefox: when I go to fullscreen and then back, other windows fail to get focus.
Sun 04 Jul | Alex | Not to mention the annoying Firefox "feature": close a tab with Ctrl-F4, and the underlying tab doesn't get keyboard focus --> you can't scroll with arrows.
Canadian postal code database | Sat 03 Jul | Farid
Hi fellow Joelsters: My web app requires access to Canadian postal code database. There are several places that offer these databases, so far I have found these two: http://www.zipcodedownload.com/ http://www.zipcodeworld.com Any recommendations? Thanks.
Sat 03 Jul | O Canader | Why not ask Canada Post? http://www.mailposte.ca/business/offerings/address_management/can/other_data-e.asp
Sun 04 Jul | Tim Sullivan | http://www.zipinfo.com
Paul Graham says we don't need bug tracking softwa | Sat 03 Jul | jon Kenoyer
In his collection of excellent essays, specifically the one entitled The other road ahead (http://www.paulgraham.com/road.html) Paul Graham states - We never had enough bugs at any one time to bother with a formal bug-tracking system. This somewhat shook my world view since I am of the camp that any successful commercial sofware project is as good as its bug tracking system. Currently my small project (using Fogz bugtracking system) has logged around 200 bugs in the last two months. While these range from feature requests to incompatibility issues or even just musings, I attribute our attention to detail and fast turn around time to this system. Is Paul Graham on to somthing or is he wrong in this instance? Would his Yahoo shopping software been improved with an official bug tracking system?
Sat 03 Jul | Brad Wilson | Paul Graham is on something. :-p The system is not about how many bugs you have. It's about having a single, authoritative list of bugs. You can get by with an Excel spreadsheet if you have a few bugs, but I'd claim that's still a 'bug database'.
Sat 03 Jul | Mark Hoffman | I haven't read the article, so I'm not sure of the context in which he said that. However, I can't imagine not having a bug tracking system for any project that is larger than a couple of files. Trying to build even an average sized application without a bug-tracking tool is foolhardy. There is simply no way that you can keep track of all of the bug, tweaks, feature requests, etc in your head. Of course, bug tracking software is only a requirement if you have bugs. If you write 'perfect code' (as a former co-worker of mine bragged about) then I guess you don't need bug tracking systems...
Sat 03 Jul | www.marktaw.com | 'With Web-based applications, everyone uses the same version, and bugs can be fixed as soon as they're discovered. So Web-based software should have far fewer bugs than desktop software. At Viaweb, I doubt we ever had ten known bugs at any one time. That's orders of magnitude better than desktop software.' (from 'The Win for Users' on the same page)
Sat 03 Jul | Dennis Atkins | Paul Graham is right. Just don't create any bus in the first place and you won't need any bug tracking software. it's as simple as that.
Sat 03 Jul | son of parnas | As he says: > Bugs turn up quickly. And devotes a lot of text to bugs, so it seems unlikely they didn't have bugs. Just because you don't track bugs doesn't mean you don't have them. And once you go to an actual release cycle, customer support, new feature schedule, have a qa team etc, you need a tracking system.
Sat 03 Jul | Mr Fancypants | I've never once written a bug into any of my code, as I am much smarter than all of you or anyone any of you has ever worked with. So I don't really understand all of this bug tracking nonsense.
Sat 03 Jul | Philo | I'm just waiting on Joel's 'Paul Graham is going to die soon' article. Philo
Sat 03 Jul | Eric Debois | Is that bitterness I smell Philo?
Sat 03 Jul | Mr. Analogy | The question is whether you need a bug database SYSTEM. I think you always need a LIST of bug, it's just how formal you need it. If you'll have a lot of bugs or more than one person needs access, then you need a Database (or 'system') MY EXPERIENCE We have 18 comercial programs. We've never needed a bug DATABASE, but we track bugs. It's probably on the order of 10 per program open at any time I've always done consisten unit testing on our pograms though. Without realizing it, I've always use the XP approach: code and test. (Well, OK, XP says I should test, fail, code, test, pass. Will be doing that in the future!) I am no genius programmer, I was just always very paranoid about bugs when I first started programming. (My first program was a comercial program). So, I always tested a lot.
Sat 03 Jul | Tally Ho | It's always fun to watch people get up in arms at the suggestion that everyone isn't as screwed-up as they are. : 'We built our trillion megawatt hoobafunken software with three programmers, straight out our heads and into code, and it has none of the problems but every feature of Acme Corp's HoobaMaster, which they have 300 'engineers' and 700 testers working on. Oh, and it performs and scales better.' :: 'Well that's fine for some amateur product, but I've been in this business since Eniac, and I *KNOW* you must have at least 100 head and a specially certified process to do serious work' (Umm, no. Just because you don't have the talent to do it without so much wheel-spinning and cattle doesn't mean that's true for everyone.) : 'We didn't have many bugs, and fixed them all within minutes of finding them anyway, so we didn't need a grand scheme to track them.' :: 'What?? He's lying. He just doesn't *know* that he has the same thousands of bugs I have!' For some insight into the cause of this malady, read 'Unskilled and Unaware of It: How Difficulties in Recognizing One's Own Incompetence Lead to Inflated Self-Assessments' by Justin Kruger and David Dunning of Cornell University.
Sat 03 Jul | Philo | Eric - nope, was tongue-in-cheek. [big grin] Philo
Sat 03 Jul | son of parnas | > . It's probably on the order of 10 per program open > at any time I have had systems with over 1000 features scheduled for various releases planned 5 years out. I want a bug system. And if a product has over 100 components and there's a bug per component and if you have 10 products that's 1000 bugs. And you have all the bugs that QA finds that aren' t really bugs but must be resolved. And you have the wonderful 1-pixel alignment type bugs. And you have customers who need to see all these issues, as well as numerous internal departments. It seems few here have a system where the customer actually gets access to your internal systems and wants to see every twitch. If you have your freeware poker program you developed all by yourself then write bugs on toilet paper. Otherwise the bug needs to be assigned to a person and a release, it has to be prioritized, scheduled, resources made available for the testing and development. For example, the lunar lander simulator can only be used by so many projects. People need to plan the fix and related fixes, people need to know what build it is in, have QA write tests to verify that's fixed, then know what release it is in, and be able to tell customers all the bugs and the number of lines of code that changed and the test procedures and perform the root cause analysis as to why it existed and perform a FMEA to show that you've handled similar situations and it will never happen again. Not everything is yahoo whatever where nobody really gives a shit if it works or not.
Sun 04 Jul | Tally Ho | ^^^^^^^^ right here See what I mean?
Sun 04 Jul | Oren | I've worked on projects with hundreds of open bugs, all carefully filed in a bugs database, and I've worked on projects where the bugs list was so small that it was 'maintained' by Emacs in a text file. The key difference isn't the size of the project, but the use (or not) of the Zero Known Bugs methodology. Fixing bugs as soon as they're found means that the bugs list will never swell too much, and the bugs will be easier to fix, too. You still need a bug tracking system, however, for a variety of reasons: to pass bug information from QA to development; to track feature requests; etc. But with Zero Known Bugs, the bugs list will transform from a sabre-tooth tiger to a kitten.
Sun 04 Jul | Tally Ho | Don't confuse the size of the product with the size of the team.  They don't correlate very strongly in this age of big teams of mouth-breathers.  Big team almost always means bad team, and that requires a bugs database.
Sun 04 Jul | son of parnas | Ho, do you even know what FMEA means? Have you ever been in the sort of project that cares what it means? Have you ever been on project with millions of users that all get to call up and make bug reports that need to be tracked and handled? Have you ever done work that is more complex than fixing spelling or an index problem? Let's say MS has a bug called 'Fix Security.' Do you think that bug can be fixed immediately? It would take an immense amount of time to figure out where the current problems are and the potential fixes. It might spawn thousands of bugs over multiple releases over multiple years over multiple teams. Big teams don't mean bad teams. Small teams don't mean good teams. Good people mean good work gets done. How many people do you think work on a big cisco router? Do have an idea of the number of separate technologies and skills that make such things work? The teams are big. The problems are complex. The problems are often not cost effective to fix immediately and are scheduled for later releases. Yet your response to all this real world fact will be something insightful like 'see what i mean' or 'big is bad' or 'fix bugs fast'.
Sun 04 Jul | Dave | Son of parnas: I'm not sure *you* know what a FMEA is. The entire FMEA process is really meant for manufacturing, not software construction. FMEA's just don't fit the software construction process very well. I'd love to see you try to build a process FMEA and a set of control plans for programmers. Building an instruction sheet for a CNC operator ain't exactly the same as providing a set of specs to a programmer. Its an entirely different ball of wax. Heck, I doubt you know the difference between a design FMEA and a process FMEA. I do; I'm a programmer for a tiny company whose sole offering is a FMEA tool.
Sun 04 Jul | son of parnas | > FMEA's just don't fit the software construction process > very well. If you mean it is hard because programmers don't want to do it and it takes a lot of work then i would agree. That FMEA doesn't fit for software is not true at all. If you build a class 5 switch, for example, you will do an FMEA for the entire system, that includes software. For hardware it is much easier than software. Having been through the process several times, unless i was dreaming, i can state it definitely applies to software.
Sun 04 Jul | Dave | I would love to see a few pages of one of your FMEAs. That's assuming you know the difference between a design FMEA and a process FMEA. And your earlier comment shows that you've probably confused a Design Validation Plan with Control Plans with design & process FMEAs. And your crack about the difference between software and hardware -- that's a doozy. If your hardware FMEA's are relatively short, then you simply haven't asked enough questions about your product/process. I'll bet you build these in Excel, don't you?
Sun 04 Jul | son of parnas | > I would love to see a few pages of one of your FMEAs. They go on for ever and ever. The hardware is easier because it is fixed. I never said they were short or easy. Quite the contrary. And hardware has very detailed specs. For a capacitor we know how it could fail, we can tell what happens, how we detect it, isolate it, notify about it, compensate for it, etc. On a complex software system it is daunting.
Sun 04 Jul | Dave | Define forever. I'd still like to know how you build a process FMEA for software. And you still haven't demonstrated you know the difference between process and design. You build these in Excel, right?
Sun 04 Jul | son of parnas | > Define forever. 1. For everlasting time; eternally: No one can live forever. 2. At all times; incessantly: was forever complaining about the job. > I'd still like to know how you build a process > FMEA for software. Doesn't software describe a machine? So how is it different? >And you still haven't demonstrated you know > the difference between process and design. I can touch my nose with the tip of my finger while walking. Is that a sufficient performance? > You build these in Excel, right? Why don't you just pitch your tool.
Sun 04 Jul | Dave | > Define forever. That's a pretty simple request -- how many lines are on one of your FMEAs? Just pick a representative product. I ask about process FMEAs because if you manufacture(not just design) software and claim to use FMEAs then you *must* have a process FMEA and a Control Plan. My guess is that you didn't even know that there was such a thing as a 'process FMEA' as opposed to a 'design FMEA' before I brought it up. Otherwise you would have some sort of a reasonable answer, even if it was wrong. >Why don't you just pitch your tool. I'm not interested in pitching our tool. I'm interested in finding out if you use Excel for your FMEA's. Because Excel does not scale well at all for even mildly complex products. You simply cannot claim that your enterprise effectively utilizes FMEAs if Excel is your tool of choice. Unless maybe you are in the pet rock business. And every purveyor of a decent FMEA tool knows this. And since you haven't answered the question, its not hard to assume that your department uses Excel.
Sun 04 Jul | Dave | Here is a good question to see what you really know about FMEAs: Do you use RPN's and if so why? Or why not?
Sun 04 Jul | Dave | Let's start at an even more basic level: what is an RPN?
Sun 04 Jul | . | FMEA? Excel? RPN? I use email and so should the two of you ;-)
Sun 04 Jul | son of parnas | > Otherwise you would have some sort of a > reasonable answer, even if it was wrong. Actually, i am not answering because i don't appreciate your tude which is more like 'have you quit beating your wife?' My intent was to communicate that different worlds get very complex and you can't go without a bug database. Ho's attitude is one that says his experience allows him the priviledge of declairing absolutes about how things should be, when i am sure he has never been in particular product spaces that are much different than the consumer software only market place. Cisco making a router, for example, is manufacturing, and software is part of what is being manufactured.
Sun 04 Jul | Me | Translation: SOP uses Excel and doesn't know what a RPN is.
Sun 04 Jul | Anonymous Coward | Wow, there's a misleading title if I ever saw one. What he actually said was: since his program had fewer than 10 bugs at any given time, he (and the one other guy in his company) didn't need any bug tracking software. How'd you get from that to 'PG says we don't need bug tracking software'? (Do you get paid for click-throughs?) That's slashdot-worthy spin. Whoa.
Minimum browser list for ASP.NET application | Sat 03 Jul | Mike
I have an ASP.NET based application that is going through final testing. Id like to provide a list of browsers (with minimum version numbers) that are known to work with the application. The application is intended to become commercially available so I have little control over which browsers might be required to work with it. My intention is to publish the list so that a prospect can know whether their particular browser is likely to cause them a problem if they attempt to use the application. Ideally, Id like the browser list to cast as wide a net as possible so as to interest the widest audience. However, to keep the amount of browser testing to a realistic level, I dont mind excluding browsers or minimum versions numbers that have minimal usage in the real world. I am particularly confused about the Netscape/Mozilla/Firefox historical lineup and how these browser names/versions should appear in my final list. As far as the browser capability to support the application is concerned, it needs to support HTML 4.01, CSS and JavaScript. Does anyone have a reasonable list of browsers/minimum version numbers that could get me started or pointers to where such a list might be found? Thanks.
Sat 03 Jul | Andrew Cherry | Firstly if CSS is integral to your application (i.e. it relies on it to be usable) you will need to be a little more specific about what level of CSS and which particular features you need to support. Browser support for CSS Level 1 is fairly complete across the modern spectrum, Level 2 is patchier. You may need to work out exactly which features you need supported and then compare them witha browser support table (westciv.com have a good one, though I don't remember it being free) zvon.org is also useful. With Javascript, it really does depend on what you've written. If you've only used IE specific code for example, then you're going to have problems. On a broader note, have you used ASP.NET page controls heavily? You have to understand how they resond to what MS would term a downlevel browser to see whather portions of your app will still work. There is unfortunately going to be no substitute for testing. The best that you're going to be able to say is that it supports IE above a certain version, and browsers based on Mozilla above a certain version, being more detailed may confuse the issue. Again, you are going to need to test your app in various browsers and work out the cuttoff point. You can find most old browsers at browsers.evolt.org. I can't help pointing out though - didn't you decide what browsers NEEDED supporting before you started coding this app? You're approaching this the wrong way! Work out what your target market is likely to be using and then CODE FOR THAT PLATFORM. If this means using simpler interfaces, less JS, etc. then that's part of your app and you design accordingly. I wish you luck, as the situation you're in is a potential minefield. If you do want to chat about the implications and ways to streamline your testing process from now, mail me, i'd be happy to talk about it!
Sat 03 Jul | Mike | Andrew, Thanks for that full response and useful links. I take the point about predicting the browsers of the target users but I'm not sure we will ever be in a position to do that completely. We intuitively felt that most target users would have Internet Explorer and we use IE 6.0 for our development testing. We do use ASP.NET page controls but generally only in a rudimentary fashion. We've also tested with Mozilla 1.2.1. We found that, for example, setting the width property on button controls worked fine in IE. But, as you pointed out, the HTML sent to this 'down-level' browser is different and causes the width property of the button to be inoperative in Mozilla. We were able to overcome that by re-locating the width values into the CSS which worked fine for both browsers. That's the sort of maximum level of change we are looking to make to increase the list of compatible browsers if we consider it worthwhile. As of now, my compatibility list is: - Microsoft Internet Explorer 6.0 or later. - Mozilla 1.2.1 or later. If I can add a couple of others (say Netscape Navigator and Opera) and push the minimum IE version down to 5.5 or 5.0 without too much effort then that will probably be sufficient for our needs. If anyone has other thoughts on this then I'd be pleased to hear them. Thanks.
Sat 03 Jul | Brad Wilson | I have to agree with Andrew in that you're approaching it the wrong way. 'Down-tweaking' for browsers is a tough job. You should always be developing with your lowest common denominators. First is: are you using a standards compliance indicating DOCTYPE tag? If not, you have to change that immediately, to make sure all modern browsers act in standards compliant ways rather than in quirky ways. Second is: you're going to find that the wealth of CSS bugs in IE 5.x is going to make you insane, if you're using much CSS at all. It's very important to use IE 5.x as your day to day working browser instead of IE 6.0, if you intend to support it. And, of course, you have to regularly test everything you do in every browser (by regularly, I mean, if you're not firing up all your browsers every time you do something new, it's not often enough). Third is: you're going to find that the ASP.NET web controls are generally like 'pushing rope' for anything but IE. You should probably set up your web.config to tell the web controls to always render HTML 4.0 regardless of browser, via: TagWriter=System.Web.UI.HtmlTextWriter Otherwise, elements you think you're getting, you won't be. Since most developers will be using an OS that ships with IE 6.0 and is incapable of installing older versions, this article will help you run older versions side by side with IE 6.0 (it does work, with the given caveats): http://www.insert-title.com/web_design/?page=articles/dev/multi_IE Good luck.
Sat 03 Jul | FG | Design for the most standards compliant browsers (eg Mozilla) and then drop down to the quirks mode for the less compliant browser (eg IE6) To be honest, I've pretty much given up using IE6 in my day work. I'm currently using Opera 7.5 and Netscape 7 and once things look correct there, I'll check it in IE6 and adjust for quirks.
Sun 04 Jul | Mike | Brad / FG, >> Are you using a standards compliance indicating DOCTYPE tag? Yes; we use the appropriate DOCTYPE tag to ensure that the browser switches to standards mode. We had to do some tweaking when we switched from 'quirks' mode to 'standards' mode but it is obviously a better way forward and so it is worthwhile for the long term. >> It's very important to use IE 5.x as your day to day working browser instead of IE 6.0, if you intend to support it. And, of course, you have to regularly test everything you do in every browser (by regularly, I mean, if you're not firing up all your browsers every time you do something new, it's not often enough). I agree with that; I'm setting up a variety of browsers in our test environment to achieve that. >> You should probably set up your web.config to tell the web controls to always render HTML 4.0 regardless of browser. Thanks; that's the most useful tip I've seen in a long time. That could save us many hours of work. >> To be honest, I've pretty much given up using IE6 in my day work. I'm currently using Opera 7.5 and Netscape 7 and once things look correct there, I'll check it in IE6 and adjust for quirks. That describes the style of environment I plan to set up for my testing. It sort of confirms that my list of Mozilla, Internet Explorer, Netscape and Opera is a good enough list. I'm not expecting the 'down-level tweaking' that I need to do to be as difficult as has been hinted at. If it really is very troublesome then I'll simply shorten my 'certified browser' list. Thanks again.
ad-ware and hijackthis logfiles | Sat 03 Jul | Victor NOAGBODJI
Hi all My brother told me that while using IE (6.0.2600.0000), the screen suddenly locks and a few minutes later the computer reboots (win 98). He also told me that, casinos pages pop up time to time. I have done a scanning with HijackThis and Ad-ware. These are the results. I need help with what to delete or not, asking professional is the best thing to do. A last thing, there is also a search bar which I cant desactivate and I cant aslo launch msconfig in start-execute menu. You can check the logs here: http://www.multimania.com/pixelstorage/ad-ware.htm Thanks for any help you might be able to provide
Sat 03 Jul | A Pterodactylus Ate My Baby | Also give spybot search & destroy a whirl generally, I just remove everything adaware/ss&d finds.
Sat 03 Jul | somemorone | After looking at your log files I highly recommend that you use from now on firefox as your default browser. http://www.mozilla.org/ I see some nasty stuff in your logs but I can't really say what to do as I don't want to mess with your computer and I would have reinstalled windows. Anyway here is a list (from your log) that I think is spyware: look-today.com C:\PROGRAM FILES\MYWAY\MYBAR\1.BIN\MYBAR.DLL C:\PROGRAM FILES\DEAD PEAK\VGAKNOB.DLL <-- Not sure google turns up nothing C:\WINDOWS\QUESTMOD-1.DLL I will stop here as your computer is full of spyware. If you manage to clean up the computer, really use only Mozilla. This is not because its better but at least your brother can not install loads of crap. Also don't forget to set IE to the highest security settings even if you are not using it. Also tell him if he can't manage his computer then the next time he must install Linux or you will not help him anymore or at least install a restricted user account on WinXP.
Sat 03 Jul | www.marktaw.com | There are forums dedicated to this kind of discussion. You'll get much more useful feedback there.
Sat 03 Jul | Victor NOAGBODJI | thanks a lot for your help
Sun 04 Jul | yet another anon | BHODemon is another handy tool for finding and removing BHO's that adaware and spybot might not catch.  Sorry, no link.
Confidentiality/Non Compete Agreements? (Part II) | Sat 03 Jul | Anony Moose
Part 1 is here: http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=155610 I was told to cross off what I didnt like and he would re-write the contract around that. He told me his main concern was the confidentiality bit. So I did what he said & crossed off paragraphs en-masse. The part about you owning everything I come up with (no wording about it being only on company time or at the companys behest, just so long as it pertains to their business & potential reserach they may do), all the non compete stuff, and some other bizarre clauses, like my heirs being responsible for any financial obligations that may be incurred by me in relation to this contract - which is specifically vague on the point of how I should pay them back for my breaking it. The damage I can do the company is unmeasurable so they should have license to make me pay whatever they ask. Yeah right. Maybe that heirs clause is to prevent me from pocketing a small bundle & giving it to my parakeet & starting a business in her name to compete with him, but if thats the case, it should say so specifically & not say he can extort me for several million dollars and expect my great grandchildren to pay his great grandchildren. He said he had some concerns with things Id crossed off - the part about him owning anything I think up is really just work for hire, and the non compete stuff is so that his competitors wont steal me away. Hes more concerned with the manufacturing & distribution aspects and not the internet aspects. So I told him to change the wording so that it only reflects the core of his business, not marketing them on the Internet (which is what Im being brought in for). If the work for hire stuff was really just work for hire stuff, then leave it in. I get the contract back (his lawyer changed it, so apparently he does have a lawyer & didnt get this contract from Staples) and nothing has changed except for 1 paragraph. Now where it says I cant compete with him for 3 years, it defines what competition is - the manufacturing & distribution of goods. The previous paragraph - on competition today - is unchanged. He also told me off hand that in his 20 years in business nobodys ever negotiated with him on this contract. Oh, and there was a seperate clause for work for hire, so the one I crossed out couldnt have been work for hire, it was something else. It was my brain is theirs, even when Im not working. Now, this guy is a small business owner. He has maybe a half dozen employees, including the two guys who pack boxes & ship them. Hes probably been burned in the past & thats why he has lawayers to protect him, but this contract is rediculous. I worked for a Fortune 50 company and they didnt make me sign anything nearly so egregious. Just something that said that Id be willing to work for the company any time day or night if they wanted it and that they could fire me at any time for any reason, but nothing preventing a competitor from stealing me away. I told him flat out my concerns today - Theres nothing preventing me from building up your business & then you getting rid of me. His response was, Look around, everyone here his happy. You dont see any disgruntled former employees breaking down my door, do you? Thanks to you guys & a book I found in Barnes & Noble on negotiations, I have a plan of attack. Im going to figure out what whats negotiable and what I absoutely insist on getting. If this contract is going to protect him, but he expects me to take his word protecting me, thats not going to be good enough for me. If - as this contract implies - my word isnt good enough for him, then his word wont be good enough for me. So I expect him to put in writing our handshake agreement & to give me a golden parachute that makes it more valuable for him to keep me around. This will give me the trust in him that I need to conduct business on behalf of the company to the fullest of my abilities without fear of deciding to get rid of me once Ive built up the business. In exchange, Ill be willing to bend on some of the non-compete stuff - for the present I wont compete because I now have a gaurantee that the work I do will benefit me. In the future, Ill bend because hell have promised to compensate me should we find a reason to part ways. I also expect to be able to run this aspect of the business with relative freedom. If Im going to give up my own business for his in the hopes that his will be more profitable for me, I have to be able to do everything to ensure its success & not be impeded by him, nor be at his beck & call for any other computer or even internet related issues he may have that will take me away from the task at hand - I wont have him tying me up & telling me what to focus on when. Without these things, Ill walk away from the deal and continue on my own. Any thoughts on this plan?
Sat 03 Jul | Inside Job | Good work Anony Moose. That's what it's all about - knowing what you're giving away and making sure the deal is fair to both sides. I can hear alarm bells here with this guy's response to you. He says he will incorporate your requests, but then doesn't. What's more, he's got a lawyer do it. Whatever anyone says, that is not a casual approach to the situation, and his actions are conflicting with his statements. This is a significant warning signal to you. I think this guy does indeed intend to screw you. Lucky for you that you put up a bit of a fight, and now you still have some control over the situation. Also, his statement that no-one else has ever challenged his contract is another classic warning sign, like the promise of more business later on. Whether anyone has challenged his contract is of no concern to your issues. Second, it's almost certainly false. Keep us informed.
Sat 03 Jul | CF | I agree also that you've done a good job on some parts by 'learning about your enemy.' But, I think you made one mistake that may ultimately spoil the relationship. Anytime I've ever gotten an employer to agree to modify an employment contract, I never, ever, modify it myself. Most contract attorneys will be more than happy to look over the contract for like $100 bucks, and they can make the recommendations for you. For example, the work for hire is a common clause I see, except for in every case they blanket the statement much too broad. We always leave it in there, but redefine it to apply only to work pertaining to the general business they are in made while I am working for them. Of course the lawyer didn't change the contract that much - he probably told they guy that he needed some of those elements - and he probably does. My suggestion would be to stop right now and call up a contract attorney. Have him or her look over the original contract, what you changed, and what they came back with. In short, tell them everything that has transpired so far. To me, by doing this you are not attacking or not trusting him. In some ways you are actually respecting that he has a business to look out for, and you want to have a contract that is mutually beneficial. I guess, of course, if you can get a 'golden parachute' that you are happy with and are willing to overlook the contract, then that is your call. But for me, I never sign a contract that my lawyer hasn't looked over, and I don't generally work for places who won't let me modify the contract if it is a bad one.
Sat 03 Jul | kc | I'm not allowed to go into much detail here, but I ran into some *HUGE* problems with a guy who played a lot like this guy and even sounds like him. [If his name is Carl, please drop me an email and we can figure out if it's the same guy.] I'd be the most concerned about the 'I own your brain clause'. I've always been able to negotiate a 'off the clock, not related to your core business, no ownership'. Also, it's much better having an overly vague non-compete. My previosu employer had a clause that said for 2 years I was not allowed to work within 100 miles of any of their locations or any of their clients' locations. I showed it to my mother-in-law (an attorney) and she actually laughed out loud when she saw it. Oh yeah, one of their clients was the FBI, so every medium metropolitan area in the US was covered along with any city globally which has a US embassy (all US embassies have atleast 1 FBI liason).
Sat 03 Jul | Matt Conrad | I'm just a salary guy, what do I know. But the emphasis on owning your brain and restrictions on all your possible future contracts is Not Good. Nevermind what he says it means now, what's the worst that could happen as it's written? The part about saying he'll change the contract and then not doing it is also Not Good. He has a lawyer, and is using him in his dealings with you. That is somewhat suggestive in itself. If you really want this contract, I'd get a lawyer too.
Sat 03 Jul | Dennis Atkins | 'my heirs being responsible for any financial obligations that may be incurred by me in relation to this contract' Do you live in the US? This is not just illegal but even the supreme court has ruled against this sort of this, and done so more than a century ago. I would run away from anyone with such a clause in a contract. Run away fast. This doesn't look good to me.
Sat 03 Jul | Dennis Atkins | 'just work for hire' Great - work for hire is part of standard employee status common law. it does not need to be in a contract. Remember, anything in a contract is going beyond comman law. You are giving something up if you leave anything about this in the clause. If you are a contractor and not an employee though he will need to specifically require code ownership. Also, hovever this turns out, would you please keep us updated and post to previous threads when you do so we can follow it all? I find these sorts of situations fascinating and like to know how they turn out.
Sat 03 Jul | Dennis Atkins | 'nothing has changed except for 1 paragraph.' This proves that he is negotiating in bad faith. He said he'd take that crap out and here it is back with more BS. you can expect more of the same if you chose to work with him. 'Now where it says I can't compete with him for 3 years, it defines what competition is - the manufacturing & distribution of goods.' Which includes every company in the world, a nice touch. :-< 'The previous paragraph - on competition today - is unchanged.' Don't sign it. 'He also told me off hand that in his 20 years in business nobody's ever negotiated with him on this contract.' I would respond 'So you are saying that all your previous hires are naive or patsies what are you telling me exactly?' By the way , he is lying to you. I bet you $100 that that contract either didn't exist or read differently 20 years ago. Think about it. 1984 - he was developing intellectual property back then and had sophisticated contracts? Not unless he was IBM, AT&T or Wang. No way some small business owner had such a contract. Also, he is lying to you about the lawyer. It would be malpractice for a lawyre to put in that crap about your heirs. If the lawyer exists, get his name and report him to the state bar. He can be delicensed over crap like that.
Sat 03 Jul | Dennis Atkins | Also, common sense here tells you that despite his saying this as no big deal, the way the 2nd version came out tells you that he intends to enforce every clause in that contract to the full extent of the law and/or legal intimidation available to him. I assure you that when you leave this company, he will try to enforce that noncompete. He will also threaten and intimidate your family 'heirs' over that clause, claming that your leaving or refusing to work 20 hrs a day has caused him financial hamages. The guy is an ass and a psychopath. Stay far away from him and his business and advise others to do the same.
Sat 03 Jul | Dennis Atkins | 'If this contract is going to protect him, but he expects me to take his word protecting me, that's not going to be good enough for me. If - as this contract implies - my word isn't good enough for him, then his word won't be good enough for me.' Print this in 48 pt font on a paper and put it on the wall above your computer at home. Study it each day. It is a good thing you have said - very wise and insightful.
Sat 03 Jul | Dennis Atkins | 'My suggestion would be to stop right now and call up a contract attorney.' This is good advise to spend money when there is a reasonable chance of coming up with a mutally acceptable contract. I'd say those chances are pretty slim and the paf off is not worth the investment. Don't listen to these $100 guys. A review by a competant laywer will cost $400/hr to read and produce a list of suggestions - expect to spend a grand or so for the review if you intend to make modifications. $100 will only cover a contract that there is no problem with. Then you can expect $400/hr to draw up a new contract with the additions - this may run a grand or two, depending on the length of the contract. A 20 page contract might cost several grand to revise properly, which is why a smart legal tactic to prevent your enemy from challenging your legal document is to make it as absurdly long as possible.
Sat 03 Jul | CF | Dennis - My lawyer charges $175 per hour, and has no problem reviewing a contract and letting you know where you stand for about $100. I haven't had any reason yet to have an entire contract drafted, so that's why the low cost. I guess it helps he is a friend as well. :) Cory
Sat 03 Jul | Anony Moose | Actually, the clause about me not getting into the manufacturer & distribution of goods was a little more specific than that, I just left out the kinds of goods because there are only a few companies that make these things & I didn't want anyone to be able to pinpoint who I'm talking about. I realized that by paraphrasing & interpreting I've been misleading you guys a bit as to it's actual contents & I should be directly quoting it. Unfortunately, I seem to have misplaced it, probably still at the office. I will see a lawyer, but not before negotiationg some more with this guy. We're the two who have to agree on something, and then it's up to a lawyer to put it in the proper legaleze and cross every i and dot every t to ensure the contract actually does protect me. I don't want to get into a game where I go to my lawyer & make changes, and then he goes to his lawyer and makes changes. I want to agree to something man to man & then a once over by both of our lawyers should work with just minor back & forth over the most specific details. Once everyone involved agrees & no more changes need to be made, we can sign. His name isn't Carl. The 'I own your brain' clause said something like I have to go to them & tell them of any discoveries or ideas I have that may benefit their business, or is an area of research or future research they may engage in. Even if it's copyrightable or patentable, and once I leave the company, I have to continue to help them in processing paperwork related to my discovery. Not that I'm doing rocket science now, but I am a clever guy and I may come up with something interesting in my sleep. In that case, I'd like to be able to keep it under my hat if I want & think about taking action on it at a future date, possibly without them. So, I will come up with my list of things I will or will not concede, and things that must be put in to protect me, and once we've agreed on something, take it to a lawyer to have it written up in the proper manner. As far as I know, while he's been in this industry for 20 years, he's only run his own business for the past 7. This contract probably only existed (my guess) for the past 6 - 12 months. If the clause about my heirs is really illegal, then my guess is he wrote it up with his secretary. Maybe not the whole document, but perhaps he took something that was pre-made and added stuff on to it. I've seen him write some pretty lawyerish sounding stuff with her before with regards to some of the people he does business with. If I tell him I'll take it to my lawyer & I ask for the name of his lawyer he'll probably shit in his pants.
Sat 03 Jul | Aaron F Stanton | My advice is to stay the hell away from him. Thank him for his time, tell him this has been a real learning experience for you, and to have a nice day. Look elsewhere for the next job.
Sat 03 Jul | Anony Moose | I've thought about that too. I'm perfectly willing to walk away from this deal. What I see here is the ability to bring to a market I'm familiar with a new product, which is always desirable. Without me he doesn't reach this market, without him, I don't have a unique product to promote. He just needs to get rid of these stupid draconian clauses.
Sat 03 Jul | Aaron F Stanton | I'd suggest doing it without him.  Start a company in direct competition with his.  Watch him freak and squirm on the hook, and then you can be the one handing him the fuck-you contract for a change.
Sat 03 Jul | Dennis Atkins | > My lawyer charges $175 per hour, and has no problem reviewing a contract and letting you know where you stand for about $100. Gotcha. What's a typical length of a contract he'd review here. > I haven't had any reason yet to have an entire contract drafted Right... sometimes with lawyers their verbal advice is not as useful as having them write the actual text. Otherwise if you're writing the contract yourself you might as well skip the paying a lawyer to review it step. > I guess it helps he is a friend as well. That's actually a good setup. >Actually, the clause about me not getting into the manufacturer & distribution of goods was a little more specific than that, I just left out the kinds of goods because there are only a few companies that make these things & I didn't want anyone to be able to pinpoint who I'm talking about. Ah, OK, nevermind my comments on that then. I assume then 'No compete in the glazed doughnut' or 'industrsial suction pumps' industry was the change, in which case that is much better as long as that wasn't the industry you were writing teh prexisting software for which you mentioned in a previous post. > I should be directly quoting it. That would be really helpful so we don't just go off on a not relevant chain of speculation. > I will see a lawyer, but not before negotiationg some more with this guy. We're the two who have to agree on something, and then it's up to a lawyer to put it in the proper legaleze and cross every i and dot every t to ensure the contract actually does protect me. Yeah, you need to have an absolutely clear understanding and then you need to write it up to make the understanding clear. If at that point, there are huge changes and you have to go back to negotiating from cratch and clearing things up again from square one then it's not worth it since he's playing games. > I don't want to get into a game where I go to my lawyer & make changes, and then he goes to his lawyer and makes changes. If you do get into that, it is because his lawyer is free to him or an employee of his firm or something and he is dragging it out to wear you down, whcih hopefully is not the case here. > I want to agree to something man to man & then a once over by both of our lawyers should work with just minor back & forth over the most specific details. Once everyone involved agrees & no more changes need to be made, we can sign. That is the best way to do it if the other party is willing to be reasonable. > The 'I own your brain' clause said something like I have to go to them & tell them of any discoveries or ideas I have that may benefit their business, or is an area of research or future research they may engage in. Even if it's copyrightable or patentable, and once I leave the company, I have to continue to help them in processing paperwork related to my discovery. That's BS. Just strike out all that stuff unless they want to pay you a retainer when you leave. The standard one is that if you are working there and as part of your job invent something patentable, you have to file the patent papers even if they are filed after you leave. That's standard but you should stipulate that you be paid for your time at a rate as a consultant for any hours it takes to fill out those forms after you leave. > Not that I'm doing rocket science now, but I am a clever guy and I may come up with something interesting in my sleep. In that case, I'd like to be able to keep it under my hat if I want & think about taking action on it at a future date, possibly without them. I agree you should keep things to yourself, especially clever things that don't relate to his industry. Those that do, you'll have to wait out the 3 yr thing, though 3 yrs is pretty crazy without the parachute. I've seen three and six months whcih seem more reasonable. > So, I will come up with my list of things I will or will not concede, and things that must be put in to protect me, and once we've agreed on something, take it to a lawyer to have it written up in the proper manner. But don't show him your list and remember that the way of business negotiation is to hold stuff back and concede things you are only mildly interested in. If you start with your final position, negotiating will be much more difficult. > As far as I know, while he's been in this industry for 20 years, he's only run his own business for the past 7. This contract probably only existed (my guess) for the past 6 - 12 months. OK, so you know for a fact that he is lying to you. Ask yourself this - if he found out that YOU were lying to HIM during negotiations, would he continue to negotiate with you? The negotiation books say 'no way' and I am sure that this works both ways. you know that he is not above lying in negotiations, which is way more than being smart or clever or holding back or exagerrating. He is point blank looking you and lying about stuff. A assure you that you should be so warned by this. > If the clause about my heirs is really illegal Debt in the US can not be assumed by decendents, it's considered a form of slavery and courts will toss crap like that out so fast you wont believe it. Also your heirs obviously aren't given consent. Japan is different. You might consider leaving that one in because if this ever goes to court, its mere presence will invalidate the entire contract. > , then my guess is he wrote it up with his secretary. I believe you are correct. >Maybe not the whole document, but perhaps he took something that was pre-made and added stuff on to it. I've seen him write some pretty lawyerish sounding stuff with her before Well, there you go. > with regards to some of the people he does business with. If I tell him I'll take it to my lawyer & I ask for the name of his lawyer he'll probably shit in his pants. I think you should ask him if it comes up. Be friendly: 'Who do you use again?' > My advice is to stay the hell away from him. Thank him for his time, tell him this has been a real learning experience for you, and to have a nice day. I like this advice, but you can continue on if you want some free good experience negotiating, knowing that he is unreasonable and won't agree to your terms. I often negotiate for what I want even when I know they won't give it and it's futile> I do this just to keep my negotiating skills sharp, it's sort of a role playing game. And sometimes I actually get what I want so there is always that. But do stand by what are your terms in regards to your needs and what is reasonable and be 100% to walk away and chalk this up as a learning experience which it is. No shame in negotiating failing - that happens all the time and is part of the process.
Sat 03 Jul | Anony Moose | Dennis, great advice. I would never show him my negotiations list. That would be foolish. He shouldn't even know I have such a list. I might bring in a written list of contentions, but I'd never tell him the priority I've assigned to any of them. The more I think about this the more I don't want to give up any of my existing legal rights here. I'll mull it over during the long weekend, but my current impulse is to tell him where he can put his contract. I'm not going to sign something that screws me so much, and I'm not going to do business with someone who expects me bend over. The overall assumption here is that I need him much more than he needs me - that I'd be desperate enough to sign this contract, or stupid enough to sign it without reading it first. I'm neither, and I'm thinking of letting him know this by walking away. Then if he wants me back, he can call me. Of course, at this point there will be enough between us that I would need an airtight contract before I do any work for him because we've both proven that we don't trust the other & will have to have lawyers do our talking for us, and that's not a situation I want to get into either. In other words, while our working together could be lucrative for both of us, I won't work in an environment that's so negative for purely financial gain, especially when he's put in writing that he'll screw me out of that money given the chance.
Sat 03 Jul | CF | Dennis: The typical agreements I've had reviewed are no more than 5 pages. This usually includes employment and IP agreements. 'Right... sometimes with lawyers their verbal advice is not as useful as having them write the actual text.' Usually the agreements are fine. The last one I had him review needed some work, and the company refused to modify it, sounding awfully like the OP's company. They said they had been around 20 years, Frotune 100, blah blah, and they don't modify their contracts. Needless to say I'm not working for them. If he did have to write the text it would probably be in the range you mentioned, $500-$1000. To me, if I am serious about employment with an organization, it is worth it. I've been in a situation where an employer decided to try to screw me through the contract. Unfortunately (for them) they *had* written it themselves without the help of a lawyer, and my lawyer had a good chuckle as he poked holes through it. YMMV. To the OP: I agree with Dennis wholeheartedly. If you are willing to continue with an attitude of caring but not *that* much, then view it as an experience gaining exercise that if it works out, had a nice little bonus on the end of it. Best of luck to you!
Sat 03 Jul | Inside Job | A problem with using lawyers is that they make you sign an open-ended contract. If they decide to spend 40 hours on your contract, you still have to pay. Also, many big companies and lawyers representing big companies know that most individuals and small companies can't pay ongoing legal bills, so they will, as a tactic, introduce lots of legal work for your attorney. They give them long documents to review and comment on, ask for various documents, and so on. Everyone wins out of this except you. Really, the best advice is to understand your own rights, be relentless in demanding them, and, if do see a lawyer, tell him you can't afford to pay much.
Sun 04 Jul | TheGeezer | Whilst this may unhelpful advice, I'll offer it anyway. If you've had to expend this much effort prior to signing what sounds like an incredibly restrictive, opressive, legal-minefield employment contract, think twice before giving your mind, body and soul over to this mob. Anything that restrictive would set alarm bells ringing with me. Go with your gut instinct. If it looks and smells like BS - it is BS!!
Commoditisation | Fri 02 Jul | .
Does anyone else believe that free as in beer software is a major reason behind the commoditisation of programming? There has always been a trend toward packaged software replacing custom programming (and rightly so), but it seems to me that free software has done more to promote the cost-cutting mentality than most other factors. Other industries are smart enough not to destroy their profits by engaging in a race to the bottom. The software industry on the other hand is actively promoting the idea that business will soon be able to get all the software they need for free. If such a point arrives, I wonder whether the average programmer will connect the dots between free software and his pink slip.
Fri 02 Jul | no name | Free software is a razor.  As a developer, you're either going to be a blade or a one-piece razor/blade.
Sat 03 Jul | Dennis Forbes | 'The software industry on the other hand is actively promoting the idea that business will soon be able to get all the software they need for free.' The cost of most software licenses are irrelevant to most businesses - it's only in the very low end where you hear concern over the price of SQL Server versus MySQL, for instance, whereas in most businesses the upfront fee is miniscule compared to the TCO. In fact most organizations INSIST upon paying for software, ultimately so that they can have a feeling that someone is accountable, and that someone has the motivation of dollars to make things right. See the hundreds of millions that RedHat is pulling in.
Sat 03 Jul | Dennis Forbes | To continue on, and to play devil's advocate, there are many who would say that the most destructive force in the software industry isn't open source software, but rather is Microsoft (and open source software is entirely a defensive reaction to Microsoft). Discuss.
Sat 03 Jul | Tayssir John Gabbour | Is commoditizing programming the issue? Or shrinkwrap software? Paul Graham argues that people are increasingly willing to pay under a subscription model with web-based software, which you host on your own servers. As Tim O'Reilly pointed out, we're all linux users, whenever we use Google. Incidentally, I liked your subtle use of 'free as in beer.' Companies like Microsoft have released free-beer. Free-as-in-freedom is a different matter though.
Sat 03 Jul | Kay O'Pectate | >>'See the hundreds of millions that RedHat is pulling in.' Oh really? Maybe you should try actually looking at Redhat's financial statements. For the 9 month period ending Nov. 30, 2003 (the most current listed on their website): Revenue - $89,119,000 Expenses -$88,441,000 Net profit - $ 678,000 Were exactly is this 'hundreds of millions of dollars'?
Sat 03 Jul | Dennis Forbes | 'Oh really? Maybe you should try actually looking at Redhat's financial statements.' Oh, Jesus, my whole point has been shot down by this clever ankle-shot retort. Clearly when I stated a revenue amount, I must distinctly have referred to a defined time period. Let me see - Did I say quarterly there? Oh, maybe I said bi-annually. Hrmm...can't even see annually there... Gosh, I don't seem to be referring to a 10-K, or a 10-Q, or even a nine-month period. No, instead it seems that I was referring to the fact that RedHat, sustained on 'open source software' has derived hundreds (aka: more than 1) of millions from business. What the hell are you bitching about again?
Sat 03 Jul | . | Dennis: Excellent point regarding the cost of licenses. You are right. Thanks for the insight. To shift the subject a little then, how about this: Does anyone believe there will be much of a market for custom programming in twenty years time? Or will we see the accountants, lawyers, engineers, etc., just glueing together shrink-wrapped components as required? I don't doubt there will be a demand for people who understand the fundamentals of programming, to co-ordinate this sort of thing, but I think there is going to be a general shift to 'business consulting' rather than 'writing code'. Would any programmer today encourage their sons or daughters to get into programming as a career?
Sat 03 Jul | Dennis Forbes | 'Does anyone believe there will be much of a market for custom programming in twenty years time? ' Honestly, I think this field is on a continual decline (the whole off-shoring thing is largely the domain of 'projects that shouldn't exist anyways'), and I most definitely won't direct my children into this career (of course that would just make them want this career...so I guess I should direct them into it in a bid of reverse psychology). Ultimately what we're seeing is that businesses are starting to see their information technology as just a commodity, just as you stated, rather than as a strategic advantage - instead of every organization running proprietary, labour-intensive in-house applications, many fields are coalescing upon just one or two common software platforms: A lot of in-house applications are being replaced by industry-specific apps, with a minor amount of customization. Obviously this is having a negative effect on this profession (as there is a large amount of redundancy with every organization creating the same sort of application). Even an application like SharePoint, or Biztalk, rendered thousands of projects irrelevant across the land. People would normally respond to your question with some like 'people have been predicting the demise of the programmer for years...', and this is ultimately used to dispel the notion of any negative impact on this profession. I think that is wishful thinking, and we are reaching the point of greatly diminished returns in software (and thus greatly diminished interest in paying the big bucks for it).
Sat 03 Jul | Michael Ealem | >Would any programmer today encourage their sons or >daughters to get into programming as a career? No, not at all. I would encourage them to learn to program as a tool to use in their professions as scientists or engineers - I certainly wish *I* had done so 26 years ago rather than trying to make a living writing code. I'd have tenure at some university or a nice research job somewhere rather than wondering how I'm going to pay rent next month.
Sat 03 Jul | . | Well said Dennis. I agree. Tom DeMarco (author of Peopleware) wrote a book titled 'Why is software so expensive'? I haven't read the book, but I find its existence instructive. To me the question betrays the fact that: a) The labour component of our product is WAY too high, and b) Too many businesses are required to spend money on this labour, because things have not been automated enough. Our business is automating other people's work. It's inevitable that we will eventually automate a great deal of our own work. Unless your company is writing software, I can't see a sensible reason why you need to have an IT department at all. The software should *just work*. It should be reliable and invisible. This has been the trend of the last couple of decades, and I think it will run to its logical conclusion: within a couple of decades, there will be no custom programming jobs in non-software companies. My problem is I can't decide what to do once I leave this industry!
Sat 03 Jul | . | Michael: That's a great point. In the future, programming will 'dumbed down' enough that just understanding the concepts (loops, variables, etc.) will get you halfway to solving a business problem yourself, without the need to pay someone to do it for you. This is great news if you're an expert in a non-software field. One point which relates to yours: I am constantly thinking of business ideas. I've realised after several years and a few failures along the way that I am not yet equipped to run a successful software business (at least not without a partner), and the reason is not technical. The reason is that I am not a *domain* expert. If I was a futures trader I would be a squillionaire by now because I would have used that knowledge to write software that could make my analysis easier. If I was a doctor I could have written a program which would make it easier for me to save lives. Et cetera. Eric Sink and Joel have recently been reminded of how ephemeral the 'developer tools' industry is. The reason is that it's not solving a real-world problem. It is begging to be obsoleted. We are making ourselves obsolete. I'm not crying any tears over this by the way, I happen to think the world will be a better place when we have invisible, reliable software that we just take for granted, and that permeates all our walks of life. Asimov: 'I don't fear computers, I fear the lack of them.' Or something along those lines.
Sat 03 Jul | KayJay | What is the problem with software selling like soap? How difficult is to make soap? Or toothpaste? Even a comb? I'd rather software sells more like a Lux than like a Bugati. The issue with software development is that we focus on the production methods and costs and try to dove-tail distribution and consumption methods with them. It should be the other way around. Do customers want software at all? And why? First questions. Only then can we meaningfully answer, 'Should they hire developers and make it in-house, or outsource to Romania. or buy it from Fog Creek, or download it off Source Forge?' We have to admit, there is a glut. Some term it abundant choice. But I call it glut. But what purpose do they all serve? And most important of all whose needs to those software cater to? The producer or the consumer? Once this shift occurs, IMVHO, software will end up like commodity technology items, VCR, TVs, Washing Machines. To be precise, it will end up as the _service_ component of those machines. An engineer who fixes or installs or upgrades the Washing Machines today will be the Software Engineer who installs, upgrades, debugs, customizes the Accounting Software. Both are driven by the basic need of the Consumer to wash dirty linen.
Sat 03 Jul | Double . | The thing is, most accounting, law, dentistry and even medicine is also pretty humdrum, and could be done much cheaper, but those people stop that happening. As long as they provide reasonable services, society lets them erect these barriers. At some point, programming will reach the same stage, and they will look back in disbelief at the 2000's. Historians will write about it.
Sat 03 Jul | . | "Society" will not erect barriers around programming as it has done for accounting, law, or medicine. Creating a programmer's guild is a fantasy.
Sat 03 Jul | Double . | > Does anyone believe there will be much of a market for custom programming in twenty years time? Or will we see the accountants, lawyers, engineers, etc., just glueing together shrink-wrapped components as required? I think programming will diversify into multiple disciplines oriented to the domains, to the extent that lawyers, engineers, etc have to complete relevant development components in their courses, just as many have to do statistics now. Except it will be more important than stats. Perhaps like report writing. Most of the custom programming in each field will be performed by those domain-trained specialists. CS as such will be an academic speciality that provides services courses to the professional faculties, just as maths and stats do now. Product oriented software will be seen as a research activity probably done by PhDs and other research specialists ( and their equivalents who were designing fine software in 2004.) > Would any programmer today encourage their sons or daughters to get into programming as a career? No. I will be encouraging my children to become domain specialists, whether in medicine or whatever.
Sat 03 Jul | Double . | > 'Society' will not erect barriers around programming as it has done for accounting, law, or medicine. Creating a programmer's guild is a fantasy. I don't know why you think that. The various professional bodies are all sniffing the wind to start certifying people, and so are the accounting firms, who want to certify accountants as 'security specialists.' (Heaven help us.) Those bodies will eventually get those permissions, and then they will start restricting the type of work that can be performed without a licence and a four year degree. I predict this will be 50 percent in place by 2010.
Sat 03 Jul | overweightnerd | American businesses writes too many custom software because they innovate too much, for most of what they do (interesting vs uninteresting) they can't find what they need at the Walmart's of bits and bytes (Microsoft).
Sat 03 Jul | . | And what happens when the professional bodies implement certification in the US? Won't more development just move offshore? Once again, guilds are a fantasy. If they ever do come about they will be a pointless exercise. They will only provide a further incentive to buy packaged software.
Sat 03 Jul | Dewd | This phenomenon, of sharing code and work, isn't new. Microsoft was one of the first to break with that. But beyond its walls, it doesn't have much control over programmers, which means that programmers have continued sharing knowledge and work. By distributing articles, tutorials, sample codes, dev. tools, end-user programs (shareware, freeware, full-featured programs, crippled programs, etc,) programmers have always acted as the OSS guys, without the little organization of the OSS world, and not always with the benefit of the Internet. The Internet allowed for such individuals to keep in touch and get organized. So yes, many of us have benefited of the work of others, but we haven't been able to create successful businesses around that, maybe because it's not in our gens.
Sat 03 Jul | Double . | > And what happens when the professional bodies implement certification in the US? Won't more development just move offshore? ... Let's stop calling them guilds for a start, Mr Dot. Lawyers have these things, doctors have them, accountants have them, film crew have them, teachers, just about everyone except programmers. Also, I am not commenting on whether it is good or bad, just that it will come to pass. When the occupation of programming gains the legislative support to restrict practice to people it licences, as it will, then those restrictions would probably apply the same way they do for accounting and so on.
Sat 03 Jul | www.marktaw.com | 1. Didn't Joel say something like - you can't make comparisons between software development (in terms of scheduling) and, say, masonry, because there really are no new problems to be solved in masonry, and you pretty much know how long something is going to take. But in software, there are no repetitive tasks, because when you find one, you program it away. Wouldn't it follow then that once all the major obstacles have been solved, there would be very little actual programming to do? I.e. look at the work you were doing 5 years ago, and then look at hotscripts or sourceforge or the perl archive or download.com and tell me whether or not your solution is already there. It's not that the software is free, it's that it exists at all in an off-the-shelf format. Things are becoming commoditized and off-the-shelf because the challenge for programmers is in finding a recipe for the Big Mac, not in serving it up to customers. 50 years ago there was a lot of demand for someone who had a good hamburger recipe. Now anyone can do it because a few standards have been decided upon - big mac, whopper, whatever wendy's serves, etc., and it's just following their recipe with their ingredients, i.e. being an end user. Nobody is complaining that they're not being asked to build databases because they accept that oracle and mysql will do the job. Yet they're complaining that they're not being asked to build e-commerce software when it's the exact same scenario - a basic need being filled by readily available software. Programmers saw repetitive tasks & wrote software to take care of it & then the generous ones gave it away for free, and the ambitious onces sold it. Either way, once the solution had been solved by a million programmers, someone realized you should't have to solve it again & made the solution available. 2. In another thread on voice recognition, someone said that MS bundled a voice recognition package WITH windows in every version from 98 on. Windows comes with a word processor, web browser, email client, messenger, calculator, and a million other small useful utilities. Yet nobody's complaining about the existance of this stuff taking away possible jobs creating word processing programs and voice recogntion software. 3. Most conservative companies will run their mission critical applications on major brand products - sun servers & oracle databases, for example. Most likely it's because nobody wants to stick their neck out and recommend linux & mysql because if oracle breaks, someone other than you is answerable - someone at another company. If mysql breaks, either you fix it, or you're fired. Products like linux & mysql allow the little guys to swim with the big guys & possibly overtake them in the marketplace. Otherwise the barrier to entry would be too high. Imagine google running 80 thousand solaris boxes with oracle. Nevermind that google's OS is actually custom built (or tweaked), the fact is they were able to start small & cheap and it helped them enter in to the market.
Sat 03 Jul | . | For argument's sake let's say that certification comes to pass, and programming in a certain jurisdiction may only be performed by people who have met a particular benchmark. What is your point?
Sat 03 Jul | www.marktaw.com | Then programmers will be able to extort huge amounts for their services because to hire anyone else to do it would be illegal.
Sat 03 Jul | Double . | Yeah, what Mark said. In my original point I was commenting on the question about how far programming would be commoditised. I pointed out that, sooner or later, bureaucracy would catch up with it, because there are lots of people with nothing better to do drawing up the documents right now. So this will come to pass, and then the existence of barriers will limit the trend to commoditisation. This will also turn programming into one boring job, but at least it should provide a predictable career.
Sat 03 Jul | Matthew Lock | Why all the worry about Open Source? Open Source's greatest successes were already commodities anyway: web servers, databases, UNIX like operating systems, scripting languages etc. You weren't writing those systems anyway so how will they commoditise you out of business? On the contrary you can do what Yahoo, Slashdot, Google and others have done and use these open source commodities to build a new service or business, and the basic cost to get started is just your time and a cheap computer.
Sat 03 Jul | . | Barriers will absolutely not limit the trend to commoditisation. Barriers will accelerate that trend. Programming labour is already far too expensive for the majority of projects. To make it even more expensive will only serve to a) push more projects off shore, and b) push more people toward purchasing off-the-shelf solutions.
Sat 03 Jul | Drudy Mialnam | I thought the point of things (at least in the Microsoft space) like Access and the VBA capabilities in the rest of Office were supposed to encompass much of the 'schlock' programming. Those one-offs and low-volume, small user population line o' biz applets and apploids. Throw in VB6 banging against SQL Server and you have another big chunk of the littler stuff covered. Many of the larger-scale enterprise automation burdens would be covered by uber-packages like SAP et al. These too need the attentions of a certain class of specialist developer for customization and maintenance of customization, albeit not via extensive 'coding' as we traditionally thought of it. Then there are the rougher packages, more of a framework that requires a good deal of 'real coding' customization. Oracle peddles a number of these (inventory systems, etc.) as do many others out there in the package market. Doesn't that cover the 'commodity' space fairly thoroughly? This would still leave a good chunk of work in a larger organization for 'real' from-dirt development to meet more truly specialized needs. True, after investing in a few of those commodities above a smaller company has about shot the budget for software. Without some pressing business need I imagine they're forced to make do with an ill-fitting package instead or else simply do without. Package customization often consists of mind-numbing routine worse than Cobol report programming back a few (or not so few) decades. Other times it requires specialized knowledge of the package's guts that can be expensive to obtain. This is probably where outsourcing and offshoring come in: a SAP or an Oracle or IBM has warehouses full of people overseas heavily drilled in their packages, whether by those vendors themselves or by opportunistic 3rd parties specializing in body shops. Part of the problem is that decision makers often can't distinguish between some guy whacking out quicky Access applications and somebody producing fairly high quality applications in Access. This continues further into other development that isn't based on RAD platforms like Access. Unless you work in a specialized space like embedded software it becomes difficult to get much respect. This is sometimes made even a bigger problem because 'LOB hacks' are often moved into positions where a real developer is actually required. Then you get funky, limping, perpetually broken applications - and very seldom THAT on a reasonable timeframe. The custom web application space is rampant with these. Stuff that doesn't quite work, works but had many of the requested features left out because 'it's impossible,' works but can't scale to handle the real world load, etc. Just as you can't swing a cat without hitting a hundred VB or Java 'programmers,' every idiot thinks they know how to develop in ASP, PHP, JSP, etc. This serves to tar developers as a class as expensive, slow, and incompetant. If an outfit does hire a real programmer whether internally or as a contractor I think they view it as an anomoly of sorts and mentally write it off. They seldom seem to reflect and consider the problem may be with their hiring practices. Why do they think developers are that much different from musicians? In both cases some strong combination of talent, education, experience, mentoring, and practice, practice, practice is needed to produce a competant practitioner. Of course Joe MBA probably thinks his nephew has what it takes to be a musician too. Why hire a guy who's paid his dues and proven his mettle? Nepotism and cronyism are God-given rights, aren't they? Just don't cry over the results and complain that developers are paid too much. You bastards.
Sat 03 Jul | Michael Ealem | I think there may still be money to be made in what I call 'janitorial' programming. I used to make quite a tidy sum as a 'Mr Fixit' - in one case, a contractor was fired 3/4 of the way through a project, and I was brought in to finish things up and get the app working (which it wasn't) one month before the Thanksgiving rush. In another case, a client had paid a *ton* of money to Wipro for a voice-recognition telephony app which supposedly just needed database connectivity added, a 'two weeks max' job according to the manager. Well, six months later after a total rewrite (and this case it *had* to be a rewrite - believe me, neither the client nor I wanted to have to do it), I finally had a working app (and a opinion of the quality of outsourced projects that I won't go into in this thread).
Sat 03 Jul | Ethan Herdrick | Tayssir John Gabbour - Has Paul Graham written anything about people paying for subscriptions to web-based software since his essay on his company, Viaweb? Because that's based on experiences from quite a a while back.
Sat 03 Jul | Dennis Atkins | > 'Why is software so expensive'? I haven't read the book, but I find its existence instructive. To me the question betrays the fact that: a) The labour component of our product is WAY too high You sohuld read the book. DeMarco shows tat the cost of software is a bargain but the marketplace is accustomed to a lot of whining, complaining and not appreciating stuff for its value and programmers don't communicate or defend that value, but roll over and decry its cost as we have seen here, making them look like dogs to the management. If software costed too much people would not buy it. It is simple as that and anyone who says otherwise is a fool.
Sat 03 Jul | Dennis Atkins | > for most of what they do they can't find what they need at the Walmart's of bits and bytes Ah yes, WalMart. Did you know that all of WalMart's software development is done in-house? They were asked when they would outsource it and they said 'never' because they claim that their software is the core of what makes them competitive. But what do they know, they are only the largest company in the world.
Sat 03 Jul | www.marktaw.com | Yeah, I could imagine outsourcing certain work, but once I've identified the core of what makes me or my business competitive, I'd never outsource it. Though I am surprised that Wal Mart attributes it's success to programming & not processes, slave labor, choosing good locations, and so on.
Sat 03 Jul | Tayssir John Gabbour | If he wrote more, I don't know about it; maybe googling could turn something up. I suppose he's more interested in Arc and combatting spam, than money nowadays. Speak of the devil though, he claimed Walmart and McDonalds grew big by designing systems which could be reproduced all over the world. (McD franchises and Walmart stores.) By writing rules so precise that it's practically software. Write once, run anywhere. Seen in that light, perhaps Walmart's dependence on computing is more understandable. Or maybe it's just a cute metaphor which tickles me.
Sat 03 Jul | Tayssir John Gabbour | Sorry, I was speaking to Ethan in that last one.
Sat 03 Jul | Dennis Atkins | > the generous [programmers] gave [software] away for free, and the ambitious ones sold it. Wow what a loaded statement that is. Let me try a hand at that game: 'the moronic programmers gave software away for free, and the intelligent ones sold it' > Windows comes with a word processor, web browser, email client, messenger, calculator, and a million other small useful utilities. Yet nobody's complaining about the existance of this stuff taking away possible jobs creating word processing programs and voice recogntion software. Last time I checked you had to pay to get Windows and the million small utiliies that are included. You also pay extra on top of the OS to get the big word processors like Word even when they are bundled.
Sat 03 Jul | Dennis Atkins | 'I am surprised that Wal Mart attributes it's success to programming & not processes, slave labor, choosing good locations, and so on.' WalMart's process IS the product of their IT department - they are are one and the same. The knowledge of markets and pricing that their IT enables is what makes them filthy rich and they are aware of this. Outsourcing their IT would destroy their entire competitive advantage. Slave labor is also available to WalMart's competitors - this is not an advantage they hold. Choosing good locations is also enabled by their IT work.
Sat 03 Jul | Midlands | Perhaps I'm just overly optimistic, but I think this whole discussion is a bit silly. Just as in other industries, certain *kinds* of programming will become 'commodity' and thus won't be worth much, either as sales or as something to employ people doing, while the edge of what is new and innovative will continue to move. If you sit still and decide 'I'm going to work on writing [UNIX-like operating systems, web servers, word processors, JSPs/ASPs, whatever] for the rest of my life', you're toast. At a certain point, the problem becomes essentially solved except for a few tiny markets, and the value-add is near zero. On the other hand, I have an incredibly hard time believing *all* programming will just become 'commoditized'. What we do, as programmers, is create devices (programs) that manipulate information. To say programming will become commoditized is saying that there will be few or no novel ways of manipulating information that can offer large financial advantages to people. To me, that's hard to believe -- whether it's designing car engines, the aesthetics of new plastics for products, analyzing market data, or doing intense bioinformatics, the right type of information has historically been able to confer immense advantages upon those who have it. Early in the industrial age, steam engines were new and innovative and could make you a bloody fortune. Now, they're absolute squat; we've moved on to, say, modern internal combustion engines, which, if you're GM and can design one that is 10% cheaper to build, can earn you millions and millions of dollars. Bug tracking systems will become completely commoditized one day -- probably pretty soon. Web servers already have. But as each becomes commodity, new opportunities occur. In the late 1800s, someone said that 'everything that can be invented, has'. Tell that to the 20th century. Honestly, seems like the same sort of thinking here -- I have a hard time believing it.
Sat 03 Jul | Dennis Atkins | A 'generous' person gives to needy people, family and friends, and charitable organizations. A stupid person gives away the sweat of their brow for free to big for-proift buisnesses. Surely this is obvious. It is a corruption of the word generous to apply it only to people who are so dimwitted the best idea they can come up with is to work for big profitable corporations for free.
Sat 03 Jul | T. Norman | 'WalMart's process IS the product of their IT department - they are are one and the same. The knowledge of markets and pricing that their IT enables is what makes them filthy rich and they are aware of this. Outsourcing their IT would destroy their entire competitive advantage.' 100% agree. Many companies mistakenly think that because they don't sell software, IT does not provide a competitive advantage. But the reality is often that their operations are so tightly tied up with IT -- that the difference between one company that can produce X widgets per employee and another that produces 2X is mainly due to the difference in their IT systems. Or the reason why one company can bring a product from concept to market in 1 year while their competitors take 2 years is because the former has IT systems that are more flexible and can more easily support the development and distribution of new products and business rules.
Sat 03 Jul | Tracy | I work for a major company in a so-called 'dying rust belt' heavy industry. The industry, the company, and parts of my specific plant have all been operating for over 100 years. Some of the 'simple' products (by current standards) that we used to make did indeed become commodities. We tend not to make them anymore, and some of that business has indeed gone to developing economies, often (by the way) with sundry and underpublicized costs. We have, however, been able to use our competitive advantages - expertise, infrastructure and so forth - to add value in ways that benefit our company, our customers, and consumers at large. Not a day goes by at our plant when our list of projects - the officially prioritized ones as well as the ideas that float around in our heads - isn't longer than we really have time for. I'm not an IT professional, but I think both sides of this discussion have a point, and parallels to the industry I work in. The innovations of a mere 5 years ago (!) are now the province of grunt-level code jockeys - no disparagement meant, as we all need to start out as grunts of some sort :). But my goodness, as I sit at my computer and poke around the Internet, even I as an uninvolved layperson am overwhelmed by the work that appears to need doing! Just to tame the chaos that currently exists! :p (Sorry... :D) Seriously, it just does not seem to me as though IT is a mature industry. Rather, the potential to apply computing to the endeavors of mankind seems almost mind-boggling.
Sat 03 Jul | Matt Conrad | Tracy-- Hear, hear. To say that there won't be a market for software in 20 years is like saying all the problems that can be solved with computers will be solved--and solved well. Even if we stayed stuck with today's technology, I think we'd still have new problems to solve 20 years from now. Of course, we'll actually have a completely different tech and data infrastructure by then, and there will be opportunities to do neat stuff that nobody is even dreaming of today. Who imagined the internet, 20 years ago, as it actually exists today?
Sat 03 Jul | FullNameRequired | this discussion is happening far too early IMO, there is no danger of all software problems being solved....and even once they are, the solutions will inevitably present us with both new and better solutions and new and bigger problems. also, every solution needs to be adapted as required to each separate problem domain, and the # of problem domains are growing.....even the best solution for a particular domain depends on the specific circumstances of that domain. run out of software problems? its more likely that we collapse under the load.....every good computer professional I know is overworked, not underworked.
Sat 03 Jul | Dennis Forbes | 'To say that there won't be a market for software in 20 years is like saying all the problems that can be solved with computers will be solved--and solved well.' Who said that there won't be a market for software in 20 years? Saying that a large percentage of software developers will be doing something entirely different in 10 years doesn't mean that there won't still be a credible number of people working on making a better browser or a cool image recognition app. Having said that, the cold, hard fact is that the _vast_ majority of software developers work as corporate developers, developing in-house proprietary solutions for large corporations. Increasingly they are finding their task marginalized to simple 'customization' of off the shelf packages, and there is extremely little growth (and in many cases the headcount is steadily reducing). While the-other-Dennis mentioned Walmart earlier, it should be noted that Walmart is an extreme exception, not the rule -- most businesses define their strengths by a core value of their particular business, be it good quality suits, great life insurance products and service, or gidgets that are made to last. Many, or rather most, of these firms see IT as a commodity, and they're perfectly willing to use the same system that all of their competitors use (and indeed it is a competitive disadvantage not to - paying millions on putting together your own system when the rest of the industry is buying a more polished, feature packed System X is counter-productive. In general the retail field has whittled down to just a couple of standard POS/backoffice apps, for instance). How many corporations make their own operating system? Does Walmart? The natural conclusion is that many organizations are going to spin off IT where it is not a core competency, and much of that IT will be centralized. The number of people working on software, at least for non-IT corporations, will steadily decline. Perhaps other markets will take-off and absorb the impact, but it can't be ignored that the bread and butter of IT is going to get a little stale for a while.
Sun 04 Jul | Dennis Atkins | > How many corporations make their own operating system? Does Walmart? OT basically, but I think so... didn't WalMart have a custom version of Linux designed for their store brand $299 computers?
Sun 04 Jul | Dennis Forbes | No, Walmart sold PCs with "Lindows" on it. That project began outside of Walmart, and was only tenuously associated with them.
Sun 04 Jul | Dennis Atkins | OK. 'The number of people working on software, at least for non-IT corporations, will steadily decline.' I don't know about that. Do you mean that more and more firms will consider themselves IT rather than non IT? The number of people working in the field will certainly increase. Likely salaries will be quite low and most of those jobs will be overseas, but the number is going up. It's certainly not true that all important problems are being solved and fewer tech people are needed. On the contrary, the more problems that are solved with IT, the more IT people are needed. Look at filing. It used to be done by secretaries. Now it is done using computers. The number of computer people and their salaries greatly exceed the number and cost of secretaries in the past. Part of this is due to the fact hthat now that the data is on the computer, it suddenly seems necessary to sort analyze and visualize it in a million new ways.
Sun 04 Jul | Woodentongue | Dennis wrote: 'Look at filing. It used to be done by secretaries. Now it is done using computers. The number of computer people and their salaries greatly exceed the number and cost of secretaries in the past. Part of this is due to the fact hthat now that the data is on the computer, it suddenly seems necessary to sort analyze and visualize it in a million new ways.' Somebody probably said this when they dug the first coa