Seasoned or Cynical

It’s amazing what people can do when they don’t know they can’t.

In the beginning you don’t know all the reasons it won’t work.

As the years pass you’ll marvel at what you though was possible – the risks you took.

And still you’ll see other beginners taking on windmills. Some windmills will batter the riders. Some riders will topple their windmills.

Reminiscing with a senior developer that I used to manage we talked about a project we worked on together that had major flaws. I told him, “Don’t worry. That’s what has made you senior. Now you really do know better.”

Failure can teach you good judgment. At best it will teach you which fears are realistic – which gambles pay off.

A junior developer often makes up for inexperience with occassionally wreckless enthusiasm. But senior developers often earn their keep by what they choose not to do.

A senior developer (hopefully) knows the difference between ambitious and unrealistic.

They need to be able to look at a project and say, “Yes, we can do that with these critical changes.” And each part of that sentence is important.

“Yes, we can do that” – don’t let your experience lead to cyncism where every project is doomed to fail and any who think they can achieve something are Polyanna.

“… with these critical changes” – filter out all of the good or simply true ideas to bring forward the indispensible ones. Conserve your ammo.

If you aren’t careful failure might instead turn you into a member of the “no way” choir. If you aren’t careful you might believe that only saying why a project might fail is actually adding value. It’s not. Not really.

I’ve watched junior developers deliver so much more than their senior teammates that it was embarrassing. Perhaps those senior developers overcompensated for failure.

I’ve seen junior developers merrily build weeks of work on a platform that was genuinely incapable of supporting success. Perhaps those junior developers needed more help from a senior developer.

Still, it’s amazing what people can do when they don’t know they can’t.

The truth embedded in Wiley Coyote’s gravity defying double take is that often it is our own perception of doom that causes our doom.

Your Number Two Time Management Problem

OK. I hope I don’t lose anyone over this post. I waited for April 1 to publish it as a softener for anyone that might take this hard.

If you’re like some of my peers over the years you may be flushing precious time down the drain. Here’s some tips to help manage your basic priorities.

The Dumbing Down

Sometime late in the 20th Century Disney doubled down on potty humor. To be fair, this seems endemic in childrens’ entertainment.

These days movie makers behave as if it’s just a given that brassy body sounds are hilarious. Children learn to guffaw at these indescrete indiscretions. Some are affected well into their professional years.

Here’s the real damage to your professional life: you take longer than necessary to do your necessary.

The Seated Mutex

We must hit the head issue here: It can be challenging to set aside inhibitions and act boldly. And none shall pooh-pooh those who do. There is no room for childish squeamishness in the little boys room.

Of course, some of you have never fallen for this. Some of you have the maturity and self confidence to attend to your business with abandon. But many of you aren’t comfortable playing a tune in the tiled concert hall.

I have plenty of anecdotal evidence on this. You time your expeditions to a time when you can have all of the resources for yourself. If you find any resource contention you move on and come back.

If you do get started and someone else enters the queue then you immediately put your tasks on hold. How often has someone started after you and finished before you?

All this time spent avoiding being a potty humor punch-line is wasted. You aren’t as productive in the stall as you are at your desk.

Even if you intend to ruminate – mull things over – you would get better results on a stroll than in the throne room.

Time in the restroom not doing business is a complete waste of time. Keep your waste time to a minimum.

Join The Movement

You can take back these precious minutes and do more. How? Use all of the below that apply:

  • Get over it
  • Pretend to get over it
  • Distract Yourself
  • Do More Real Work

1. Get Over It

Read that children’s book that confronts this difficult reality Everyone Poops. If you’re in a hurry, just read the title.

Now that you know you’re just like everyone else, move on.

I’m sure you’ve already aced effective elimination. If you haven’t this is the standard:

All of the potentially embarrassing activities take place in the restroom, including:

  1. No. 1
  2. No. 2
  3. burping
  4. Anything like unto 1 or 2
  5. All personal grooming: combing, clipping, tweezing, and so on

Now that you are effective, it’s time to move on to efficient.

Don’t schedule time for being embarrassed by this. Don’t take time to avoid the embarrasment.

Use the proper forum and skip being timid.

2. Pretend To Be Over It

If you can’t get rid of the feeling of unease then just pretend that you have. Do all the behaviors that you would do if you weren’t embarrassed. After a little while you will be over it.

3. Distract Yourself

If you’re having a hard time pretending to not be embarrassed then try distraction. Listen to music, make flushing sounds, do math problems in your head whilest making progress.

My favorite strategy: Play music during a stalemate.

You might lose your nerve. You may find yourself in place, not alone, and in a prolonged silence. We all have portable electronic noise makers. Many of us have songs for ringtones. Time to make technology work for us.

Take out your phone and play some noisy, upbeat song. Use the air cover to good effect.

Your stool-mate will never call you on it. Most will silently be thankful for the cover.

4. Do More Real Work

If you find you have time to timidly address your biological needs then you might not have enough commitments.

Sign up for more. Do more. Let that urgency help you “put away childish things.”

Conclusion: The Vegas Rule

Someone has to have spent a lot of money to make us believe “what happens in Vegas stays in vegas.” There is an analogous rule for the water closet.

Let not shy semi-private privy practice stymie you. Nest not on your porcelain perch. But be bold, never fearing an involuntary indelicate diatribe.

The overriding Vegas Rule of bathrooms will protect you as you make strides in meeting your most urgent deliverables.

Get Into Internships

[I Love It] One of my favorite parts of being a manager (and I didn’t anticipate this) is recruiting interns on university campuses. Being part of offering a great opportunity to students right when they need it is very rewarding.

[Good For Students] A good internship helps a student make a transition from a mostly individual success model to a team success model. I have seen some colleges do a good job encouraging groups to work together in school. Even for these students there is a difference between group projects in school and being part of a team that succeeds or fails all together.

[Good For Companies] Of course, people who employ interns tend to get a great deal. It isn’t uncommon for our interns to get rave reviews from their team mates and Product Owners. They’re enthusiastic and eager to achieve. You can pay them more than they are used to and still be very cost effective.

Recommendations: For Managers and Students Getting Into Internships.

All employement should result from a fit between the needs of an individual and the needs of the company. Keep this in mind and you should always find special satisfaction in searching for and finding that fit.

Internships often have a built in expiration date that makes them particularly useful for both students and new managers: both have an escape clause in case the fit wasn’t great.

In my experience, if the fit is there then internships are often extended. Again, this benefits both the company and the intern.

Even when the fit is there and the internship has to end you have made a new contact in your network.

To Managers:

  • 1. Recruit your own interns
  • 2. Require evidence that they will immediately contribute
  • 3. Polish your hiring skills by using them – A LOT
  • 4. Prepare to give plenty of supervision

To Candidates:

  • 5. Apply before you are ready
  • 6. Be honest and do your best
  • 7. If you’re hired plan to over-communicate

To Managers:

1. Recruit Your Own Interns

If you are going to have an intern then you should take part in the recruiting process. This gives you the best chance to find an intern that will fit well with your team.

I participate in a recruiting program for the entire company. We interview hundreds of interns for scores of slots. Each of us tries to represent a standard, uniform bar.

Still, it is very difficult for that bar to be uniform.

If you’re going to have an intern on your team then you should get out to the schools and do as much of the finding and interviewing as possible. It is impossible to know as much about a candidate from notes as you can by interviewing in person — no matter how robust the interviewing culture.

And many interviewing cultures are not that robust at all.

2. Require Evidence That They Will Immediately Contribute

Even the best intern will generally come to you with less experience and judgment than a senior hire. That doesn’t mean you can’t expect a lot.

Every year I find gems at the schools I visit who have amassed plenty of evidence that they can contribute on a team from day one. Sure, they will need time to settle in. There will be some adjustment to working on a team, and working at your place. But they will deliver value right away.

To prepare yourself to find these gems ask yourself what is the clearest sign of success for a junior member of your team. Now go about looking for those signs with the candidates you interview.

You will probably have a different set of indicators than me. But for reference here are mine:

  1. Can they code?
  2. Can they disagree and commit?

I evaluate both questions by giving my candidates simple coding challenges that they have to solve with me during the interview. I spend some time on behavioral questions and asking a bit about their background. But the majority of the time is a coding audition.

This isn’t the same process I use for senior hires. I use it for interns, and I’ve had great success.

Of course, there are going to be candidates with great potential that can’t quite code yet. That’s OK. I hope they interview with me again in 6 months. If not, then that’s not the end of the world either. Not for me. Not for them.

3. Polish Your Hiring Skills By Using Them – A LOT

Recruiting interns I routinely interview 12 to 15 candidates a day.

I read a lot of resumes. I ask a lot of questions. I do a lot of probing. I do a lot of coaching.

I get a lot of practice seeing good and bad qualities in a lot of candidates. I have to make a lot of hire/no-hire recommendations. I have to take a lot of detailed notes so that I can support the other managers that are hiring from the same pool.

You meet a lot of people. You get a lot of first impressions. And you gather and process a lot of data on a relentless timeline.

This is good.

Most managers hire very infrequently. That makes it hard to have good hiring skills. And the skills you do have go to seed as you neglect to use them.

Go out and interview a lot. Hire a handful of interns a year. Get to see the results of your judgment again and again.

It’s good for you.

4. Prepare To Give Plenty Of Supervision

When you do bring an intern on board give them meaningful work and lot’s of guidance. Meet with them daily or delegate it to a sharp direct.

Mentoring an intern is a great way to grow a direct that is hoping to qualify for promotion.

Be prepared for the intern to under communicate his challenges. Keep an eye on their progress. Let them know they are making a valuable contribution.

As a manager, now is NOT the time to sit back and see what happens.

I remember that during my first internship I sometimes went several days between substantive discussions with my manager or team mates about what I was working on. I treated the workplace like a large and quiet library. Every door had an automatic “DO NOT DISTURB” sign in my mind.

That’s the way I had done homework. But that’s not the way you do team work. You might have to help your intern through that transition.

To Candidates:

My recommendations to managers (above) should be a helpful reference to candidates as well. In addition, here’s some advice just to you interns.

5. Apply Before You Are Ready

A lot of students that are preparing for a software career are detail oriented, perfection-seeking, high achievers. That’s good. You’re going to be great!

Unfortunately, this can lead you to delaying all sorts of things while you are making it right.

You need to realize that there is a big difference between school and work. And the only way to really prepare is to start working in your field.

Workshops can help. Coaching can help. Mentors can help.

But if you aren’t careful you will find that your careful preparation has left you unprepared. There is a difference between theory and practice that you can only begin to learn with practice.

Apply before you think you are ready. Give it a real go. Act as if you are ready. As a matter of fact, you might be!

If you get a good offer and you’re not sure whether to accept it, that’s a good problem to have. Much better than graduating with a 4.0 and not prepared to transition into a job.

6. Be Honest And Do Your Best

In the interview be honest about what you know and what you don’t know. We can tell when you’re making things up.

If you don’t know the answer to a question then you must start your answer with, “I don’t know.”

If you do know how to find the answer then give that answer after admitting that you don’t really know.

I’ve had many candidates say, “I don’t know for sure, but I believe it is something along the lines of…” and their answer was so good that they didn’t lose any points for not being absolutely sure.

7. Plan To Over-Communicate

If you do get hired then plan to overcommunicate. (See point #4 above.)

This does NOT mean talk a lot. Everyone you are working with is going to be very busy.

When I say, “Over Communicate” this has more to do with frequency of communications than the size of those communications.

Be clear on what you are assigned to accomplish. Predict the progress you will make and communicate that to your supervisor. Let her know when you will be late. Let her know when you have delivered. Let her know when you are blocked.

Often your supervisor or team mates will say little when you communicate. This doesn’t mean it was wasted effort. Keep communicating your progress, deliveries, and blockers.

On your first few days it will probably be appropriate to communicate your status every few hours. By your second week you’ll probably be communicating status once a day. Don’t communicate less than once a day until asked to.


Internships can deliver great value to a company and rapid growth to a candidate. Invest in them and you can change someone’s life – even your own.

Recommend: Effective Communicator and Interviewer Conference

Waking up in my own bed again after two days in Palo Alto for the Manager Tools training on DISC (Effective Communications Conference — ECC) and interviewing (Effective Interviewer Conference — EIC).

Bottom Line: I recommend them, both.

The Experience

The setting was intimate. There were 11 attendees the first day and seven the second. In a group so small with high-energy interactive training it is easy to become intimidated or threatened. Our instructors, Dani and Sarah, managed that very well by keeping it professional and low-key.

When I say, “professional” I mean Dani and Sarah stayed on their feet with clear voices, clear speech, varied tone and examples to make sure the subject matter was thoroughly explained and engaging. Every question was welcomed and answered thoroughly while staying fanatically on-time.

Before explaining, ”low-key” I need this set-up: as a long-term listener I was intimidated by my preparations for this conference. Mark Horstman is the voice of manager-tools and there are a lot of meticulous shows in the library covering grooming and social protocol. It’s all helpful stuff, but if you’re a rule guy like me it means, “Hey, that’s a lot of rules I might accidentally break.”

Dani and Sarah went out of their way to make me feel welcome. Each of them introduced themselves to me individually during early breaks in the conference. They made some small talk about things I mentioned in my brief attendee introduction. They took time to connect with me personally without making me feel processed.

I’m not naturally good at meeting new people. I had a goal to meet as many new people at the conference as I could. Dani and Sarah made that easy and I felt a genuine rapport with them.

The Content

A great deal of the conference material is covered in the free podcasts. If you have limited resources you can go a long way through free (as in beer) self study.

If you do have the chance to come to the conference I recommend it.  You will hear things in person that you would gloss over in the podcasts. You will meet people that you want to meet. (That’s attendees and presenters.) These people share some important interests with you and you’ll be enriched by knowing them.

I myself have been a long term listener. I started listening for free in 2010 because I knew my manager was listening to them. That became a great way to learn good things and connect with my manager.  I bought a personal license in late 2012 because I was applying for a management position and I wanted to be able to visually scan and review the show notes. This did a lot to prepare me for the interviews. In late December 2015 my current manager identified funds to send us both to ECC and EIC.

The January conference dates conflicted with a cornea transplant that I had to schedule six months in advance.  I was motivated enough to get there that I moved my cornea transplant up by 16 days so that I could be out of the two weeks of post-op recovery and attend.

Totally worth it.

No, it’s not magic. Neither is Apple, or the Super Bowl, or anything else that has fan boys. But I’m definitely a fan.

P.S. I already had received their most popular Effective Manager Conference materials via video. Recommend that as well. 🙂

Curiosity Installs the Root Kit

I’ve been reading Future Crimes and it is… sobering.  It details all sorts of documented cybercrime and makes some predictions on what kind of crimes we can expect to see more of.

I was perfectly primed to actually read the recent KnowBe4 newsletter when it popped into my inbox. It recaps how Comcast users were targeted with a double whammy that root-kitted their machines and stole their credit cards.

Where does it all start for the mark? Clicking on an interesting add. Read their newsletter for details.

Happy Holidays! 😉

Install Sonar Locally on OSX and Analyze a JavaScript Project

Sonar really shines with statically typed languages like Java and has some very useful analysis it can run for JavaScript projects: critical errors in syntax, code duplication, even test coverage. You can play with all these reports by installing Sonar locally. Thanks to Homebrew it’s not that hard.

Continue reading Install Sonar Locally on OSX and Analyze a JavaScript Project

Weighing Arguments by Word Count

Sometimes we give equal weight to outcomes and risks that sound similar but in reality don’t deserve equal treatment.

Swimming will get you wet. So will walking in the rain. But I keep my phone in my pocket when I walk in the rain.

Hear the other side well enough to fairly weigh their point. Same sounding words can signify dramatically different things.

Universal JavaScript

Presented to a small but packed room on “Isometric JavaScript.” Apparently I put a typo in my proposal and it made it all the way to presentation day.

It’s actually about isomorphic JavaScript. I like the name universal JavaScript even better.

For what it’s worth, here are the slides, and a link to the demo code at