5

I work as software engineer in a pretty young company (5 years old) and I'm making a lot of errors that can ruin my career.

Until some months ago everything was great: the compensation is just ok. We had almost always enough time to do things the right way and I felt I would have great career opportunities (like new important large-scale projects to lead).

I always had exceptional feedback from my manager and the other company departments I worked with, about the software I wrote or managed.

About 8 months ago a new project arrived, this was a "career changing project", a large scale application that would open the company to a new market, potentially generating lots of revenues.

Since I was striving for career advancements and I always had great feedback, I ended up to leading the development of this new project. I was prepared for the pressure, from my manager and from the executives, but then real problems started to arise.

Starting from a technical point of view, I wasn't able to take any significant choice. In order to "develop things faster" I was forced to use an already written software made from another software department of another company (part of the same holding). Initially I was ok with that, because on the paper it sounds good, until I noticed big problems in the software structure (this software wasn't really used anywhere before) and a data model and business logic that were completely different from what I need to do.

On top of that, we started work on this software before the requirements were really defined, because an unrealistic deadline was set, before doing any analysis before.

The process in the company has been more or less like this:

  • someone important decided that we will launch this new product on date X, whatever it takes
  • I was forced to start working on this stuff before any defined requirement
  • the "business people" produced some requirements and kept changing them until 1 month before launch
  • I and my team worked about 11/12h per day, for about 6 months, with Saturday included for 1/2 months, in order to release the project. I personally also worked more, after leaving the office.

In these months I raised my concerns to the management but the reply was always the same: "the project must be finished on time, no matter what". I also tried to expose the risks of doing that (bugs, data loss here and there...) but I was forced to stay silent.

Somehow, we managed to launch the product on time but with big sacrifices: no proper software testing was done, the code is pretty much unmaintainable and bugs are not rare. I feel that I have completely lost my credibility with this project; I feel guilt when I look at my code.

Some really bad bugs arose, things like creating some duplicate invoices or charging some users more than one time, in particular circumstances (bugs I caused personally, with my code). I would say that the software is doing a lot better than what I expected but these are still very bad problems.

I'm losing my face as a professional, because I'm responsible for this project, in particular for the invoice/payments part that I wrote personally and we've lot of problems. I feel that people in the company start feeling that I'm not a really good professional like they thought. I was promised a promotion by doing this project, but I fear that these mistakes could cancel that.

I'm also not able to focus clearly anymore, I'm tired, I feel I'm not able anymore to do things well, like I used to. On top of that, every problem now is an emergency and I never have the time to do things in the right way. I feel like I'm in "zombie mode". Even if I started to leave the office earlier, I feel that the stress due to this project made me dumb.

What can I do for avoid losing my professionalism?

How can I recover my "reputation" as a professional? Is it possible in the same company?

What can I do better, now?

My big takeaway from this experience is: never subordinate totally the quality of your work to the deadlines, because when problems arise no one remembers the sacrifices; all they see is that you made a bad job.

2023/06/07 - Update:

Several days passed and that's how it's ended: I got promoted to a manager, now I lead a team on this project. I'm not working overtime anymore and I ensure no one of the team does.

We started to track all our activities (bugs and features) so that project management is updated on what we're doing.

I make estimations on development time with the team and we're very careful to not underestimate the efforts. So far we haven't missed any deadline.

Sill, there are critical bugs and lot of pressure on new developments, but I managed to don't worry too much about that, we're doing our best and solving all the problems step by step.

We're also managing to improve some code here and there, to improve software quality.

I'm a professional and my job is to make things work well and develop maintainable quality software. I can't do shit just because the CEO wants something real quick and nobody wants to say no (you'll pay that later). This is how we're working now and I'm feeling that pays off.

I feel also that I'm doing a good job, we're accomplishing a lot of improvements. We'll see with time if I can continue to work like this or it's just a less cahotic period.

Can we consider this an happy ending?

A huge thank you to everyone which replied/commented my post.

5
  • did you inform your direct manager, or also upper management/executives? who did you try to inform about the risks? and who forced you to stay silent?
    – Benjamin
    May 22 at 9:26
  • I informed my direct manager, who's recently become a director. I talked with him about the mess and about extending deadlines (2 months before launch) but it was not possible. It's a mistake on my side not raise my concerns before
    – lorenzo
    May 22 at 20:22
  • 1
    If you're part of a young company (5 years old), I seriously doubt you're making a lot of errors that will ruin your career. You might ruin the company but there's no guarantee that such a young company would've remained in business anyway. It was probably already troubled from the very beginning if they're hiring inexperienced people to take on such expert-level tasks. You live and learn.
    – Justa Guy
    May 23 at 0:34
  • 1
    A good definition of a professional is someone who tries to do their best work even when they don't feel like it. You can be disappointed, you can be frustrated, you can disagree with management's decisions... but in the end, if you're taking the paycheck, you do the work assigned, even if it isn't the work you would prefer to do. If necessary you look at moving to another department. If necessary you avail yourself of mental health services.
    – keshlam
    May 25 at 15:35
  • 2
    It's a bit late now, but the sounds like a case where the concept of minimum viable product would have been useful to you. That keeps the focus on developing something that can be shipped even if it has to be followed with updates to provide the desired function, it helps prioritize the essentials over the nice to have. Testing being an essential. I have done projects with drop dead dates, including ones where the company would take a major reputation hit if we didn't deliver on time. The trick was to have a subset that we could deliver on time.
    – keshlam
    May 29 at 0:38

5 Answers 5

7

I suspect that the lack of professionalism is more about how you feel than how management see you. You managed to deliver it on time, even if it was buggy. An awful lot of companies seem to work the same way - ship buggy software and let the customers do the testing.

Others have suggested fleeing elsewhere, and that is an option.

If you choose to stay, then you and your team need to get better at firefighting. Make sure you have a functional ticketing system. Every bug report should be recorded, but do check if there's already an open ticket on a bug so you don't have several people trying to fix the same bug at the same time.

Prioritise tickets and decide what's urgent. Keep track of how many open bugs you have, so you have the figures ready if management asks.

If the specification doesn't actually say what the system should do, then classify any bug reports pertaining to that as requests for change. It gives you time to stall them while they work out what the specification should have said, and makes it somebody else's problem.

Don't work overtime fixing bugs that aren't critical.

With any luck, the number of critical bugs should fall off rapidly as you fix the bugs in the system.

23

What can I do for avoid losing my professionalism?

You already lost it. You agreed to be exploited and used as a scapegoat. You agreed to work 12h days for 6 months (something that wouldn't even be legal in my country, since it is so clearly exploitative). You agreed to do a shitty craftsman's job so that professional liars (aka salesmen) can get their fat bonuses. Did you get a fat bonus, too? Well, that was a rhetorical question. We all know you didn't.

How can I recover my "reputation" as a professional? Is it possible in the same company?

Is it possible? I would say "not really" but the real answer is why the hell would you want to? They know what they can do to you now. 6 months is a long time to come to your senses and see someone exploits you. You didn't. In their eyes, it will be seen as gross insubordination if you start now.

I don't say that often or lightly, but you need to find another job. It is hard enough to lead a project where you can make decisions. That already is highly stressful. "Leading" a project where you cannot make decisions is a fools errand.

You said a few times "career". "ruin my career", "career changing". Your career is not with this company. With this software they have put out, do you think they will be there when you retire in a few decades? Your career is not this one company. Your career spans multiple companies.

It is time you drop this company and work on your career by finding a better one.

Make sure you ask the right questions in the interview. How are dealines decided? Do the developers have input on that? If they don't, is more staff hired to make it feasable? Who makes the decisions on tech? Is it management? Architects? Developers? What project management model do they use?

Then pick a company that isn't working you like a mule. You are a highly educated knowledge worker. Find a company that treats you like that. That is professional.

6
  • 12
    +1 it may be hard to swallow but that's the truth. And OP was the one that was supposed to stop the insanity from happening by standing up to the upper management, but didn't.
    – Aida Paul
    May 20 at 6:49
  • the main reasons I want to stay in this company are a salary raise plan I already signed + good colleagues/team. However your reply still completely valid. Yes, a bit hard to swallow but I needed to read that. I definitely did big mistakes and I don’t know if the stress is worth the promotion. Thank you
    – lorenzo
    May 20 at 15:04
  • 1
    @lorenzo I would seriously reevaluate are you going to stick long enough to see through the raise plan, and what is it actually worth it vs what's on the market. Don't expect any of the issues you've faced to be any better, and if you suddenly decide to stand up for what's right (like the deadlines, not working 11h days etc) it's going to be now much harder than if you did it right off the bat. And obviously, the moment you try to fix it, they may just get rid of you, one way or another getting away from the raise plan.
    – Aida Paul
    May 20 at 15:21
  • 2
    @lorenzo The word colleague involves more than just your direct peers. This also includes the managers and higher ups that failed you and this project. You have good peers. Those peers can just as easily move company. If they get fed up with management mistreating them and leave, then so does your motivation to stay. It's just a matter of time before everyone is gone or replaced. There's good peers everywhere. Leave the bad management and find some new peers May 22 at 8:09
  • @lorenzo Do you have a copy of the contract you signed? A future promise is a carrot on a stick. Make sure you have a method of getting the carrot without trust in the goodness of your employer's heart. I can't tell you how many times promotions or raises were promised to me or a coworker if only X gets done, then Y, then Z, then A. Anything you sign at work and don't have a copy of is not in your best interest.
    – David S
    May 22 at 23:15
10

What you are describing sounds like a work environment that is toxic to a tee. It also seems to me that you were thrown in the deep end by a manager who did not know enough to caution you against a role you weren't ready for. My advice would be to reexamine everything you just described through as objective a lens as possible and make sure you are being honest with yourself about your own role in this. For example, did I really make these problems known to my manager ahead of time or can I really blame the lack of project requirements for choosing the wrong software. From there I see two possibilities:

1) The work environment is not actually that bad, but you have been placing yourself under a ton of pressure and setting your own expectations too high. If you find this to be the case, the fix is simple - take a couple days off to relax, talk to your manager about setting more realistic goals for yourself, and try to be more aware of burning yourself out in the future. Or, IMO more likely:

2) everything you just described is accurate. In that case you need to leave. This environment is burning you out, causing self-doubt and likely leaving lasting mental scars that will take a long time to heal. You need to find a more healthy work environment. If you do come to this conclusion, make sure that you don't let guilt over leaving your company to deal with this mess of a project prevent you from leaving. It's not your fault that they put insufficient resources toward this project, and it isn't your responsibility to fix it. Also, focus on being proud of everything you did accomplish while leading this project and try to have a short memory about what went wrong.

1
  • 3
    "did I really make these problems known to my manager ahead of time?" and "can I really blame the lack of project requirements for choosing the wrong software?": the answer is no, I didn't. I did that only when it was too late. Initially all I saw was the big promotion and that made me blind. Now I'm paying the consequences. I think it's not my fault overall (company "politics" also should be considered) but I could have handled that a lot better. I feel guilt also for my team, because I'm not the only one to be exploited and they also did their best, doing a lot of overtime. Thank you
    – lorenzo
    May 20 at 13:21
1

You remember me of my situation in the last company. The only difference --I also lost my health (ended up with spine injury)

  1. Clearly you and your managers are not working as a team.
  2. You kept absorbing the pains --red flag. You should have put your foot down and said -NO. You traded peace of mind for a future reward --which didn't come finally.

Take this as a lesson. Have 1-1 with your manager and see if there are any hopes for you. If not, silently start preparing for a new job.

1

2 things: Inform early, inform often. You wrote that you worked for 11/12h a day, yet you raised concerns 2 months before launch. 2 months before launch is a bad date, as this late in the project, expectations will be firm, and options will be sparse.

Ideally, communication would go something like this, as time progresses:

Hey, I don't have requirements, so I can't judge if 6 months is accurate.

Now we have been given some requirements, I see the existing code doesn't match them. I have to check how much work this involves.

People keep adding requirements, I have a bad feeling about more requirements and the deadline.

Have a weekly or biweekly status meeting with your boss. Talk about things, things that are sure, things that are unsure. I know, people love when others project confidence. But if you projected confidence for months, and then "break" that habbit when it's to late, that won't go well. When bringing this insecurity, ask for help and guidance. That way, you can avoid looking like a complainer, your boss is involved and feels helpful!

About overtime: Don't work so much more hours without informing your boss. In my country, that would be illegal even for most roles, as there is a 10h work per day legal maximum (there are a string of exceptions, of course).

You also wrote that you should have raised this topic earlier, so you realise.

Which brings me to my next point: Blameless post mortem. Usually used for more technical incidents, I feel this can be appropriate here. Have a meeting (or meetings) with the appropriate people, and reflect what went good, what went bad, and what can be improved. Everybody makes mistakes, proffesionals learn from them! When doing these meetings, you can gauge if you want to stay by the reactions. If 6 months of hefty overtime is seen as nessecary in the future, that's a datapoint for you. But maybe everyone understands the negatives, and they aggree to limit overtime of that kind to a week or two, and plan projects in a way to prevent this in the future. Etc... If you manage to organise this meetings and manage to keep them blamefree (!!!), you can get a super professional reputation.

1
  • 1
    you provided very helpful advice, I'll for sure apply everything! thank you
    – lorenzo
    May 28 at 18:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .