Friday, October 28, 2011

Developers and Professionalism

 UPDATE: Please notice, the author of the story shared is actually Matthew Heusser, this is what I get for not confirming before posting. Thank you, Matthew, for sharing your story!!


 


 


I'm a developer, and inasmuch I am proud of the fact that I rarely wear pants. As I write this now, I am wearing pants, but only because I went into the office today. I have orange hair, and a large assortment of lip gloss. I sleep to 11 most days, and I defy anyone that says I shouldn't. All in all I've embraced the developer's frat guy lifestyle. 


I've started a book called the Clean Coder by Uncle Bob Martin. The thing that has made the biggest impression for me was in the forward (written by Matthew Heusser). He tells a story about a development team he was once a part of, I'm paraphrasing quite a bit (the book is still at the office), but he talks about a team in an enterprise company that had been working on a project for quite a few months with a set-in-stone release date on the horizon. As the date approached they worked day/night/weekends to get things done. He had a team of talented coders and under much pressure from management they strapped themselves to their keyboards in order to get the job done on time, and they did.


The Friday before the Monday release date they were stoked. It's so rare that a project gets completed exactly on schedule, but they had done it. They were celebrating and relaxing when they got a call from management. Seems that legal hadn't finished the paperwork needed for the launch, and they needed an extra day to get things done, the meeting was going to be pushed to Tuesday.


"No way" was Matt's response, "we have been killing ourselves over this. They have Saturday and Sunday to get this work done, plenty of time." "Sorry," was the word from above, "these people are professionals, we're not going to ask them to work the weekend. Meeting is pushed to Tuesday." Matt was irate, "Are you serious? My developers have been working around the clock, nights, weekends, you name it. We can ask the guys in legal to put in a little extra time." Management responded, "You don't understand, these guys are PROFESSIONALS."


That's when it sunk in for him, people don't think developers are professionals. They look at us like a bunch of sloppy kids that happen to know how to do something that they need. After reading that story, it sunk in for me too.


Clients trust me to take care of things they don't know how to do. In order to do that, they need to feel I am competent and capable. Disappearing in the zone for a few days, while it may be best for the project, isn't comforting for the client. Up until then I had a dim view of client hand holding, and thought "they just need to trust that I am working on it." However, I have realized that a good working relationship, constant updates, and accountability are just as important as clean code and passing tests. 


I still rarely wear pants, and have orange hair, but my client's comfort is much more important to me now. I want them to know I'm here whenever they call, and they can trust that I'm working hard to solve their problems and build their software. The response I have gotten has been great, and I've noticed how much they appreciate being kept in the loop no matter what. That makes my job easier, and that's a reward I didn't expect. 


 



Tuesday, October 18, 2011

A Post About Why I No Longer Do .NET Development

This blog post has been a long time coming. I initially started doing web development using ASP.NET and C#. I was honored to be given MVP distinction by Microsoft for the years of 2010 and 2011. I wanted to wait until that had expired before commenting on my departure from the world of .NET development. 


I started my career within the .NET community, and my posts of late have been devoid of Microsoft references. I can only imagine that folks that enjoyed my "Web Forms to MVC" other C# posts are wondering where the love was lost. There is no love lost, I will be forever grateful to the .NET community for how they helped me get where I am today. There are several reasons that I no longer do .NET development professionally. I will try to explain them in this blog post. 


 


First things first.


I have to get out the wonderful things about .NET development that I experienced on the way. The .NET community is extremely warm, and welcoming. .NET development has the highest female : male ratio in development I have seen. The reason for this is obvious: the people. They welcomed me when I was new, they helped me learn many things. I can't thank them enough. 


The barrier for entry was low, there were few "well actually..." and more "welcome!" I was actively encouraged by my peers to contribute. I still call many people "friends" that I met back there. I hope to emulate some of the mentorship that I found back there with others in the future. 


 


The Angry Rant


I have seen many people "quit" the world of Microsoft development. It usually draws out into a long thing with a Twitter battle, and angry comments, and a throw down to the teams that don't care enough about supporting their developers within Microsoft. The tools are bad, the direction of the languages are crazy, their support isn't fast, someone is a jerk, etc. It always calls me back to a time of message boards and people quitting the internet. 


There is a primary disconnect with people that blame individuals, or direction, or other such surface issues, there is a failure to understand the business of Microsoft as a company. Microsoft makes money working with Enterprises. Microsoft answers to shareholders. Therefore, C#, F#, ASP.NET, and all other Microsoft frameworks/languages are a for profit operation. Yes, I am aware that the majority of their income does not come from these tools, and not even from $10,000 MS SQL Server licenses. However, the responsibility for all their employees, all the departments, and ultimately all the initiatives is to answer to their board. 


 Developers can not rationally expect this to lead to more perfect tools and a better community. Money buys you a lot of resources as a company, but, ultimately, your driving force is apparent on what you create. 


 


What this has to do with me


Ok, well, Microsoft supports me as a developer. Pays for me to come visit them, eat on their dime, and I even get these really sweet jackets. Why disrupt something so choice? For me, it comes down to my fundamentals as a person. 


I believe in the internet. I believe in people. I believe that people have created something beautiful, and it's up to us as developers to build and grow it. 


Being a software developer in this age is a privilege, something the world has given me, and a responsibility. 


I believe in open, I believe in being motivated by what is best for the web, and not what is best for my company. Making that decision over and over again has cost me a lot of money, and many perceived "opportunities" but my soul remains intact and I believe I am contributing to an amazing time in history with my fellow (wo)man in mind. 


JavaScript is free. JavaScript is open. JavaScript is built by people that love the same things I do, and only answer to this community, their consciences, and what drives them. 


For me it was undebatable that this is where I wanted to be.  


 


The People


I know many people that are not only .NET developers, but work to build the related languages and frameworks from within Microsoft. I don't consider them sellouts. I think they are making their difference where they can, and want to. I am doing the same. I respect them not only as developers, but as people, and friends. I am eternally grateful to them for giving me the introduction to community and web development they did. I look forward to continue down the same path, building web one link at a time. 


 



Sunday, October 9, 2011

Doing a 5k and Teaching a Chrome Extensions Class

 


There's this guy, his name was Terry Fox. When he was 18 he learned he had bone cancer, so he proceeded to run a marathon a day for 143 days depite losing his right leg. I find stories like that incredible, and every year people run in his memory (a measly 5k, I might add). Anyway, I'm running with a team and we have a paltry fundraising goal. If you are interested in donating, you can do so here. Our team name is kind of corny, but you can see what we did there.


 


I'm teaching a Chrome Extensions class at New Work City in conjuction with their sponsor, Google. Super excited to get more people cranking out extensions, if I can quote one reacting from my jQuery talk, "I had no idea it was that easy." Students will be building multiple extensions in the class, and will walk out with knowledge on how to build all the diverse types that the Google platform allows you. Link to the class is here, let me know if you're interested and I can hook you up with a discount code. Also, check out this HTML5 & Modern Web Apps class, being taught by one of their developer evangelists.


 


Right now I'm enjoying beautiful Norway for the Frontend 2011 conference. Designers sure talk about their feelings a lot, no? 


 


 


 


 


 



Thursday, October 6, 2011

Add Blocker - a solution for annoying Google+ notifications

I like Google Plus. I think that if it gets more acceptance it will be the perfect solution for all of us nerds to play around in (until our moms find it). I really get irritated, however, in the current notification system. For some reason we all seem to be complaining about a lot of notifications that boil down to "someone you don't know is following you on Google+" Don't get me wrong, I love the fact that people are interested in what I have to say in general. However, I don't need a telegram every time I get a follower. I do however, need a telegram when someone shares something with me, or comments on a post. 


 


I built Addblocker to do just that. No longer will you be plagued by "Some guy just followed you on Google +". 


 


So far it only works in GMail, but I'm working on every other Google property. Without further ado:


 


AddBlocker


 


Here is the GitHub in case you'd like to make any changes. It's using jQuery right now as it was a demo for jQuery conf, however, I will likely remove it as it's not necessary for this particular extension, so keep that in mind. 


 


Please let me know if you run into any bugs, or issues.