4

I have nearly 6 years of development experience. I like to deliver good quality code, making sure to follow best practices and take responsibility for my work like any professional developer.

At every company I have worked for, the quality of the work is less than the so-called industry standard, by which I mean the contents we see in blogs, books, talks by experts, language specifications, etc. Unfortunately, I am not in a role where I can enforce my team members to follow these principles. Whenever I ask my team lead or manager about following best practices, the usual answer is they are good in books and theory, but not in practice.

The team members also do not support my initiative, as even if I bring in any best practice, it is all left to me to follow it until the end of project. Because of taking these initiatives, I have spent nearly 70% of my personal time in the last few years. It frequently happens that I do my tasks first, and then rework or refactor other team members' work to follow the best practices. During the critical project moments, I have to be the person who stays up late at nights.

Someone suggested me to find a place where most team members are eager to follow the best practices and where management supports these initiatives. Most people, however, say you will never find any such proper work, and all project are like this.

How can I identify or find such good workplaces, where everyone follows the best practices?

EDIT:

Couple of points to share after going through the answers:

  1. I believe that, the fundamental goal of building a software is to solving a purpose rather than working on standards and practices. For that reason, any solution / project which gives client satisfaction is a best practice, even though it is not a best one when compared to the industry standard.
  2. I partly agree with @keltari, as recently in a project, i have just done my work and kept silent, on the things happening around, like ignoring whether the code quality (which was written by other team members) is good or not, requirements are documented correctly or not, project is moving in the right direction or not, since those are all not my action items. I am done with my work after few days and i am free. But the project quality is going down and very little amount of work is happened from other team members with respect to project and with respect to client, and not in my point of view. Then i have two ways, unless my team lead ask me to work on the others taks, continue to keep silence and make my personal time happy or take initiative and explain to team in which areas they are doing wrong and my old story begins.
  3. Coming to the extra hours comment, every minute i work is from the project perspective only and will be resulted in good progress of the project, and finally we as a team got appreciation and myself personally too. But only thing i would like to see is the balancing of the work across team members.
  • 2
    A quick search on "work life balance" yielded these valuable and related posts you might consider: How should I ask about work/life balance during an Interview?, How can I find a better work-life balance in an internet company which is “always on”?, Should I state work-life balance needs in a cover letter? hope they help you get good insight – DarkCygnus May 23 '18 at 4:14
  • 5
    After reading your post, my impression is that you are a perfectionist with OCD. You are choosing to spend your free time doing work that isnt asked for, or expected of you. It appears since you changed others code, you are the one who has to work nights, or you are the one who requests to be in that situation. In my opinion, even if you found a place that adheres to best practices, in my gut I feel you probably will still not be satisfied. – Keltari May 23 '18 at 5:14
  • 2
    I'm not sure I agree with the duplicate question here. Where in the question above does it mention interviewing? Closing the question doesn't allow for alternative answers (like "stop doing all this work by yourself") – Snow May 23 '18 at 8:22
  • 1
    The duplicate suggestions look like they came from Google when it says "Did you mean xyz"? Don't suggest a duplicate based on keywords alone. – Brandin May 23 '18 at 8:49
  • 2
    At every company I have worked for, the quality of the work is less than the so-called industry standard, ... Maybe the industry-standard is less than what you imagine? I work in the Industry now for almost 20 years, and as far as I can tell, everyone has some skeletons in the closet ... – Daniel May 23 '18 at 13:36
32
  1. Working more than forty hours a week will make you inefficient. Don’t do it.

  2. Nobody will thank you for working these hours. You are not a hero, you are a mug.

  3. Nobody apparently asked you to work these hours.

So what the hell are you doing? Stop doing it.

  • 9
    You should add another important point, Nobody is going to pay you extra money for doing it – William-H-M May 23 '18 at 14:02
18

As Keltari points out in comments, it appears that you're the one choosing to spend most of your waking hours correcting other people's code out of a sense of duty. You've not mentioned how the other developers feel about you refactoring your code, but we can assume this practice can cause stress (who broke the code, the original coder or your refactoring?)

The answer seems somewhat obvious

Keep your own house in order

If other people don't use the latest and greatest methodology, but the code works, is maintainable, and doesn't interfere with your practices, then let them do what they want.

You may be tempted to only maintain a certain aspect of the whole codebase, but you may well slip into "I'll just do this/that while I'm here" only to find midnight is slipping past again.

If you really need to get the entire codebase into shape, then it seems reasonable to work for smaller teams/companies so that there's not much work to be done here.

But you're right - many teams out there don't rigorously follow coding standards - it's been this way throughout my working life in many companies. nothing bad has happened from it.

The baseline thought here is one of productivity - for all of the man hours your burning on refactoring other people's code, where's the tangible benefit to the company you're working for - what's the impact on delivery dates, product stability, and ultimately (and most importantly) actual and forecasted profits for the company as a whole?

How better can you be spending your time instead?

  • I agree. Well said. – Keltari May 23 '18 at 5:48
7

Industry 'standards' are more like industry 'suggestions'. They can (and will) change over time. I've been doing this a long time. Stop what you're doing right now.

An example: At one-time Hungarian notation (blnOK, strName, etc.) were the industry 'standard'. Now the 'standard' says to not use the data-type as part of the variable (OK, Name, etc) or to use camel case. So, if there is code written 18 years ago (we've got some) that was using the old standard it now needs to have it's naming convention refactored because of some arbitrary 'standard'?

Let me ask you a question - when in the development process are you refactoring? Before or after testing? If it's after then every place I've ever worked would require a regression test of the system. This could result in you being fired if something has already passed QA and then you make a code-change that needs to be retested.

  • Generally speaking they all have one thing in common: they make suggestions based on your company. Each company might follow a industry standard but they might add their own flavor to it to make it easier based on their architecture. The OP has only suggested companies follow standards but never indicated if the company itself has any standards which bypasses any best case industry practice. – Dan May 23 '18 at 17:48
  • 1
    intVoteUpCounter++; /* as they say, the great thing about standards is that there are so many to choose from */ – Keltari May 24 '18 at 7:14
3

Your question summary contridicts what you ask in the summary body. You're asking how to find a workplace that follows industry standard. I don't think any place does that. Ultimately dilvering a working product to gather revenue is far more important than following some standard.

However, to get into your question deeper, it's unclear why you're working all these hours to get codes up to industry standard when nobody seems to ask or even cares about what you do. So why are you doing it? You'll get nothing in the end other than wasting your life when you can be doing something better. Work to live, not live to work.

2

You need to be talking to Joel Spolsky.

Even if you don't want to work for Fog Creek, Joel can probably tell you who else in the industry is paying attention to code quality as part of their business model.

And when, in the end, you realize, along with the rest of us, that maintainable, correct, efficient software is as unwanted as peace in the Middle East -- you'll have someone to commiserate with.

  • I am a fan of joel, btw :) – developer May 23 '18 at 15:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.