42

I recently was hired from another country, made the trip to the USA to begin work as of last month. The company I work for had me unassigned for a few weeks before I was able to begin any work. During my first assignment, I was pair programming with another colleague and he kept getting frustrated about the way I work and largely had a counter to every suggestion to write code more efficiently (such as using language features like string interpolation when it makes sense). I did notice whenever he saved files or copied and pasted, he would always use the top toolbar, never keyboard shortcuts. While it did get slightly heated, I just ended up agreeing so we could move on.

The next day, I had a meeting invite from some technology VP who doubles as a development coach about best practices and if I didn't know any better I would have believed that I was being hazed. There was a talk about how using keyboard shortcuts often leads to lower quality due to how fast it happens and that you don't think about the results of your actions. Furthermore, he mentioned that we cannot trust frameworks and abstractions because they are slow and overly complicated and we should always write everything from scratch. This I do not understand, as we only make internal services and websites and the amount of data we handle is extremely insignificant. Everything else was just pure superstition like always saving twice or restarting your PC after you download AND install any software. I understand where he is coming from, so I asked for some time to gather my thoughts so we could talk more about this.

Since this is coming from the development coach, I believe he has convinced others he is right. As I haven't had time to talk to others to see if everyone agrees but, I am not sure if this is normal (back at my home country, there were no standards at all for development). Is it wise for me to bring this up with others or is there a preferred time to wait? Also if I am being hazed, please let me know.

13
  • 5
    What's the background or profession of this development coach? – DarkCygnus Sep 9 '20 at 20:59
  • 3
    I know this isn't going to be a popular view, but... this is why I don't like pair programming. Sure, talk when you need to talk, but otherwise let everyone work alone the way that makes them personally most comfortable. – Joe Stevens Sep 10 '20 at 6:35
  • 9
    @JoeStevens - this is why pair programming is a good idea. The new guy gets taught the company standards, and there's a chance to question the standards and possibly bring in new ideas. If everyone just did their own thing, it's faster for a while but you end up with legacy code. – Robin Bennett Sep 10 '20 at 8:31
  • 42
    "using keyboard shortcuts often leads to lower quality" wtf – Carsten S Sep 10 '20 at 8:48
  • 5
    I'm not fond of use of the word "superstition" in the title... there's nothing really superstitious here, except for OP's interpretation. I expected "we don't use function keys because of ghosts". What we have here are just dumb practices. Suggest fixing title, currently it's just click-bait. – Daniel R. Collins Sep 10 '20 at 13:54
102

I don't know if I feel worse for you or for that company. While there is a cost to using external frameworks, and anything can be overdone, insisting on writing everything yourself is just daft. The "you have to be inefficient for better quality code" is just insane.

I'd recommend you keep your mouth shut, don't worry about what they are doing, and look for a new job so you can leave this asylum for the criminally insane. Don't tell anyone that you are looking for a new job obviously.

14
  • 4
    Why leave? It doesn't matter to an employee that the company is inefficient, so long as they still get paid. – Robin Bennett Sep 10 '20 at 8:27
  • 44
    @Robin Probably because it is assumed that working in an environment with such crazy guidelines will, in the long run, impact your own sanity, whatever salary you're getting from it. Of course, if you think you can accept those requirements without a flinch, go for it. But the fact OP asked the question seems to indicate otherwise. – dim Sep 10 '20 at 8:53
  • 3
    @RobinBennett I think I would rather go unemployed than do busywork. I think many also think the same. If you only go to work for salary, sure: stay. If you go to work for other reasons (to be useful, to work) this situation sounds like a circle of hell: leave. – Stian Yttervik Sep 10 '20 at 8:57
  • 7
    @RobinBennett Another reason to leave is that you're potentially missing out on learning new stuff in the process. New frameworks get developed which you might not learn about because of such insane practices. While this won't impact your performance working for THIS employer, it does impact your future prospects should you eventually chose to leave. – Shaamaan Sep 10 '20 at 10:43
  • 1
    OP specifies that the websites they build are internal and relatively simple, and this impacts the cost/benefit math on using an external framework. Implementing an external framework and creating a dependency that you don't control makes less sense in simple development contexts than in complex ones. – tbrookside Sep 10 '20 at 13:31
11

(back at my home country, there were no standards at all for development). Is it wise for me to bring this up with others or is there a preferred time to wait? Also if I am being hazed, please let me know.

Perhaps, but in this company it seems they do have standards for development. Perhaps your past experiences were ones that didn't had standards for such things, but in your current job and company they do have them (as in many other companies).

No, I don't think you are being "hazed", you are just being told and inducted into the ways this company develops their software (regardless they are right or wrong).

What I suggest is to ask for the development practices and standards this company follows. Perhaps they have a document or wiki for that.

This way you can have a clear view of what is expected from your work and how this company does their coding, so you can have the complete picture of the situation, and then decide if you think they are wrong or there is room for improvement (if you do, don't phrase it as "wrong", instead phrase it as "why not do X", or "doing X is better than doing Y because... why do we do Y instead?").

2
  • You are right. I only ever had the internet as reference for standards and it has helped me grow. I had never dealt with existing standards before. I did not think about asking for them since I was stunned and terrified that I may be hazed as it is one of my fears. I will find out as soon as possible – Palo Sep 9 '20 at 21:05
  • 2
    Yes, don't take it to negative. You were recently hired, and so you are still learning the ropes of this new role and company. Expect to learn many things and to change the ways you did some things before. Of course it's ok to ask why and to suggest improvements, but always do it professionally and without saying "this is wrong", as that will come up as rude. – DarkCygnus Sep 9 '20 at 21:16
6

Are these coding standards normal?

In the United States it is normal for a company to have coding standards; whether documented and agreed upon as best practices, ingrained in the culture and codebase, or both. It's hard to say what the case is for your company in particular, though at surface-level it sounds like both.

As for whether the standards recommended by members of your company are commonplace among other U.S. development teams, it depends on the type of development you are doing. For small companies with a small staff of developers and internal-facing solutions (especially older companies), a lot of times they started with a certain way of developing and it stuck. If there is good leadership in IT, they may even recognize their faults and be actively working to fix them. If it is a start-up in California, they are more likely to have the latest and greatest technology and practices from the start. However, several years from now they may be in the same pickle.

Am I being hazed?

Though this VP/coach sounds unqualified and the other developer a bit grumpy, I don't think either were purposely hazing you. Besides being unprofessional, it wouldn't serve much of a purpose. The goal of hazing is to engender conformity within a social group. But if the company wanted someone who would conform, why not just look for a candidate that has the same outlook on development instead of hiring someone and trying to change them? There is always the possibility, but I wouldn't assume it is hazing unless it becomes truly egregious.

0

Some times it's not worth arguing about the little things.

I read this question this morning. A few minutes ago, I realised that I am saving the document I am working on by clicking the little floppy disk icon, rather than using Ctrl+S.

Having thought about it:

  • By clicking on the little icon, I am more confident that it really is saved. Ctrl+S gives no visible feedback.
  • I have two keyboards here, on different machines, each with a Ctrl and a Fn button. But they are opposite ways round. So it's far too easy to hit Fn+S by accident.
  • The extra time wasted is 2 or 3 seconds. Too trivial to care about.
2
  • 2
    "Clicking" an icon gives you more visual feedback than pressing Ctrl+S? (That's some ancient, broken software!) Conflicting keyboard layouts is a valid concern, but not a named issue for the OP. And if it took 2-3 seconds to frob the save every time I'd personally be pulling my hair out, but I don't think this is really the OP's real concern... – Dúthomhas Sep 10 '20 at 13:58
  • 4
    Ctrl+S definitely should give visual feedback. Every text editor & development tool I've used over the past 10 years has an indicator in the document's title bar - a dot, a differently-colored icon, an asterisk, something - that indicates there are unsaved changes in the file. Press Ctrl+S, that indicator disappears. – alroc Sep 10 '20 at 14:48

You must log in to answer this question.

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