views:

550

answers:

11

I noticed as a JR programmer, bright eyed and excited about new technologies, is the serious amount of loathing Windows developers have for Windows platform. It's starting to take it's toll. Really.

My question is: How do you deal with the constant carcinogen? Especially when you are afraid to publicly disagree with EVERYONE on your team.

How do you say "NO, give me a Vista box" and "NO, the problem isn't Vista it's the fact this dependency we have hasn't been updated ... no hasn't been COMPILED since 2004 and was written for Windows ME".

I'm in it for the love of the game, not the money, but some days I want to wait tables instead. I swear, being a punk rocker getting eggs thrown at me, I had more self respect.

Note: I don't want to start a religious "M$ suxor!!11one" debate, we all know there are some things that could be better. I'm trying to avoid such things in the work place and really don't want to get involved with it here. Though a thought out constructive motivator for some other platform is welcome.

+2  A: 

How do you deal with the constant carcinogen?

Can you clarify this question? I'm not even sure how to begin answering it. Can it be answered?

Jeff Atwood
A: 

Well, first off, have you tried the alternatives?

I am a developer that loves Linux, but I was also using Windows pretty much exclusively up until 10 months ago or so. Windows XP is a pretty solid system, but as a power user, Linux provides a lot more... such as a way to easily find and install software over the internet (usually open source), a very rich command prompt with many powerful commands and programs, a rich community of users figuring out the various problems you may encounter, really cool visual effects (believe it or not) with compiz, a better security model, and I guess I could go on and on.

I would recommend trying out Linux or something else for a while until you feel comfortable with it, then see for yourself if Windows is really the right OS for you. If you haven't tried both, you can't really know which is best for you.

If you've really given alternatives an option and still find Windows suits you best, then I guess you will just have to accept it... because enthusiastic programmers also tend to be Windows haters (at least, that has been my general experience).

As a side note, Ubuntu has a lot of "it just works" feeling... though I've still run across problems, especially with notebook wireless cards (though I have yet to have a problem I couldn't solve with enough searching).

Mike Stone
+1  A: 

Brian;

It's all about the right tool for the job. It's fine that you want to go against the local developer tide in liking Vista and seeing that the problem is with the software not the environment. You need to go further, however.

No-one actually wants software. They want problems solved. The environment you choose to deploy software on needs to be based on the platform that will best solve the problem for the user; this is a higher priority than any developer's wishes to use a particular environment.

Jeff is right in that it's hard to answer this question, especially since stack overflow is desparately trying to avoid religious arguments.

The bottom line: pick the right tool (algorithms, language, environment) for the job. Do yourself a favour and try to only work with people who share that goal. Ego and prejudice has no place in the IT world; do what will best suit the user and you'll be just fine.

Andrew.

Andrew
+15  A: 

This is actually an interesting question. Not too long ago, I came out of a workplace that loved Microsoft technology to absolute death. The developers even used Zunes rather than iPods for their MP3 Players. I got sick of the constant "Microsoft is the end-all, be-all of all development" atmosphere really, really quickly. I was a born and bred LAMP developer, so I couldn't stand it when they started making my technologies obsolete in order to start replacing them with their Microsoft equivalents. The irony in the story? Almost a year later, I'm constantly and consistently alternating between Zend Studio and Visual Studio, doing both PHP and .NET development, and making them co-exist in harmony (rather beautifully, in my opinion).

I was telling a friend of mine just the other day, who was talking about web developers building websites that just don't work in Internet Explorer, that I can't stand that crap just as much as I can't stand web developers who develop only for Internet Explorer. It was around that time when I realized that I was growing out of my elitism for any specific set of technologies and learning to accept each one as a tool. I started picking the right tools for whatever job it was that I needed to do.

It has only been a year since I worked at that company, but I've matured so much as a developer, since then. I realize that my disdain for the company's technology choices were only spreading negative energy and causing problems. The choices weren't necessarily bad ones. The existing infrastructure was so flawed that it didn't really matter what the technology was, it was still a poor implementation. It all needed to be reworked anyway, so a technology change wouldn't really hurt anything. I was the only LAMP developer in a sea of .NET developers, as well.

I think what I'm trying to say is that I used to be that "M$ suxor!!11one" guy. It's just not a good attitude to have, no matter what your reasons for it. The technologies can co-exist. With Microsoft taking steps with Zend to make PHP work better on Windows and with IIS, specifically, things are looking brighter for both sides of the fence. Don't cause a problem within your organization, but don't let anyone convince you that any one technology is absolutely better than all others. The real Windows developers that I know absolutely love the platform, anyway. They acknolwedge its shortcomings, when appropriate, but enjoy working on it. It sounds like your co-workers are the type of the developers that are your typical vocational 9-5 developers that are just in it for money.

Jeremy Privett
+5  A: 

Such prejudices are unprofessional. You should hate every operating system equally!

I jest, of course.

McDowell
+2  A: 

Becoming "thick skinned" is possibility the hardest part in it. I will illustrate my point simply with an example.

During Tech-Ed 2008 in ZA recently I was asked to stand in for a Windows Mobile Presenter that needed to leave early for personal reasons. I only had my MacBook with Parallels and Leopard with me, however did all the development demos and the presentation using Powerpoint for the Mac, much to the amazement and awe of the delegates.

By constantly showing and proving that there is various tools that can provide the same solutions, irrelevant of platform or OS choice, is the only way to start changing people's mind about Interop. It is a long and slow process, but actions do speak louder then words!

Diago
+2  A: 

I think the easiest answer is to change how you look at the complaining. I have to work on all different kinds of systems and with different vendors and a long time ago I learned that it is easy to complain about things. It takes much more skill and talent to provide constructive positive solutions to problems. Anybody can complain. You can complain about things that you have zero knowledge in. I personally try to find the best solutions, best tools, and best practices in whatever technology I'm using. I don't get worked up by people that love to complain.

I frequently find myself having to stand up for different technology even if it isn't my favorite, because someone is making false statements at a meeting. I try to remain language and system agnostic.

bruceatk
+3  A: 

Actions and running code do speak louder than religious pontification.

I've found the best way to counter arguments on which thing is better is to go and make something on that technology; better, faster, more secure, more stable, more compact, etc; than what can be achieved elsewhere and show people that its not as bad as they think it is.

Likewise it will refresh your own memories so you can remain fair and balanced and know where the pain points are in your preferred choice through recent experience, and know when to concede a point rather than pointlessly argue.

Nidonocu
+2  A: 

Especially when you are afraid to publicly disagree with EVERYONE on your team.

I have been at my current employer for two years now and I still run into this problem.

I spent a long time doing the following before being taken seriously;

  • Being quiet and waiting for it to fail
  • Speaking up, getting ignored and waiting for it to fail
  • Going ahead and doing it my way regardless (some success if quick and it works)

I believe the best tactic is to gather as much supporting evidence as you can.
Sure they don't trust a Jr Programmer, but can they argue against a text book, white paper, examples, web posts or blogs that all point to the same solution?

Tyronomo
+3  A: 

Especially when you are afraid to publicly disagree with EVERYONE on your team.

I felt like this when I first started working professionally after finishing university. I couldn't understand why the team didn't want to implement any of the fancy new solutions I came up with, they were a bunch of ignorant old sticks-in-the-mud.

I didn't actually "get it" until about a year in, where I was actually capable of explaining such a solution to a lead developer, rather than doing the excited newbie buzzing of stuff like "ZOMG PHP IS AWESOME IT WILL SOLVE EVERYTHING WHY ARE'NT WE DOING IT RIGHT NOW".

He then proceeded to explain to me in great detail using the VS debugger and a lot of whiteboard what would happen if we were to implement my solution.

I left feeling somewhat stupid... The moral of the story is that, while you may work in a team full of idiots, the more plausible option is that as a new developer, you don't know enough about things to make informed decisions, and everyone else probably thinks you're a cock.

If you respect the knowledge of the other developers, they'll grow to respect yours, and they'll actually listen when you propose some new solution.

Orion Edwards
A: 

Getting to root question, "How do you deal with..", there are a couple of questions that you need to ask yourself. If everyone is flying one way, and you are heading off in a different direction, will your views and preferences hurt your career at this company? Some companies value dissent, especially when that dissent can be backed up with results or research. Other companies may say that you are not a team player and it will affect your position.

I've been in both situations. When I found myself in the latter position, I made the decision to leave that company and I was better off for the change.

The other question is do you really want to be at this company? If you do, then it's time to grow a thicker skin and cultivate a sense of humor about it. When someone makes a disparagin comment about you using Vista as a development platform, then you make a command like "I used to feel that way, but the medication is making me feel much better about it." Then show him something cool that you can with Vista that he can't do with his OS.

Either way, just don't be afraid to have the contrary position, especially when you can back it up.

Chris Miller