AlarmBellPhrase''''''s from managers: * "We want to hire people who stick up for what they believe in, and who won't take NO for an answer!" * "We use..." AgileAlarmBellPhrases! * "I presented your ideas to upper management, and they're really excited." * "That last project was a real mess, ''but this time we're really going to do it right.''" * ItsOnlySoftware ''True Story: Long ago PHB was a hardware designer. He and team designed Nuc Med imaging station from ground up. After all electronics had been prototyped and built somebody mentioned brains. "Oh," he said, "the hard part is done. Now it's just a simple matter of software." Fill in the rest for yourself.'' Therac-25? * "This project is not going to be like that last debacle. On this one, we're going to be using the methodology described in this book. Everyone gets a copy." ''[I assume this still applies if the book in question is ExtremeProgrammingExplainedEmbraceChange with a copy of ThePragmaticProgrammer for extra background?'' Ayup. The blood runs cold.'']'' * "Work smarter, not harder." ''Why does this set off an alarm bell???'' Because they're hoping you can show them how. Without upsetting any of their petty little notions. Or requiring any change to the budget/schedule. Or, it can mean "we're not paying you extra if you work overtime". * "There are no problems, only solutions." * "There are no problems, only challenges." * "It's not a problem. It is an opportunity." * "I follow ... except for this ''inheritance'' concept..." * OnTheJobTraining. ''(Often means, "We won't train you, but you are responsible for doing the job perfectly / quickly anyway.") (Also: "We don't have any training concept.")'' * "WeWillTry..." * VeryGoodSeats * "This is a 40-hour-a-week shop. Honest." ''(Usually this means that no one is allowed to put more than forty hours on their timesheet, regardless of time actually worked.)'' * "I know we have a pretty ambitious schedule, but I think we can make it." * "I know it's an aggressive schedule, but we're just going to go for it." * "We just need to find a few more bodies and then we can get back on schedule." (In fact, any time the word "bodies" is used, you should take note.) ''Never trust anyone who uses words like "resources", "heads", or "bodies" to refer to people.'' * "We don't want a nine-to-five kind of person." ** In other words, single people with no life outside of work * "Failure is not an option" ''(Translation: "There is no hope, I need someone to blame, and you're it." aka "Failure is a certainty")'' * '''"The QA department will do all the testing for you."''' ''(...freeing the developers to write more untested code.)'' * "To be perfectly fair, we'll decide all technical issues by democratic voting." ''(...and to save time, we'll force a vote before anyone has a chance to discuss or think about any of the issues.)'' * "Oh, come on, I CouldDoThisMyself in a week." * "Don't tell anybody else this, but ..." * "We're going for a BestOfBreed approach." * "We don't need the top level quality : we have to deliver quickly." * Proactive not reactive: "We will fix bugs before they occur." * We have a flat management structure here (translates - we have a feudal management structure here) * ''I'm the team boss. Every decision made on this team is going to be mine.'' * Do it however you want. I don't care. (Inevitably followed two weeks later by "Why did you do it this way? I thought we talked about this!") * "I hope I don't offend anyone with what I'm about to say..." * "I don't want to tell you how to do your job, but..." ''Isn't any phrase ending with "but" an alarm bell phrase?'' * ''This team has not been working together as a team. I am going to enforce that they do from now on.'' ** A variation on: "The beatings will continue until morale improves." * "I view these issues as positives rather than negatives ..." * "the extent and magnitude of the corrective action must be based on a business rationale rather a purely technically driven concern ..." * "I am very confident so far based on my discussions with you all that we are proceeding in the right direction given the business-driven rationalization and justifications I am assessing as applicable to this project ..." * "If I am totally out of line from a technical perspective then raise that issue with me right away but temper it with your understanding of the business needs. I will do the same given my understanding of the business needs rather than a purely technical concern ..." Note that all four of the above came from the same guy. -- LamontCranston * ''Look, just give me something for the demo!'' * "You need to implement all these changes by ''deadline'', because we've promised the new version to customers then." ''[W/O asking a single engineer if ''deadline'' could be met even by employing the entire resources of The National Academy of Sciences.]'' * "''Now'' that I think about it..." * "Marketing needs this..." * "Since when did you become an expert on (''insert business here'')." * "It ''has'' to be done by then." * "I can't explain ''that'' to my boss." * ''Just'' ..., double when preceded with ''can't you'' * "What are you doing on the weekend?" ''Can be one of the NonAlarmBellPhrases'' -- ColJac * "I/we have an Opportunity for you..." (== Something that no one else wanted to do) -- JamesTwine * "I/we have a Challenge for you..." (== Something that no one else could get to work) -- JamesTwine * "This is a strategic product for the company." (Meaning that you will be stuck maintaining it for the rest of your career.) * "We know you're busy preparing for next week's installation, but could you prepare a presentation for some customers we are bringing in tomorrow?" * ISO 9000 * CMM * The TechnicalLead just quit, but don't worry: the system is pretty much finished. * "You've got to stop thinking of this in technical terms and start thinking of it in business terms..." ''(Translation: "I am going to ignore the facts you've just shown me and pretend you are promising to complete the tasks I gave you."). Usually occurs when shown that those tasks cannot be completed on time, or at all.'' * "I'm really swamped, trying to get all these new projects going. I'll get to your {questions, staffing requests, purchasing requests, change orders, status reports} next week." ** And for an interesting contrast, try telling the manager that ''you'' are swamped, and unable to get your work done, and note how reasonable the reaction is. * "This month's paycheck is going to be just a few days late..." (See WarningSignsOfCorporateDoom) * "I need a rough estimate for ..." * "You don't need requirements, I've told you everything you need to know." * "I need you to start ... but you've only got (RoughEstimate /2) to do it. * "Just get on with coding." * "We can shave time from the testing schedule." * "You just don't understand the commercial reality." * "I have every confidence in you." -- ''Manager said X time, you said 3X, manager really means he promised the CTO it would be done in X/2. And guess who gets the blame when it really takes 10X'' * "We scheduled two weeks for integration in November." ''Actually said one March about a project that had its first partially working demo 3.5 years later. -- RobertField'' * "You've demonstrated an amazing ability to get a lot done in a short period of time, without needing much direction or support." (Meaning that you are about to be assigned a very large task, with a very short deadline, with no direction or support.) * "Well, I think your highest-priority task should be X." (Said by three managers on the same day, with three different values of X) * "Don't make any code changes that I might not understand." * "The best way to get up to speed on this project is to do some debugging." * "For diversification purposes, we are bringing in staff from India for training." * "The most important goal of maintenance is to minimize the output of 'diff.'" ''[Yes, this is an exact quote from a pointy-haired-boss.]'' * We delivered it with zero engineering effort [the people who actually worked on it weren't part of his CostCenter]. * I know the items on the schedule don't match what we actually did. I just need to know what percentage they are complete. * I need your planned work schedule, from now until [3 months later], in two-day increments. [really happened; not an exaggeration] * "We will test no software before it ships. If Microsoft gets their users to pay for beta software, so can we." - ''I swear by the Goddess that I heard a company owner say exactly this. In a very small, niche market company, too, regarding the same project I mentioned in BadProgrammer and CodeBehindTheForm. - JayOsako'' * "I need you to be an expert in ''x'' by next Monday." - ''spoken by the same boss above, to his lead graphic artist the day after I left, where x == MicrosoftAccess. The artist, who had no interest or experience in programming, literally laughed himself out of his chair when he heard this. - JayOsako'' * "We're one big family here." * Since this is a salaried position, we expect you to think of it as more than just a NineToFive job. * "Planning just slows things down; we need to be quick and nimble. By the way, it has to be reliable." ---- AlarmBellPhrase''''''s from programmers: ''You are in for a long, fruitless conversation:'' * "EmacsVsVi" (...when everyone knows that ed is the standard text editor. ;-) * "...in a perfect[ly]..." (''indicates that the conversation is about to leave KnownSpace, e.g. "in a perfectly free and efficient market" has no referent in economics, it's putative domain)'' * Any PHB phrase with "we" in it. ''We have (or are going to have) questionable code at best, completely alarming code at worst:'' * Pascal has a perfectly good goto construct - why shouldn't I use it? * "... I'm told that the ugly version is much faster. I haven't tested it myself though." (from StringBuffer) * ... "thingy" ... (translates as "I'm not even going to try to describe what I'm talking about"). ''In IndustrialDesign we used call a components we didn't have properly thought out a "mechanism". And that function is achieved by this, um, mechanism here'' * "The compiler runs the code just fine, regardless of how it's indented." ''(...from a programmer who consistently produced randomly indented code.)'' * It's just a LittleWhiteRedundancy * We think that's an operating system bug; there's nothing we can do about it. * "I don't like it, but they made me do it this way." (''They'' = managers, customers, senior developers, tool vendors, ...) * "We'll get it right next time." * Oh, we have something like that in another project, it shouldn't take too long to just cut and paste it in. ''Except the old project is legacy code, written in C++ by Fortran programmers, with no variable name greater than 8 characters, a shortness of vowels, and about 150 undocumented variables referencing other parts of the code. And everything is precalculated into arrays named a[], b[], c[], etc.'' ''The program doesn't work:'' * AlmostCorrect * "... theoretically ..." (Translates into "not really" according to DavidParnas) * ''"Virtually" also translates into "not really."'' ** ''"... gets your dishes virtually spot free."'' ** ''"... will virtually eliminate bugs."'' ** "... virtually certain ..." (as used by English lawyers - really!). ''This is the modern English version of "Beyond Reasonable Doubt". It was felt that the traditional phrase was misunderstood by the public, some thinking it meant "beyond any doubt". When a survey shown that some people would not even say that the sun would rise tomorrow "beyond reasonable doubt" they decided to use the modern phrase that conveyed the original meaning.'' * "ItAintBroke" * WeWillCleanItUpLater * It works fine on my machine. The test machine must be configured incorrectly. * We don't have time to do it right. * Don't worry about all those compiler warnings. * We can fix it on-site. * It was just a one line change. * It's done except for testing. * It's 85% complete. ("85%" seems to be a MagicNumber.) ''This code will never be done:'' * We are going to rewrite the whole application from scratch. (RewriteCodeFromScratch) ''While I know what you mean, the one time I got away with doing this, it was a great success. The resulting system was stable, easily maintainable, and fast... but there was also no deadline to meet in getting it done.'' * "This isn't the '''real''' one." * "... then it's just a case of cutting the code." -- PeterForeman * RealSoonNow (from JerryPournelle in ByteMagazine) * We have two weeks for testing at the end of schedule. * Let's all work together to minimize the impact on the schedule. * '''Manual Merge''' ''e.g. "It's all finished. We just need to manually merge the source code from the 3 independent teams that have been working on it"'' ** Much worse: "''You'' just have to manually merge..." * We'll do it this way; it'll be so '''cool!''' ''(Or is "Cool!" one of the NonAlarmBellPhrases? ;-)'' * We chose the monolithic approach. * We will just write a quick interface to bring the two together... * We need to rethink our approach. * No Problem! * "I can fix the compiler to optimize the code better." * "It's done, I'm in cleanup now." -- ''accompanied by squirming in chair and lack of eye contact. Means: I've typed in a lot of functions/members and now bugs are appearing like cockroaches on a day old birthday cake. -- RobertField'' * "We'll just write our own content management system." * "We'll start developing our own content from now on; our web developers can do that in their spare time. How hard can it be?" ''Others:'' * The users will just have to learn a little bit about network administration. * ''Is it just me, or does the phrase "final solution" make your blood run cold?'' * Team-building is a manager's responsibility, not mine. * The easiest way to create a new application is to copy all the source files from an existing app, and then just make whatever changes are necessary and comment out the parts you don't need. To be really productive, you can copy-and-paste sections from different applications. * ''I'' am The Architect ---- AlarmBellPhrase''''''s from computers: * Keyboard not detected. Press to continue. ''How is this an alarm? It's probably just unplugged. The message is of course rather humorous.'' * There have been 4234 failed login attempts since your last login. * /bin/sh: file not found ''Just plain "file not found" when running a command is pretty mean. Usually means some library got blown away'' * "Drive C Not Found" (Wintel PC's) * "Segmentation fault" coming from any normal command or util you can these days expect to work 100% of the time. Often hints that the hardware (memory) or a common DLL is failing. ---- AlarmBellPhrase''''''s from clients/customers: * "We're not too concerned about network security." ''Also, "Don't worry about that, we have a firewall."'' * "Exactly what is an ''operating system'' anyway?" * "I'm not sure what that is, but I've been told that we need it." * "My sister is a programmer, and she told me this should be pretty easy." * "I'm not sure who should witness your acceptance test. We'll find ''somebody''." * "Another department has a similar system. Is continuing development of this new system a duplication of effort?" * "I know you specced a T1, but our network department says a 128K connection with burst capabilities should work just as well." * "We found someone else who said they can do it for half the fee you quoted. We'd like to give you the work, but you'll have to lower your price." ''Well, you have my number when you want it to actually work.'' * "Don't worry about that feature, we'll do it in phase 2 (3,4,...,N+1)" ''Where that "feature" will require rearchitecting 75% of the system'' * "Could you write a temporary version of the program so things will work together; just until our partner finishes the real one. No, the code won't get adopted for very long and you won't get stuck maintaining it. Yeah, just bang out something quick, don't worry about maintainability." ... and the previous guy working on the code believed them. * I tried CVS once. Version control is too much of a hassle to set up. ''Also, package management or version and dependency tracking are too much hassle to use'' * Unit testing requires an external library and project settings, that's too complex. * All these tests are taking time that could be used in adding functionality. ---- '''Can we keep this demo?''' While demonstrating a new application generation tool to a client: * ''Give me a concept, and I'll rough out a demo to show you how quickly this can be done.'' * Oh, could you? Great -- how about a little thing that keeps track of, oh, say, internal legal time billing? Yes? * ''Sure! >clickety, clickety, clack, ching!< Okay, so, see here's the stuff you outlined ... and you just ... and then you ... isn't that cool?!'' * Wow! '''Can we keep this demo?''' * ''Sure! It's just a sample of what we can do for you.'' '''...''' and 5 years later we were still maintaining the "demo" for them. ''Or, spent 300k adding enough features to the demo to make it usable.'' ---- We have a great cafeteria, here is the menu: Monday Soylent Red Tuesday Soylent Green Wednesday Soylent Yellow Thursday Soylent Red Friday Soylent Yellow ''At least human protein is more nutritious, and tasty, than the sh9t they serve in our caf.''