11 ms·
The shittiest project I ever worked on
- mjd 13y agotl;dr
- cranklin 13y agolol
- zeckalpha 13y agoI'm sorry.
- zeckalpha 13y agoThe grandparent is the author of the post.
- ovoxo 13y agoHa! I think the people who downvotted this didn't realize that "mjd" is Mark Jason Dominus aka the guy who wrote the blog post.
- steveklabnik 13y agoEven then, the post adds no value to the discussion, so it deserves downvotes anyway. Its a great blog post, and I upvoted it, but its a bad comment, and I downvoted it.
- kbenson 13y agoSure it does. It says that mjd is on HN, and reading this article's comments at least enough to post this, and that he has a sense of humor. I'm sure if someone so desired, they could ask a specific question regarding the story either in reply to the root comment or as a root comment and expect it may be seen by the author, and possibly get a reply.
- steveklabnik 13y agoI think the quality of the other responses to the parent indicates exactly how likely that is. A whole subtree full of gray comments. Maybe I'm just getting old.
- lotsofcows 13y agoIndeed. There's no place for humour on HN.
- alayne 13y agoIt looks like mjd is the author of the linked post.
- ctdonath 13y agotl;dr - A very long, difficult, and complex calculation multiplied by zero is zero. Or in this case, a very long, difficult, and complex database manipulation culminated in an invariant "Call 1-800-555-5555". Somehow reminds me of a co-worker wandering into my cube with a dazed look, mumbling "I just ran an 8-hour database job with the wrong data...I just wasted $64,000...".
- raverbashing 13y agoYes, I had this impression once. It's like a very long function that returns nothing and has no side effects.
- angrow 13y ago>Prudential didn't need an affiliate locator application. They needed a static HTML page that told people to call the number. They needed a competitor.
- jetti 13y agoFascinating! As somebody who is starting to do freelance work a story like this is not only an interesting read but provides insight on what to avoid and when to speak up as I start freelancing.
- epa 13y agoConsider the price you paid to learn a key life lesson which will pay for itself multiple times over. If you learn from the situation, you have not failed.
- ibudiallo 13y agoThis gave me a good laugh, i didn't know what to expect. Just today i had to deal with something at a similar level.
- nekopa 13y agoI never cease to be amazed that the more things change, the more they stay the same. If you removed the dates from this story, you'd be hard pressed to fix when this happened. (Except the static HTML idea is a bit of a give away, no web developer would ever dare suggest a static page in our brave new world of Web X.0)
- ams6110 13y agoIf a static page is the right answer, why would you not say so? Scales effortlessly for one thing.
- steholmes 13y agoI think it was a joke.
- nekopa 13y agoBingo. A surprising number of modern web problems can be solved via static pages - speed, usability, scalability etc. I remember finally turning down one project after failing to convince the small businessman that his site didn't need an unskippable flash intro with techno music. Edit: I think that nowadays web 2.0 needs have been replaced with 'BIG Data'. I have a current client whose data set is less than 30 MB, but he insists that it is not just big data, but HUGE data! Which is a shame, As it is an interesting problem he has, but I will probably turn it down too.
- zeckalpha 13y agoIf Excel can't open it...
- thekingshorses 13y agoJust say we will load data(phone number) using AJAX in JSON format and everyone will be happy. Page is static. JSON is a static file with a phone number. And use jQuery to load the JSON file.
- redact207 13y agoAlthough it's a fun read, it's a classic example of diving into coding without giving a project it's due diligence. There's nothing that's derailed my projects more consistently when I started out as not understanding the user's needs. They'll never tell you what they want, only what they don't want after you deliver something. I think that's the key difference to an experienced dev/BA. One who can actually sit with the stakeholders and build the system on paper and go through each of the problems as the diagrams connect. What you end up with is the stated requirements (tip) and the unstated assumptions (iceberg). These types of projects are easily spotted as they're often called "quick" or "easy", which in layman's means no one's really thought about it yet.
- greenyoda 13y ago"One who can actually sit with the stakeholders and build the system on paper and go through each of the problems as the diagrams connect." Reminds me of an old saying: "If you don't know how to do it, you don't know how to do it on a computer."
- chii 13y agoheh true, but what about if you were going to use a neural network to do some sort of pattern recognition? You dont know how its done, but the computer does! :D
- pgeorgi 13y agonow you have two problems... (because the NN will probably fail at the most inopportune moment and you have no idea to fix either the NN or your actual project)
- rwallace 13y agoThen well and good, but alas situations where that will work and deliver business value are rare enough you can easily spend a lifetime as a professional programmer without encountering one.
- tripzilch 13y ago
- dsugarman 13y agoI'm sure this is the very tough first lesson any new consultant with limited experience would learn. The summary is that the specs are incredibly important, they should be expensive to produce and they should protect you and your client.
- the_cat_kittles 13y agoThe title reminds me of the shittiest software job/project I ever worked on- short and sweet: Got hired off craigslist. It was all php. Their main competitor was "the spreadsheet". Worked directly next to a cold caller that repeated the same phrase over and over again, fake laugh and all. They were all from the same church group and tried to convert me multiple times. Paid minimum wage. In addition to being funny in retrospect, it was a good lesson to me to learn that no matter how shitty your current situation, you can always improve it.
- chetanahuja 13y agooooh... looks like someone has a case of the mondays.
- kabisote 13y ago> These days I would handle this easily; after the first or second iteration I would explain the situation: I had based my estimate on certain expectations of how much work would be required; I had not expected to clean up dirty data in eight different formats; they had the choice of delivering clean data in the same format as before, renegotiating the fee, or finding someone else to do the project. Great advice for dealing with issues we did not consider in our estimate. Had he charged hourly instead of a fixed price, would this project have been less shitty? Edit: Fixed grammar. Thanks b0z0. :)
- deleted 13y ago[deleted]
- b0z0 13y agoProps for trying - project have been
- LordHumungous 13y agoAn hourly rate has the effect of focusing the client's mind a bit.
- lotyrin 13y agoI find that fixed bids they try to take me for a ride, time and materials they are afraid to spend time with me to figure out what they actually want. I have yet to find a customer unwilling to try to doom their own project or a compensation strategy that reliably prevents it - its just tons of work and communication. Unfortunately I'm just an okay coder and most people seem like they actually want a code talk therapist.
- danso 13y agoThe punch line here is great, but even if the specs necessitated something more than a static page, then it'd still be a hard job. If the most critical part of a data heavy project is speccing it out, I'd say the next most important part is the data munging process...and sadly, both of these things are the most overlooked.
- fusiongyro 13y ago> In 1995 I quit my regular job as senior web engineer You had the job title "senior web engineer" when the web was 4 years old. That's pretty cool.
- gcb0 13y agoUS corporations tend to do that. Instead of a big raise, small raise and "senior". That can even be negotiated in hiring, so you may join as senior for a position just created in the market.
- jpmatz 13y agoNot only in the US, unfortunately. I've even seen company creating other kind of superlative, when lead, senior, manager or director was taken. What about "International Senior Art Director" (even if your job is basic graphic designer in a 25 persons company) ?
- SomeCallMeTim 13y agoI had a "Senior Software Engineer" title after only about 2-3 years of real-world programming experience, at age 23 or so. I had shipped a couple games as lead by then, so it wasn't entirely unearned.
- enneff 13y agoBut I'm sure software had existed a long time before you started. The GP's point was that being a "Senior web engineer," when the web itself has only been around a few years is impressive.
- PeterisP 13y agoI'd say that it is trivial - if a new topic starts and is rapidly growing, then after 3-4 years almost anybody who started working on it near the beginning would be better than 99% of everyone else (simple 99% of others are newbies in the are), and his/her tasks would include a say in 'how it should be done' and mentoring those others - so, Senior xxx.
- kamaal 13y agoFor those who don't know about the author of this post. His name is Mark Jason Dominus, the author of one the most awesome programming book that one can ever read. Higher Order Perl, is available for free download. If you read it you will see some amazing insights into programming techniques most people would have never heard of encountered in MegaCorp jobs. You will also grow a great appreciation for Perl in general and understand how it can be an amazing language of choice for a wide variety of problems.
- bionerd 13y agoI know it's probably totally unnecessary but still, here's a link to the free download page of the book [1]. Together with Modern Perl (also free for download [2]) this book completely changed my view of Perl. It helped me see through the misconceptions built (most of the times unintentionally) around this language and made me even switch from Python to Perl. If you're interested, spend a few minutes browsing through one of these books. I think you'll like what you see. [1] http://hop.perl.plover.com/book/#PDF http://hop.perl.plover.com/book/#PDF [2] http://onyxneon.com/books/modern_perl/ http://onyxneon.com/books/modern_perl/
- gcb0 13y agoThe reason the fee was there was to pay for the 0800 thing. Some executive rightly saw that paying you to render that useless would free them of that service and the need for the fee (which i bet was not turning a profit) But, since big companies run on cargo cult... that happened.
- mjd 13y agoWrong.
- PeterisP 13y agoIn pretty much any business, and extremely so in real estate, referral fees are many orders of magnitude larger than paying for a free phone line. I'm not working in real estate, but I'd guess that each referral would earn them at least something like $100 or much more - so forcing the "customer" (not really their customer since they don't sell anything to them, but only to the realtors) to call is the correct business decision. The only WTF question is why they initiated a project that they don't want to use.
- deleted 13y ago[deleted]
- adamconroy 13y agoSounds like poor contract negotiation more than anything. Fixed quotes are very tricky things to navigate. I simply don't go there. If the client insists then I try to negotiate a fixed budget, then when the budget us running dry they can extend the budget or reduce scope. If they don't agree to that I walk.
- nedwin 13y agoSo you would take on a project if they kept paying you per hour, even if the end result was useless?
- adamconroy 13y agoWell to answer that I would need some context. Like : a) Do I need the cash and is the market quiet at the time? b) Are there some other opportunities that might result? c) Is the hourly rate way higher than I could get somewhere else? d) Is the tedium only short term? e) Am I gaining some significant skills / experience? f) Did I give my word to do the job? If the answer to any of the above is yes, I may well accept the project or continue on with the project, otherwise I would move on. I remember when I was working in London, I was on the same contract for 2 years. About 9 months out from the end they extended my contract and we were asked to build a prototype of a system that automated a lot of human elements of the original system we built. We built the prototype, and it was very good, but the funding was pulled and most people left the project. By that stage I was about 4 months from my visa running out, and there was no work to do. So I stayed on and did nothing but about 30 minutes of support work per day and the rest of the time worked on pet projects and amused myself. I felt a little bad about it, as I was earning $120/hr, but I may well have been screwed if I tried to find work with only a few months left on my visa.
- paulhauggis 13y agoThe shittiest project I ever worked on was a php project that was converted from another language (I don't remember which one). This doesn't sound bad, except they used software to automatically convert it. The PHP code had no comments, minimal white space, and the variables were all hex. My job was to fix bugs. I worked there for about a week before I quit in frustration.
- n1ghtmare_ 13y agoWell, I once worked on a Web App that was written in PL/SQL, that produced HTML. Every variable was named v1, v378, vT31 (yeah no order), and the whole app was in 3 procedures each 80,000 lines of code, AWFUL AWFUL CODE. Honestly the horrors. Stuff like: if condition do x else do x I worked on it for a month and it felt like years.
- drblast 13y agoThat's nothing. I had to fix someone else's program once. It was written in PERL.
- josephagoss 13y agoHow can someone suggest auto convert into another language like that? In the long run it would be cheaper rebuilding the entire thing.
- stef25 13y agoEvery developer would agree and every suit would disagree.
- weavie 13y agoI once worked on a project that was auto converted from VB6 -> C#. Amazingly it compiled and parts of it actually ran. We still rewrote the entire thing, line by line and then spent months refactoring it. It was our only choice really, so much of the original code was so unclear and all the original developers had left so it was our only hope of keeping the business logic intact.
- tobiasbischoff 13y agoOne of the best examples of consultant failure i've ever seen. Clearly an example for - not enough questions asked - not listened to the customer Do not ever start building something or proposing a solution if you don't understand the customers problem deeply enough.
- chii 13y agoi dont think the problem lies with the consultant tho - how could he have figured out the actual business problem, if no body bothered to tell him? He was hired to do a particular task, and that task was pre-determined by some "stakeholders" who dont actually know what they want.
- n00b101 13y agoThis is how life insurance companies operate on a daily basis. OP had a pretty shitty deal but he should count his lucky stars that he didn't have to interact with actuaries, who would have multiplied the same problems ten-fold.
- donquichotte 13y agoI am working on quite a tedious project right now. It involves 10 years old, quite extensive, Visual Basic 6 programs. No source control was used. In our company it is practice to hire interns for 3-month periods to work on production software. A mix of programming styles can be found in this project. Some functions return 0 when they fail. Others return 1. Or -1. Or False. Or "False". I love it!
- eterm 13y agoCount yourself lucky there was any error handling at all! My current job involves a lot of old (and new) visual basic 6 and there are parts of our software which don't work once you remove the magic line: On Error Resume Next
- hackula1 13y agoI cracked open some code the other day to find it riddled with: on e goto end
- narag 13y agoI'm surprised nobody, not even the author, has said that the program was useful anyway. But instead of publishing it in the web, it should have been used by the toll-free number operators.
- yitchelle 13y agoGreat http://thedailywtf.com/ http://thedailywtf.com/ material.
- hackula1 13y agoIn that case... TRWTF is that he did not charge them an arm and a leg for all of those planning meetings. If you charge appropriately, only necessary changes get made, and only needed software gets built (most of the time, but you stay paid and happy either way).
- seivan 13y agoMost shitty software is not because of the engineers, but management. Not putting value on good coded and tests.
- paras111 13y agooh !!!
- sfbsfbsfb 13y agoI can highly recommend Flawless Consulting by Peter Block. He covers all these issues and many others. Self awareness is critical to success. If you are inexperienced you need to be able to recognize/acknowledge your inexperience. Then read everything available on the subject and interview every expert you can identify. Clint Eastwood said it best, "A man's got to know his limitations". http://www.youtube.com/watch?v=_VrFV5r8cs0 http://www.youtube.com/watch?v=_VrFV5r8cs0
- hclee 13y agoI could see why development service team always want to get more and more information about a project. Open it more, then you get better return. Fun reading.
- digitalmaster 13y agoWithout a pollyfill to support older browsers this is merely a peak into the future.
- taude 13y agoThe shittiest project? Hmm...if he got paid, not sure I'd classify it as such. A waste of time because of business getting in the way of potential efficiency that they perceived they wanted? Yes. Also, let's not forget that this was 1995 and most big businesses weren't really fully aware of the potential of the internet and the disruption on standard business models that was going to ensue...
- wil421 13y ago"In 1995 I quit my regular job as senior web engineer for Time-Warner and became a consultant developing interactive content for the World-Wide Web, which was still a pretty new thing at the time." I am confused the person stated that they were a senior web engineer but quit to work on a new thing the WWW. How can you be a senior web engineer for something brand new? Just nitpicking...
- Moto7451 13y agoI believe "interactive content" is the key difference. I.e. non-static pages served via CGI.
- cbp 13y agoThis is why: 1. You should spend more time designing (away from the computer) so that you find a _problem_ and then come up with a reasonable solution. Instead of putting together a list of features. (see Rich Hickey's talk "Hammock-driven development"). 2. Think of the sum you're going to charge for your consulting and then multiply it by 4 and charge that because you have to take risk and other factors into account.
- iamjealous 13y agowow! I am jealous. If that is the shittiest project he ever worked on, he really has not too much to complain about. Add to this that this was back in 1995. Companies had no clue what the internet was nor what they wanted to do with it, so this kind of clueless behaviour what the customer wanted was pretty much standard for most companies up to at least 1998 - 1999. The guy has either been tremendously lucky, or he has not worked in too many different projects / companies for the last 18 years....
- misterdai 13y agoInteresting read. However, I helped build a web based system for the management of a bowel cancer screening programme. Considering what would be sent back on the testkits and processed into the system... it's the shittiest project I've ever worked on, but not for the same reasons :P
- LargeWu 13y agoSounds about right. I worked at Prudential about 10 years ago, as a FTE. Our small division mainly ran on a bunch of custom Access reporting applications. It wasn't quite cutting it, because Access, so it was decided that we would build a portal on the company's intranet. The only problem was that we, as accidental web developers, were not allowed to run development web servers on our dev machines, because they were locked down by corporate. We had to use an extra PC that, by some miracle, had IIS, and develop against that remotely. Good times.
- Sami_Lehtinen 13y agoThat's not bad at all, it's sounds more like business as usual. I think it's my regular workday. Btw. Did the customer require extensive documentation, escrow, you to fix their data when they can't get it done (like invalid post area codes linked to wrong addresses, fixing post number / city information based on post area code) etc or looking it up based on street adress or so. Been there, done that. Did you spend several weeks in meetings where they can't decide how their stuff works, and you'll just keep wondering if they'll ever decide what they actually want etc. Of course they're going to completely change that week later etc. They don't have a clue how things should technically work, or even what the actuall business process is. Because they have bought an integration, everything must just automatically work, right? We need to know what females in age range 20-25 have bought during last month. Err, but we don't record customer age or sex? Well, but our management team needs that information. It's sure alarm sign, that they want to know how much "this" project will cost, but nobody really knows what "this" is. Also it's needs to be completed by end of the month. I have declined so many projects, and clearly told customers why I'm not going to do anything for them at all. Unless they accept it as "agile" project, with unlimited budget. Then I'll promise them that I'll personally see that it gets done, but it's going to be expensive. - 15 years of ERP/POS/BI/CRM integration programming & consulting.
- elwinmurton 13y agoSomeone once told me: The client know what he wants, but not what he needs. Success is discovering that before the project ends. Great post!
- cheshire137 13y agoThis got infinitely more readable when I loaded it into Pocket and let Pocket do its formatting on it. Adjustable font size and a more reasonable line width...
- scriptstar 13y agoThe shittiest project that I worked is just finished where we are not allowed to write any test cases cause we don't have time. I just can't believe that I finished fairly big project without writing a single test case. I hate my company, my role and managers, sales people who negotiate tight deadlines. Over all don't work for any consulting companies out there. They care less of the code quality. They just want money and no ethics. My next job will be a product based company.
- kemofo 13y agoIf that's the shittiest project you ever worked on then you're a lucky guy. User's will use a software project for all sorts of political purposes that have nothing to do with you and it does nothing but f up the process.
- etherael 13y agoAsk them what they're praying for, not how to pronounce the Latin.