Monday, January 5, 2009

From coding whore to opinionated developer?

I WANT YOU.jpg Have you also been on projects where things were done entirely different to your own opinions.
Maybe they totally contradicted values that are most important for you? But you coped and went along?
Did you feel compromised, even dirty, for not resisting? Did it make you feel like a coding whore?

37signals and Ruby on Rails shaped the concept of opinionated software.

As most ideas from 37signals, I like the concept of opinionated software.

Now I am wondering if the concept of being opinionated could be extended from software to ... the developer?

When coming to a new project, take a good look! As a developer you don't have to put up with everything! Evaluate your opinions:

  • No Source Control? - Where is the exit, please ...
  • No Unit Tests? - Thanks, I am out ...
  • Continuous Integration is a foreign word? - Sayonara from me ...
  • Staging, what is that? - Good bye ...
  • Stakeholders are not readily available? - These boots are made for walking ...
  • ...

  • Is that being arrogant?
    If you have opinions, why should you not commit to them?

    12 comments:

    1. Working environments are rarely perfect.

      The ability to integrate oneself into a less than perfect situation and embark on process improvement says more about an engineer than rote obeisance to some mantra.

      There is nothing wrong with being opinionated, but what you are describing is intransigence.

      ReplyDelete
    2. @Anonymous

      Well, the question is: Where do you draw the line?

      When crosses the situation from 'less than perfect' to unacceptable?

      Where is the crossover from 'rote obeisance' to fundamental principles?

      What are you willing to accept? And equally important: Why are you willing to accept it?

      <provocative>
      If my wife would be cheating on me, is this just a 'rarely perfect' situation?
      If I wanted a divorce, would this be intransigence?
      Don't you think that a devoted professional should take his job as serious as his private life?
      </provocative>

      ReplyDelete
    3. but as a "business person" your goal is to make money...so in essence your telling coders to be another "smartass" who thinks they know everything but doesn't help the situation and complains that there is no work because they don't know how to upsell.

      Instead of being a "smartass" start being smart and learn to make money on the opportunities that pretty much are right in front of you instead of looking for the damn lottery where everything is given to you on a silver plater...

      in other words
      START WORKING FOR YOUR MONEY.

      Here's an option:
      1) no source control - charge some $ by signing up as an affiliate to a hosted source control vendor and make some extra $ OR learn to install some version of source control so that others can learn good coding practices

      2) no unit tests...get a unit testing process in place. It takes time but starting from somewhere is better than being a snot nosed whiner who sits around complaining about "no this, no that"

      3)no Continuous Integrations...start with your project or at least start waving the flag. Better that someone starts a little ripple that turns into a wave than sitting at home wondering why no work is available because you think your are better than everyone else

      4)Staging ... put your own little staging system together. You have a laptop right? You do know how to articulate the concept to someone in the networking department about your wants and needs? Sure nothing moves as fast as we all want it to but no one is asking you to walk out the front door in a huff like a 5 year old throwing a temper tantrum

      5)Stakeholders not available? yo ho ho and a bottle of rum ... learn to play the game of businesses. Most of the time it's about being patient and waiting for the right moment to seize the moment instead of having a seizure and attitude problem and losing out on opportunities to make more money.

      Time and Time again I have run up against consultant, developers, in house, off shore and others with the same attitudes expressed here.

      Whine about the "missed" opportunities OR get some balls and start learning to communicate as a BUSINESS PERSON.


      god dammit ... everyone wants to win the lottery these days

      ReplyDelete
    4. @Anonymous

      Thats a realy cool answer, honestly. Thanks!

      Still I have objections:

      It is not all about the money!
      That is an attitude that realy hurts our industry!
      See Jeff Attwoods post: Programming: Love It or Leave It

      Or Jay Fields post: The Elephant in the Server Room

      I share this opinion of Jay Fields: Passionate, Not Dogmatic

      I think there are a lot of environments where your passion is not valued and even frowned upon.
      There are environments where you will never get a chance to make a difference! Working in these environments is just frustrating and self-destructive.
      Example: Scrum pigs - musing about commitment

      I don't suggest to whine and complain if you are in such a situation. I suggest to avoid such a situation in the first place, by holding up your principles.

      There are lots of opportunities out there! Choosing carefully is an option...

      ReplyDelete
    5. If "it's not about money" then just do opensource projects and see how far you get paying the bills!

      I use open source projects, donate $ to the causes, even inject a few bug fixes but I also realize that a passion for writing software <> to making money.

      Unless your independently wealthy the fact of the matter is this really is a business like any other and you should be open to figuring out how to make your "business" work to your advantage which = $.

      ReplyDelete
    6. There is a fine difference between
      'It is not all about money' and 'It is not about money'...

      If you are a semi decent programmer, you can get any minute a job that pays your bills ...
      So why should you not choose a job that allows you to respect your principles?

      ReplyDelete
    7. @Anonymous

      ...but I also realize that a passion for writing software <> to making money.

      really? i bet the guys at Google aren't very passionate about the feature set or quality of their products...

      there is TONS of money to be made from open source software...my business runs purely on free and open source software, and we contribute back quite a bit of code, while still making quite a decent living

      also, i think what Jonas was saying about necessities - source control, unit testing, continuous integration - was that a good developer should be able to implement these if (god forbid) they aren't already existing. if the organization is resistant to them, then leave, leave right away.

      ReplyDelete
    8. Where I would draw the line is no source control and no staging enviroments. Being expected to complete a project with neither of those is absurd to the point if you take a job at a company that is in either of these positions you are wasting your time in your career because if that's how poorly their run their shop I can give you an idea of how terrible the code is and how dated the design methodologies are and how little technology they use.

      The only way I would ever consider a job that violated that is if I was being hired for an aritect / lead designer role that I would be able to start changing it immediately from the day I started (especially source control) not using a source control system in 2009 is just unacceptable by a long shot.

      ReplyDelete
    9. hi there,

      Source Control : if that is NOT used, then I will have to use my imagination as to what ELSE is also MISSING.

      All other missing items : That might be a good opportunity to introduce your favorite tools/processes into this client!

      BR,
      ~A

      ReplyDelete
    10. Hi Jonas,
      in my opinion the line between "acceptable" and "unacceptable" is "In a terribile (in technical way ) working enviroment, how much freedom I have?".

      If I'm without Control Version, IDE, good hardware, bla bla but the people is capable hearing and understanding the mistakes and it's only a problem of culture, in my opinion it's a situation with a good perspective.

      If I'm with SourceSafe (Control Version), JBuilder(IDE), not analisys for development, the project manager cry against the people, the guideline is "I want to deploy in the spider way (test?useless!)"... beh, I see that there's any hope to work better and GOODBYE!!!

      bye

      ReplyDelete
    11. lol :). I definitely like the boots are made for walking. Somehow reminds me of reboots.

      ReplyDelete
    12. This comment has been removed by a blog administrator.

      ReplyDelete

    Related Posts Plugin for WordPress, Blogger...