Me on TDD/BDD/Pairing and Jason Fried’s TED Talk and “why work isn’t done in the office…”

This talk is so right, but could it be so wrong at the same time?

Just watch this, that’s all I have to say. Jason is so right about this topic. Here’s a few quotes to convince you.

  • I’m going to talk about work, and why people can’t seem to get things done at work…
  • If you ask people the question, “where do you go when you really need to get something done?” you typically get three different types of answers; one is a kind of a place, a location or a room, another is a moving object, a third is a time…
  • The Train”  <  – That one caught my fancy, if you’ve ever talked to me about transit you know that one caught me…  🙂
  • What you almost never hear people say is “the office”
  • Managers and bosses will tell you the distractions at work are things like Facebook, Youtube…”  “…and they’ll go so far as to ban it…”  “…what is this China?!”
  • The real problem in the modern office is the M & Ms”   <  –  Oh hell yeah, so very true.
  • Manager’s jobs are really to interrupt people…” “…they don’t really do work so they have to interrupt you.
  • You would never see a spontaneous meeting of employees, no, managers do that…

To summarize, do telecommuting right, and it will absolutely blow away anything that is ever accomplished “at the office“.

Oh my Adron, you’re such a hypocrite! You are always talking about TDD and BDD and Pair Programming and teams being together and…

YES! You have a point, so let me throw this prospective hypocriticalness of mine away and prevent any concern that I’ve missed a logical connection. I assure you, I haven’t.  🙂

I do support people working remotely. I also love to have a team close together with high communication (and here’s the catch) that is focused on the problem. This is what Jason is talking about! People generally don’t stay focused in cross-cut teams, with this focus and that focus and then throw managers on top of that. The next thing you have the dreaded M & Ms dramatically decrease any chance of work getting done.

If a team can be left to their work, especially if they have clear problems to attack, to pair on, to write tests against and to implement this is the precise example of why to work together. However, I’ve also seen successful, very successful teams working together remotely. Jason & the 37signal’s crew have done that before! They’re a prime example of it.

But How Does Remote Work, Work?

You have to be disciplined, you have to have check in points, but take 2-4 hours at a chunk and do work! Use e-mail and instant messaging as Jason points out. These are the keys to successfully getting things done! Where I currently work, we actually get this type of allowance. We even do remote pairing (albeit rarely, but it has been done)!  It can work, and it can work very well. However we often break away and have time chunked where we don’t talk, but instead leap forward in our efforts to get work done. Sometimes we pair, sometimes we don’t, it generally depends on if we’re writing code or just getting configs and databases put together to write code against. No reason to pair on a configuration file!  😉

So really, the key isn’t to be physically collocated, or that you have to be remote to each other. The key is to have communication, high levels of communication, but at the right moments in time! The communication must be focused and to the point. It much bring information that is needed, not long drawn out meetings of vacuous boredom and emptiness. The work is done when someone, or a pair, can focus on the problem at hand and find the solution to that problem – alone or with their pair. These are the keys to getting real work done!

Thanks TED Talks for getting me all fired up this morning!  🙂

Beer Dashboard == Kick Ass Awesome!

A good friend of mine, Eric Sterling, has put together the most ultimate Dashboard EVER! A beer dashboard at Bailey’s Taproom. It even has foursquare integration so you know who the mayor is!  Represent!

Bailey's Beer Dashboard
Bailey's Beer Dashboard

He put this together using Silverlight and worked with Jeff & team at Bailey’s to get it rendering perfectly on a giant flat screen. So now when you go to Bailey’s, you can see with a mere glance the state of every beer on tap!

The Oregon Live even had an article by John Foyston posted “Bailey’s New Electronic Beer Menu” on the new “beer screen” (I prefer “beer dashboard”).

Resumes Are Worthless

Ok, so a question came up recently about hiring people for software development roles. In answering that, the group discussing this started talking about resumes. Resumes, which I’m told mine looks good and reads well, hold a certain value to someone entering the field of software development. There are also major problems with having a resume as your primary form of communication to prospective employers.

Resumes provide a horrible medium for communicating your real value to a company.

Sometimes a resume can tell someone that you can build a resume well or not. Sometimes a resume can tell someone that you think you know the technologies you have listed on your resume. Sometimes they can tell a prospective employer that you’ve been working in the field for X number of years. But what the resume really tells people is a list of nonsense:

  • A resume tells a prospective employer that you’ve worked for X years but doesn’t mean you’ve gained X years of experience.
  • A resume tells a prospective employer that you’ve written words on a page, following a loosely selective group of ideas and practices around resume writing.
  • A resume tells a prospective employer that you have or can find a list of keywords associated with a particular job position.
  • A resume does not tell a prospective employer that you actually know these technologies the keywords are associated with.
  • A resume does not tell a prospective employer that you know how to structure sentences, clear thoughts, or actually communicate effectively in a group.
  • A resume does not tell a prospective employer anything about your learning technique, how you develop or work in a group, or other pivotal soft and hard skills required for the position.
Summary:  Resumes are often a lie or misleading.

Some other issues with resumes. These are just simple things that I’ve found, and many others in similar positions as I, are practically truisms.

Looking only at resumes takes the top 5% of developers off market for you. Many, if not most of the best communicators, coders, and well rounded individuals that you want on your team will not submit a resume first. They’ll have to know you, gotten positive word of mouth, or otherwise been informed of your hiring and company. If your company uses resumes as a first step, you immediately are removing the top tier 5% of people. This isn’t just me seeing this, take for instance observations from people who have hired many more people than me such as Joel Spolsky (who does actually use resumes, but realizes they’re practically useless) or Jason Fried and David Heinemeier Hansson.

By stating this, I’m not saying to totally disregard resumes. Albeit that would be nice, but simply saying that resumes should be regarded with absolutely minimal validity. For the most part, resumes are not very valuable and if you can remove them from your hiring process your group or company will be much better off for it.

Good luck hiring out there! 🙂

Holy Sh@#! Did You See What That Program Does!!!!!!

Have you ever worked for a startup? A successful startup? Have you ever seen the excitement in a startup meeting, hackathon, or other event were an idea starts to come to fruition! When the users of the startup’s application finally see it and start getting excited? Have you seen when people get so excited because you are about to CHANGE THEIR LIVES FOREVER?

Startups are crazy exciting. However startups can also be death marches of pain and anguish. It’s up to an individual to be careful about joining startups, to know the people involved and the leaders. It is up to the individual getting involved to make sure the owners of the effort are on track and heading in the right direction! It can be extremely stressful just deciding to get a startup kicked off!

I’ve been working with a number of people and volunteering ideas and efforts to startups lately. If for one single reason I get involved with startups, is because of the excitement! It is something not felt in any other industry ever. The entrepreneurial stress and excitement is unmeasurable!

So, Why Am I Rambling About Startups?

I’m rambling on about startups because it is that time of the cycle again in the tech sector. The excitement is contagious! The ideas are flowing and slowly but steadily being implemented. Many ideas are horrible, but there are the gems that will create new jobs, simplify lives, enable people to do more with less, and in the end make everybody’s lives better. I’d like to just encourage people to look past the technology, past the in religious conflict of Emacs vs. Vim, and jump on board some of this excitement. Get in the battle to succeed and bring change, sometimes by force! Be disruptive and cause those that don’t want change to get pushed aside so that our day to day gets better!

…and keep in mind that being a developer you are one of the most valuable parts of this entire effort. You have the ability to enable massive and disruptive change and create a better future. Sometimes it is slow, sometimes it seems to grind along, but we developers are the movers of the world these days! Make that change!