Sponsored By Aspose - File Format APIs for .NET

Aspose are the market leader of .NET APIs for file business formats – natively work with DOCX, XLSX, PPT, PDF, MSG, MPP, images formats and many more!

A Train of Thought – Wrapping up CodeMash 2011

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.



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.

About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at http://codebetter.com/jeremymiller.
This entry was posted in Ranting. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • Davidekl

    Regarding TFS, i dont find it half bad. It has a very high level of integration with the development tool, and it covers a whole lot of the process for which one normally would use several systems.
    Ofc, we are using extension-tools for it, many of which do not originate from Redmond. Which brings me to the next thing i wanted to comment.

    I agree on your comment that MS focuses on low-end devs. (Not that i consider myself high-end, but i’m not a newb). It makes sense at some level as they obviously want to recruit developers to their platform, and the easiest crowd to target are people that are semi-clueless / not yet opinionated. It has been getting better lately, but many of scottgu’s awesome samples and releases heavily represent the way you do hobby-site stuff.

    Then the counter-argument: I don’t see a good reason for them to shift their focused efforts to high-end devs. The problem in keeping the high-end devs interested lies (in my opinion) mostly in the community.
    Most of the other platforms you can come across will have tons and tons of frameworks and extensions that are NOT made by the people building the platform but by the community around it.

    As a licensed platform, MS has done what has been required of them. Supply an environment / platform that is tightly knit together, highly integrated. There have not been many reasons to start external communities around the platform. ALT.NET is growing, and i that is really nice, hopefully it soon reaches levels near other competing platforms.

    No i’m not a MS evangelist, i do enjoy the platform, but i just happen to be a dev doing C#..


  • jabits

    Wow. Talk about kool-aid… One thing though, I can understand sour grapes about MS shops wanting to use MS products, but how are you expecting them to switch to tools that do not even run on Windows Server? git, node?

  • Michael Meadows

    Count me as one of the people who left your fubu MVC precompiler stoked. Now I’m just trying to figure out how to convince our clients that using something that didn’t roll off the Redmond assembly line does not belong in the “drawback” column when evaluating bids.

    It would help greatly if it had a more marketable name like “Structure MVC” *wink wink, nudge nudge*.

  • InspiringCode

    Hey, I think that TFS is GREAT and I really like it. Show me one other tool suite that has such a high integration (between tools and people, and for developers all accessible from the IDE). As far as I know there is no other tool that has such a complete end-to-end tracability as the TFS.

    The downside however is, that it costs lots and lots of money (except if you’re gold partner) and that it is a bit complex to configure and administer.

    Btw: I am just a professional developer and have nothing to do with Mircosoft or whatsoever and I am not a consultant. I am saying this as a C# developer. And here in Austria, most people that have used TFS like it.

  • http://codeofrob.com/ Rob Ashton

    Crikey – well that’s a post and a half:

    Point 1) Couldn’t agree more – I just spent a year “sharpening my skills” in the OSS world and have now left the job I didn’t like and will not simply be settling for the first thing that comes along

    Point 2) That’s all too sadly familiar, but like a lot of OSS frameworks, it has the effect of showing Redmond what *can* be done, and in four years time perhaps they’ll have got somewhere close. From my end, I’d still rather you kept on pulling them along instead of giving up the fight.

    The rest of it I can’t find any complaint with, a nice bit of musing at any rate.

  • http://twitter.com/lazycoder Scott Koon

    I’ve heard devs inside and outside of MS say that using TFS is less painful if you install the TFS power tools and stick to the CLI commands. Even though they still pop up GUI windows.

  • http://thezendev.com Dan Martin

    “If absolutely nothing else, just doing the preparation work for another job should help end the feelings of hopelessness.”

    That’s a great point. I switched jobs late last year and the prep work was not only enjoyable, but I feel that I improved a lot from it.

  • http://blog.prokrams.com/ Michael Letterle

    Actually, as a Team Management/Work Tracking platform TFS isn’t THAT bad. As a source control system it sucks though. If it were easy to swap out source control technology it’d probably have a better reputation.

  • Henning

    While I do agree with you that the mainstream .net community is somewhat lagging behind, I do see quite a lot of effort from certain parts of the OSS community lately. The OWIN initiative is looking good if they can agree on the spec and start coding something. There are tons of new web servers coming out, like Kayak, Manos de Mono and others. We’ve also been seeing a surge in new MVC frameworks inspired particularly by Sinatra.
    Then you have the Spark view engine which is awesome. I’ve heard of atleast 2 new “cloud providers” that are inspired by Heroku.

    Asp.net mvc is also starting to look better. Still a way to go, but it’s getting there. We also have a package manager. Not sure how good that is yet, but its a start.

    Things aren’t perfect, but I don’t think that any language/community is perfect. We’re stuck with MS guidance for the foreseeable future, but some highly motivated individuals are shining a light.