What was the absolute worst programming job and why?
-
Agreeing to pair programming at a software house many years ago becuase I though it would be cool to try out a fairly new concept and almost coming to blows because my 'partner' was a complete ****. I think he thought the same about me. Needless to say I'll never do that again!
I'd like to see some real world examples showing that it actually works. I'm interested in agile methodologies but pair programming... I don't know. Does that mean the client pays for two full-time developers working on one routine at the same time (one is a backseater)? Everyone has a different coding style and it may lead to the exact situation that you depicted (fighting). Maybe pair programming is good when you need to improve performance of some routines/modules? Maybe if it involves a complex algorithm it's better to have two brains to think about it? But otherwise than that wouldn't unit tests, naming conventions and coding standards be enough?
-
Hmm, was that component an OR-Mapper? :laugh:
Wout
No, I think (from what I understand off OR-Mapper) that would even be an improvment so... I would give the name but I don't think that anyone here would consider using it so no need to warn people (in my defence at the time I was just starting my career so didn't have the knowledge to tell my boss not to take it, I (and my boss aswell) took the word of that 'experienced' programmer and believed him)
-
I'd like to see some real world examples showing that it actually works. I'm interested in agile methodologies but pair programming... I don't know. Does that mean the client pays for two full-time developers working on one routine at the same time (one is a backseater)? Everyone has a different coding style and it may lead to the exact situation that you depicted (fighting). Maybe pair programming is good when you need to improve performance of some routines/modules? Maybe if it involves a complex algorithm it's better to have two brains to think about it? But otherwise than that wouldn't unit tests, naming conventions and coding standards be enough?
It was a software house that I'd previoulsy consulted for and had helped to write the core product so it seemed a good fit. However this other chap and myself were just not suited to each other and I felt the exercise was more about micro-management than achieving anything of importance. I'm not saying I was always right and he wrong but, after a while, I just couldn't stand the sight of him. I'm okay in a team or alone but not with someone sitting with me every minute of every day (well, it felt like it): it just doesn't work and I've yet to see it work properly anywhere I've been. I have turned down work on the basis of pair programming.
Pawel Krakowiak wrote:
Maybe pair programming is good when you need to improve performance of some routines/modules? Maybe if it involves a complex algorithm it's better to have two brains to think about it?
Indded but that doesn't need pair programming.
-
First day... Me: So, where is the code kept? Boss: Well, I have some copies of it on my laptop, and Steve has it as well. Me: On his laptop? Boss: Yes. But we don't know where Steve is, and he's taken his laptop with him. [Long pause] Me: Are you saying you don't use source control? Boss: I don't think so. But we do back-up the server regularly. Me: But the code is on the laptops, not the server? Boss: Yes. [Longer pause, deep breaths] Me: OK. So do you know which customers have which version? [Even longer pause] Boss: It depends what you mean by 'version'. [Much shorter pause] Me: I just need to get something from my car. I think I'll take my coat...
-
Back when I was new at running a company, I agreed to take on an open ended project. The scope looked to be fairly well defined, and I estimated it would take 2 months to deliver. Oh what an idiot I was - the contract I presented was full of holes, and the client ruthlessly took advantage of us. 6 months later and with the scope blown wide open, we finally delivered the application. Stupidly, we let the client have the source as well - baaad mistake that; they changed the code and then demanded updates in the supported app. This wouldn't have been so bad if we'd known that they'd been mucking around with core functionality. Never again.
Deja View - the feeling that you've seen this post before.
-
The job I had for 4 or so weeks at a game company where the lead guy was reinventing the 3D engine and the company ran out of money and didn't tell their employees, leading them on with "I'll get your checks in a couple days" and then one day, the people financing the game (who stopped financing it, obviously) came in in the middle of the night and took all the computer equipment (which was their property so they had every right to do so.) Marc
That sounds par for the course for most game companies :-D (I'm currently at my fourth one, after two shut-downs and a lay off...)
There are three kinds of people in the world - those who can count and those who can't...
-
Anything that includes one or more of the following statements: - I just need a button that... - We had this system developed for us and would like you to... - It shouldn't be too hard to do... - Our last programmer was on drugs... (true story) - Do you know Lotus Notes? - We have an old system that we want converted to :insert language here: (as if it will happen by magic?!!??!!) - No, we don't have the source code - do you need it? (again, true story) Feel free to add to the list!!
-------------------------------------------------------- Knowledge is knowing that the tomato is a fruit. Wisdom is not putting it in fruit salad!!
The one every game developer dreads :- - Can you make it more like [insert GTA, Halo, WoW or some other top seller here]
There are three kinds of people in the world - those who can count and those who can't...
modified on Tuesday, July 22, 2008 7:57 AM
-
I used to maintain Windows apps written in Delphi 7 which used SQL Server 2000. The client part wasn't using any OOP concepts (besides what Delphi generates, I guess :P) and the SQL part was the worst... Someone thought it would be cool if the code run on any database regardless of its name, so all queries were enclosed in exec statements, like so: exec("select * into table2 from table1") No one heard of table variables, no one heard of temporary tables either. Usually there was one huge stored procedure which did processing from start to end and stored intermediary results by destroying and creating physical tables, everything in execute statements of course. Said procedures used to run 40 minutes on multi-processor servers with a lot of memory and sometimes choked them to the point where SQL Server couldn't run anything else for the duration and spit timeouts. And in the 30th minute you encountered a syntax error somewhere in your dynamic SQL. :D Oh, joy... There was no documentation for the code, but there was also no documentation (or a very sparse one) for the applications, so I didn't really know what was their purpose - every app calculated some financial data and I didn't have a clue what would be the correct result. The funniest thing is there were users who have been working with said apps for like 7 years and even knew their way around some stored procedures, so at times they were able to tell me what to fix (as they were not allowed to do it directly, it had to go through the IT dept.). Ridiculous, isn't it? :laugh:
-
Anything that includes one or more of the following statements: - I just need a button that... - We had this system developed for us and would like you to... - It shouldn't be too hard to do... - Our last programmer was on drugs... (true story) - Do you know Lotus Notes? - We have an old system that we want converted to :insert language here: (as if it will happen by magic?!!??!!) - No, we don't have the source code - do you need it? (again, true story) Feel free to add to the list!!
-------------------------------------------------------- Knowledge is knowing that the tomato is a fruit. Wisdom is not putting it in fruit salad!!
Heh - Yeah: "Put a button", "Shove some data"... I decided to rename the "Post" method (which posted data to the DB) "Shove" on my base object. Id like to add that the words "Just" and "Only" should require a license to use.
-
My current job (which is also my first job as a programmer). CFO that stalls almost every attempt at developing the team and giving body to it. A manager that is fairly new to the task and is on the edge of a burn-out (if not beyond). Requests for self-study are not accepted, because the manager thinks that's not a good signal to the rest of the IT-department (SysOps and sorts) and the trainings that need to take place are going to be planned (not taken) at it's earliest in september. I'm the single .NET-programmer (very junior in experience) and no or litte hired personel for the last year, so no-one to use as a mirror... And a personal thing: they have high expectancies, where I mostly don't know if I can meet them, since I don't know where I stand in the entire .NET-environment knowledge-wise....
I'm assuming you're young and/or just getting started in the workplace? If I'm right here - just go with it. You can learn loads for free on the internet (I've never paid a dime for training anywhere, and the training that my employers have paid for has been no better than training I was able to find at no cost), and you should take every opportunity to do it - piss on what your old-guy control-freak bosses are telling you. You can learn a TON here too... If you have a question - post it! Regardless of whatever faces people put on, we're all just here, and while some may be more organized than you or seem to be more "together", you're just as capable as anyone if you put the time into it. And - if you aren't happy where you are - get your resume out there! It makes very little sense to say that your worst job ever is the one you currently have and NOT do that.
-
I used to maintain Windows apps written in Delphi 7 which used SQL Server 2000. The client part wasn't using any OOP concepts (besides what Delphi generates, I guess :P) and the SQL part was the worst... Someone thought it would be cool if the code run on any database regardless of its name, so all queries were enclosed in exec statements, like so: exec("select * into table2 from table1") No one heard of table variables, no one heard of temporary tables either. Usually there was one huge stored procedure which did processing from start to end and stored intermediary results by destroying and creating physical tables, everything in execute statements of course. Said procedures used to run 40 minutes on multi-processor servers with a lot of memory and sometimes choked them to the point where SQL Server couldn't run anything else for the duration and spit timeouts. And in the 30th minute you encountered a syntax error somewhere in your dynamic SQL. :D Oh, joy... There was no documentation for the code, but there was also no documentation (or a very sparse one) for the applications, so I didn't really know what was their purpose - every app calculated some financial data and I didn't have a clue what would be the correct result. The funniest thing is there were users who have been working with said apps for like 7 years and even knew their way around some stored procedures, so at times they were able to tell me what to fix (as they were not allowed to do it directly, it had to go through the IT dept.). Ridiculous, isn't it? :laugh:
Ignorance is bliss - for the ignorant... Its hell for the rest of us. My fav was a job where nobody had ever figured out how to add dates... The result was a whole new month that occured yearly and a system in which every month had only 28 days. Nice!
-
Another one is one of my current projects. The client came with a small web application concept and called it a web widget. After talking to him I found out he needs a mobile messaging application with user accounts, subscription plans and support for multiple SMS gateways - which should be pluggable so that more gateways can be added later. At first he asked for a proof-of-concept application to see what I could do with a gateway, so I created it. It was thrown away and I still don't understand what he wanted it for... Then he insisted on having weekly meetings on Skype and discussing the project. I started writing a functional specification and creating UI mockups in Visio. After I worked on the mockups and the documentation he had some new features or changed his mind about something each week, so I was back to the 'drawing board'. I told him a few times to slow down and expressed my concern that we will be stuck designing forever if it goes like that and that we should have something working and then build on top of that instead. Meanwhile he told me he doesn't like Microsoft world because there are license costs and he would rather develop this using an open source server/framework/technology/language/whatever (%#$%# red flag for me!), yet he chose to hire me (a .NET developer) to do the job. But he wanted not to use Microsoft stuff if he could, so first we decided not to use ASP.NET controls and ASP.NET AJAX. I had to evaluate some other UI toolkits and chose ExtJS finally (it's great, by the way!). Then he said he would need custom attributes for contacts, in our terms it means implementing an Entity-Attribute Value[^] model. Every blog post I visited (even one where someone shown a complete implementation for MS SQL) said not to do it at all costs. Crap. Two weeks ago he told me they will need email support along the SMS functionality, but I asked him to defer it to a later phase. The whole process took about 130 hours of which we spent almost 20 hours talking about new features and reviewing the mockups, 30 hours spent evaluating toolkits and 3rd party web services and 44 hours writing the spec and working on the mockups. He is angry that he doesn't see any progress besides the functional spec and I heard yesterday that he would have expected to have the working application in that time and budge
-
Straight out of college I took a position with a small family run business. It wasnt just that the job was bad (and the pay was pitiful), but my boss and I had serious communication issues. I literally was handed a napkin with some scribbles on it and was told that the scribbled notes were supposed to be the documentation for the project he had just sealed the deal on. Three months later when there was a critical part of the project that was missing he blamed me for missing it, because it was inside the folds of the napkin. And here I was thinking that all of the documentation was on the front, go figure. Later, when I was discussing my future with the company I expressed a desire to take on a bigger role, maybe lead the team through some projects. My boss was quick to tell me "this is a family company and you dont have the right last name for that type of position." A couple of weeks later I was handing in my resignation. Luckily, since then I have moved through some great learning positions and into a terrific job with a top notch team.
-
Just about any you show up for and accept a wage/salary for. How about this: "We are converting legacy code that was written over 10 years in VB4 - VB6 to RealBasic for use in Mac environments" for $12 an hour. I'm a cook now.
-
I'm assuming you're young and/or just getting started in the workplace? If I'm right here - just go with it. You can learn loads for free on the internet (I've never paid a dime for training anywhere, and the training that my employers have paid for has been no better than training I was able to find at no cost), and you should take every opportunity to do it - piss on what your old-guy control-freak bosses are telling you. You can learn a TON here too... If you have a question - post it! Regardless of whatever faces people put on, we're all just here, and while some may be more organized than you or seem to be more "together", you're just as capable as anyone if you put the time into it. And - if you aren't happy where you are - get your resume out there! It makes very little sense to say that your worst job ever is the one you currently have and NOT do that.
I like to think I'm young (33 y.o.) and am working for this company for 6 years now, previously as desktopadministrator, systemadministrator and networkadministrator. So the company isn't new. And internet is definitely very much filled with enough resources; that's where I got most of the stuff from for the software I wrote in the meantime (so yes, I was able to get some things going). But there is a point at which I don't know anymore where to look for some things. And I wouldn't dare to post newbie-questions in the forum(s) for which I should know the answer myself because of it being working knowledge for any level of programmer.... (no offence meant to this and/or other communities, just my own personal thoughts/feelings)... As for the resume-part... I've started treading that road... This workplace has been 'in development' for nearly two years, now, and only very little progress has been made (we've looked at trainings about a year ago, and still no trainings followed, for example, because of hesitation of the manager and sabotage from the CFO). Since I've been in IT for some years longer, I think I can say this is actually quite bad... (at least I hope never to have such a workplace again, be it in programming or sysadmin).... and now, let's barf a bit an be rid of it... ;)
-
- It uses an Access database and we don't know the admin password. (true story)
Jon Smith & Wesson: The original point and click interface
Jon beat me to the punch! But mine is a combination of Access and "the bosses code". Since I like to type and just finished my second cup of coffee in less than an hour... here we go! At my first corporate job I was going to be a programmer analyst supporting a "suite of applications" which were really just MS Access databases split into a front end / back end setup. All 5 of them were completely written by the boss over the Christmas break the year before, to pitch our company to a study sponsor. I spent my first year learning VBA from a Visual Basic developer, Bill. As I grew my knowledge of VBA and learned of the drawbacks of the JET database engine for large datasets I started to think about alternatives. I know, I know, big mistake that thinking stuff. Anway, Bill listened to my suggestions on how I wanted to fix the bad code and maybe knowing what was ahead and wanting me to learn my lesson, he helped me out. My big plan (and mistake as it turned out) was to replace the monster function that printed reports. To add a new report you had to add yet another if statement to a string of about 85 of them and off you went. I thought that could be improved upon and created a looping function that cycled through all the checkboxes on the reports form with a certain naming convention, then looked up the report name in the database. Not brilliant but better, I thought. I completed it, updated the function in QA and ran some tests with Bill. All was well. The changes went to production for one of our studies. Everything came crashing down because the backend database hand't been updated. I was hung for it and managed to salvage my job only because the boss was not well liked and was already on his way out. I was moved into a project lead role for the system that was going to replace the now notorius MS Access applications where I spent the rest of my time at the company. The boss left quietly and the last I heard those databases were still being used, although only one developer is still on staff who knows how they worked.
Mike Devenney
-
The worst I had was writing an interface between a retail banking system and the cash drawer hardware. The spec was simply JFDI. My boss had every faith that I would deliver and I did. Due to some clever shinnangans, we were tripple billing the client for my time and I got a nice little bonus; no complaint there. The "worst" part was that while I was doing the work I was also supporting the migration of the bank from its old (really bad) system to our new (best in field ;P) system. The migration haqd to be done outside banking hours so it meant working nights in an office the size of a rugby pitch with three people in it. Me, an un-named and ever changing security guard, and the bank's migration manager. He was a complete 'next Tuesday' and had bad-breath to boot. I would do anything to avoid him and he would use any excuse to come over to talk. The only solution was to go to the pub BEFORE work. I started around midnight and worked through to sometime after eight when my boss came in and released me from torment. I spent tfour weeks not seeing any one, sleeping all day, going to work half cut, writing an unspecced interface to stupid hardware and finishing early mornings. Great days! [And Pete, if your reading this, I wasn't /that/ drunk...]
Panic, Chaos, Destruction. My work here is done.
-
Anything that includes one or more of the following statements: - I just need a button that... - We had this system developed for us and would like you to... - It shouldn't be too hard to do... - Our last programmer was on drugs... (true story) - Do you know Lotus Notes? - We have an old system that we want converted to :insert language here: (as if it will happen by magic?!!??!!) - No, we don't have the source code - do you need it? (again, true story) Feel free to add to the list!!
-------------------------------------------------------- Knowledge is knowing that the tomato is a fruit. Wisdom is not putting it in fruit salad!!
_Damian S_ wrote:
We had this system developed for us and would like you to...
That is how my last job started out. They wanted their system rewritten. The original took over 2 years. After I had been there 7 months and made some good progress on the core of the project they came and said we need you to set up this customer on your system. The system not being complete yet, I had to jump through some hoops to get it to work. After that I was never able to get back to making the darn thing work the way that it was supposed to. I was let go just before one year because they suddenly were loosing customers. And of course it had to be my fault.
-
The worst I had was writing an interface between a retail banking system and the cash drawer hardware. The spec was simply JFDI. My boss had every faith that I would deliver and I did. Due to some clever shinnangans, we were tripple billing the client for my time and I got a nice little bonus; no complaint there. The "worst" part was that while I was doing the work I was also supporting the migration of the bank from its old (really bad) system to our new (best in field ;P) system. The migration haqd to be done outside banking hours so it meant working nights in an office the size of a rugby pitch with three people in it. Me, an un-named and ever changing security guard, and the bank's migration manager. He was a complete 'next Tuesday' and had bad-breath to boot. I would do anything to avoid him and he would use any excuse to come over to talk. The only solution was to go to the pub BEFORE work. I started around midnight and worked through to sometime after eight when my boss came in and released me from torment. I spent tfour weeks not seeing any one, sleeping all day, going to work half cut, writing an unspecced interface to stupid hardware and finishing early mornings. Great days! [And Pete, if your reading this, I wasn't /that/ drunk...]
Panic, Chaos, Destruction. My work here is done.
It started out as a good job, creating web apps with PHP. After I completed the first major project, they decided to make the HR lady the project manager on the 2nd major project. The HR lady had no clue to programing, workflow or anything close to application development. Her concern was to make it look "pretty" first and then worry about the data intergration. We had conflicts on a daily basis and in three weeks, I was given my walking papers. She sucked!