Deliveries are important, learning is not. What should I do?

6 points by randy_gilette ↗ HN
I just graduated in CS and here I am, in a company of 30 people since a year. I see constant failures in leading, organisation and culture, I'm lost.

As a junior, I need to learn, by my tasks, myself and my peers. I arrived having the same feeling at the entrance at university, knowing nothing.

A recent event: One week before a delivering, we start using my feature in the main app. A need not implemented appears which takes too long to develop. Unknown to everyone, we couldn't guess. The guy was busy as shit. He did a great job with the time he had and I was assigned to other tasks. Another colleague decides to implement a similar software. In 5 days, he writes 2000 LOC with a different approach. Deadline "successful", he saved the day and the project, gg bro. No need to talk about about safety, regulatory and architecture on this.

What made me crazy was that my manager decided to use his software. It was not about ego, more because: 1st: There was no discussion, no list of pros and cons of each software and how we could get the best of both. It just worked for the demo, who cares. 2nd : Is it how people work in all embedded industry ? Giving an illusion of quality to deliver crap, earn time and negotiating time to correct it ? 3rd : There was no time for me to learn how to improve, I was then assigned to another task, kthxbye. Everyone lost money and time. We have to develop features and deliver, quality or not.

I feel tired of trying to convince people, this is how my manager deals with it. I don't believe in those (hidden bad) core values, it stopped being fun. What you guys think I should do ?

7 comments

[ 2.4 ms ] story [ 25.9 ms ] thread
In 10 years (if you don't stop working in the industry first) you will look back on this and realize how green you are.

- working wins, always. How many people do you know who drive cars but can't change their oil. The only people who care about the code, are engineers, and business people when it costs them money.

- You found a blind spot after you were done, but there was NO means to get the changes needed into your code. That says your code isn't as good as you think it is.

- Realize that though you can write code you don't know what good engineering looks like, if your going to whine about it, find another industry.

I never said my code was perfect or near good. I even took time after that, on my free time to rewrite it properly, but still, they didn't give a slight look at mine or the other. One was working, that's it.

The post is not about whining, it's about improving in such environment

Honestly? Start looking for another job. (Don't quit this one until you have another one in hand, though.)

That kind of quality in embedded systems is frightening. That kind of corporate culture is demoralizing and is slowing down your career development. You'll grow faster somewhere else.

My random advice from the internet:

1. When someone does something differently from the way it "ought" to be done, don't assume that the person is wrong. Doing so is a cop out. Figure out the deeper reasons why it is the right answer in the current situation. Dig deeper. What is the business case? How does the organizational culture play a role?

2. Don't own code. There's no "my feature". There is no "his code". It all belongs to the business, the customer, the team, etc.

3. Within budget and on-time are really useful quality metrics. They keep the lights on at night and the paychecks coming on Friday.

4. <The hardest one> Businesses are run by people and people are imperfect at best and bozos at worst and even bozos can make a lot of money. Facebook was written in PHP. Twitter was a Rails app. The first Google server was built out of legos...really, no shit http://infolab.stanford.edu/pub/voy/museum/pictures/display/...

5. The mark of a professional is doing things that aren't fun because they need to be done. In general, the reason people get paid is because what they get paid to do isn't fun.

6. You are learning. It just doesn't look like what you imagined learning would look like.

7. All of this is normal.

Good luck.

> 7. All of this is normal

Or in other words: "Welcome to Employment"

To the OP: Read the Daily WTF for unlimited stories like yours.

My additional advice is to figure out your own method for filtering companies you want to work for, so when you move on it won't be as crap. Networking is quite useful for this.

I remember my first tech jobs in the dot-com bubble of 1999-2001. I could see my managers doing everything wrong, but couldn't convince them why it was wrong. I thought it was because I hadn't been to business school. Now I know it was because I was 22.

You're just going to have to "grin and bear it" for 3-4 years before people will start listening to what you think. In the mean time, focus on showing up every day on time, wearing a clean shirt, using your manners, and learning to do whatever they're asking you to do, really well. Those things will distinguish you from the other fresh graduates more than you'd think.

Yes, that's how work works. It may not happen every time, but it's going to happen often.

I know of one gentleman who, though no fault of his own, had nothing to show for more than four years of work. Projects were shelved, reshuffled, cancelled outright, or he was laid off before he finished. But he still got paid.

I've had this happen to myself. The last two years, nothing really to show for it. Maybe next year.

Our employers are under no obligation to meet our expectations of quality or our need for education or fun.

In some industries people can lose their lives or limbs. We just have our egos to lose. And for that it's better sooner than later. So, the analogy of death or dismemberment falls apart, but you get what I'm saying.

And in the end remember Sturgeon's Law "90% of everything is crap."