A Train of Thought – Wrapping up CodeMash 2011 | Jeremy D. Miller

:

I had a great time at CodeMash yet again.  For those of us who look at software development as more of a lifestyle than just a way to meet the mortgage, these kinds of events are like a huge dose of nutrition for the soul.  I really liked Scott Chacon’s keynote address and it’s got my head a going about how to make our workplace better (see this again).

Happiness and Work

I learned the hard way that I can’t attain personal happiness from work alone.  That being said, your workplace, career, and profession is a big part of who you are and most certainly impacts how happy you are in life.  I constantly meet developers who feel like they’re being ground down by their soul-crushing jobs. 

It’s a familiar litany of complaints:

  • Being forced to work with bad tools and having no say in the matter
  • Too many hours
  • Poor quality of work.  Personally, I can deal with heavy hours over short periods of time but fighting with bad code or knowing that my team didn’t do a very good job on something depresses me.
  • Being treated as disposable or replaceable units
  • Apathetic co-workers.  In a good situation your coworkers should inspire you, not drag you down

My only advice to you is to get out, go someplace else.  There are good places to work where you’ll enjoy your coworkers, do challenging work, have autonomy, and feel energized just by being there. 

Don’t accept a bad situation.  If you can’t change your current environment, then get out of there.  Prepare yourself.  Up your skillset.  Do OSS work to sharpen your skills and network.  If absolutely nothing else, just doing the preparation work for another job should help end the feelings of hopelessness.

It took me about a decade to more or less get there, but I did and you can too.  And if you are miserable at work, at least remember to enjoy the hell out of your non-work life.

 

FubuMVC was well received…

I was very happy with how well received FubuMVC was at my workshop at CodeMash, but some of the typical responses don’t particularly encourage me:

  • FubuMVC looks great, but we can’t use non-Microsoft tools…
  • Yeah, ASP.Net MVC isn’t that great, but it’s better than WebForms…
  • I’ve given up on anything from .Net, I’m going to Rails…

The .Net world sucks because of our weird unipolar world where Redmond dominates and seems to suck all the oxygen out of every other solution.  I’m not completely ready to throw in the towel and write one of those obnoxious “I’m awesome ‘cause I got a new Ruby job and you .Net guys all suck” blog posts, but I do consider my future options and writing code on mediocre frameworks from Redmond isn’t part of the future I envision.

 

Loyalty

Always be loyal to your family and your friends.  Try to be loyal to your sports team even in bad years.  Be loyal to your teammates.  Be loyal where loyalty is valuable, but for goodness sake, that does not extend to your development platform or tools.

 

You don’t need to win every argument

I was around the periphery of an argument about using Git vs. TFS and let’s just say that one half of the conversation had no interest in changing his mind while the other half thought it was important to change the first person’s mind. 

In your career you’re going to learn new and better ways of doing things, be really excited about those new ways, and immediately find out that you can’t get other people to see the same advantages that you do.  Moreover, those people aren’t going to like you if you attack the ways and tools that they use to build software.  If you’re not careful, you can easily do more harm than good to yourself even though you were trying to make things better for other people. 

I still stand by most of what I wrote a couple years ago in a Coalition of the Willing:

    • “W” is still the worst US president of the last 100 years
    • I’m coming around to the idea that causing a confrontation with traditional .Net development via the EF VONC was absolutely worth doing, if badly mismanaged on our side (ALT.NET).  The non-ALT.NET folks in the argument behaved terribly too, but somehow they didn’t have to put up with “Why so mean?” crap.  Oh well. 

 

Quick Things

  • About TFS, have you ever heard anything positive about TFS from anybody besides TFS consultants or Microsoft employees (I’m including the regional directors here)?  I haven’t.
  • As far as I can tell, Git has an almost dominant mindshare around version control right now.  You’re either using Git, trying to convince your team to go to Git, planning for Git, or defending your decision to use something else.
  • Self promotion is an essential ingredient of being a highly successful software developer, but don’t you ever dare forget that you need to actually get better rather than just work on looking better.  Remember that it’s important to go to places, groups, and conferences where you’re not the smartest guy in the room.  And yeah, anybody in Austin knows exactly who I’m talking to here.
  • Microsoft is losing the high end developers.  This theme never seems to go away, and it was front and center at CodeMash yet again.  Ask high end .Net developers what they’re learning or excited about and you almost never hear an answer that originates in Redmond.  Lots of Node.js, Rails, Scala, and Python, but nothing .Net centric.  I think Microsoft is probably right from the business perspective to put most of their eggs toward lower skilled developers, but running off most of the upper end might end up hurting them.
  • The population of high end developers certainly overlaps with all the MVP’s, but there’s a tremendous amount of mediocrity running around with MVP slathered all over their resumes.  Don’t take the MVP club membership too seriously, either as a member or an outsider.