I've been coding for iOS for years now, and I'm continually finding that I encounter programmers who believe there is one true way to write software for iOS; typically these are guys who have very little experience, and are just imitating what they think Apple does or wants. but I've spoken extensively with people who work at Apple and they don't do things in this "one true way" themselves, nor do they recommend it. How do I best deal with these highly opinionated programmers, who insist on very strict variable naming conventions, very strict spacing, but also program structures that would not necessarily pass muster in a programming class. I feel very much like I joined a cult and I'm the only person in it who has free will. They think very highly of themselves (geeks are known for their hubris) but they are incapable of arguing their case.

Unimaginative conformist behavior is not a sign of intelligence.

If an engineer deserves any respect, is because he is able to argue his case. Mindlessly demanding conformity is the opposite of arguing your case. It is like these people are coddled children, and they can't imagine anyone questioning their demands.

either that, or fundamentalist thinking has spread into the programming profession.

  • 12
    What you describe doesn't sound like cargo cult programming. It sounds like these developers follow a single set of coding conventions which is basic common sense. – Lilienthal Nov 2 '15 at 23:15
  • 4
    They appear to have a established a very strict coding standard, which is a best practice among professional software teams. Can you provide more examples of why their "one true way" is bad? – Kent A. Nov 2 '15 at 23:34
  • 1
    Please remember to keep your comments polite and professional and in line with the Be Nice policy. – Jane S Nov 3 '15 at 0:26
  • @JaneS are people who have 8000 points penalized when they are not nice? – Doeyd Nov 3 '15 at 0:32
  • 10
    Stack Exchange is not a place for ranting about your coworkers and telling us how stupid they are and how much better you are than them. If you treat them like you are treating this question it is no wonder you have problems dealing with them. There is good guidance in the help center about making this question a better fit. Please take some time to read that as well as the Be Nice policy Jane mentioned above. – enderland Nov 3 '15 at 0:39

I find much the same thing since I work with different groups, each of which may have their own similar but different conventions. There probably is NO true way per se. But it's best practice to follow the conventions of the particular group your working with. Not argue about them.

How to deal with it is keep an open mind and ignore anyone ranting too much about a certain way of coding. Doing things your own way just gets you branded as an amateur and a cowboy which you obviously are not.

What you may think is a cooler and more efficient way of coding might be difficult for others to read quickly which is a major drawback in groups. As a sometimes employer of consultants, if one of my people sent me code that looked messy I'd send it back to them and tell them to clean up their gibberish before giving it to me.

  • what I'm saying is that THEY are not keeping an open mind at all. they are egotistical, small minded, immature and tyrannical. they cannot form a coherent argument for why they chose these particular ways of doing things, because in the end they are unimaginative conformists, acting like they are special snowflakes who have to be listened to. I expect they were coddled by their parents. – Doeyd Nov 3 '15 at 0:20
  • Perhaps you're correct, but it's a moot point in my opinion. In my experience it's non productive to let the pettiness or perceived pettiness of others impact on your own professionalism. Conforming to standards is the norm for professionals, homogeneity or an approximation of it smooths many paths and makes things easier for the majority. – Kilisi Nov 3 '15 at 0:29
  • 1
    as for consultants, my experience is that full timers often do worse work then some consultants, because full timers are more often than not complacent. and many are lazy. – Doeyd Nov 3 '15 at 0:30
  • I agree, consultants tend to be more pedantic and less lazy, unfortunately there IS a lot of cowboys out there and you never know until you receive their work :( I don't pay until I have what I want. – Kilisi Nov 3 '15 at 0:32

Do you work with them? Because you said you "continually encounter programmers...".

If you do, well, you will have to adapt your code to their practices. Because, congratulations!, for once, you found a group of programmers that actually follow industry standards. They already decided to use a methodology that works for them and they are happy with it. Sure, everything can be improved (especially if they are my improvements ;) ), but then work would never get done.

As a teacher once said to me: use whatever standard you want, but follow it. That's why it's called a standard.

  • There is more than one way to skin a cat. It is erroneous to say everybody on the project needs to be using the same style. if an engineer deserves any respect, is because he is able to argue his case. mindlessly demanding conformity is the opposite of arguing your case. – Doeyd Nov 3 '15 at 0:26
  • 6
    There are many places in software development where you can exercise your creativity. Coding style is not one of them. – Robert Harvey Nov 3 '15 at 0:50
  • Yeah, it's pretty normal in the industry for a team to use the same standards. Otherwise it's just confusing. Generally an organisation defines what the standards are. If you think you have a case to make against those standards, you should definitely bring it to your manager, but until then, use whatever standards are consistent. – PointlessSpike Nov 3 '15 at 9:28
  • standards are not the only issue though. for instance when it comes to IOS programming, people want to use Apple-patented technologies. but there is no good arguable case for that other than blind conformity. – Doeyd Nov 4 '15 at 23:24

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