Home » Archive by category "Programming Best Practice"

How to Sabotage Estimates

Over the last week, I’ve been helping other programmers estimate the task they’ve been assigned and this has caused me to reflect on how I estimate software.  What works.  What doesn’t.  What mistakes I see people make.

There has also been a move to avoid estimates entirely.  The argument goes something along the lines of, “we know the least about a project at the beginning of the project, so we can’t really give an accurate estimate.”  Which is mostly true.  And yet, there are people who need to know “how much is this going to cost?”  What do we do for them?  How do we balance the two realities?

And then all of this lead me to think of all the ways we sabotage our estimates, or our estimates are sabotaged for us.

You might think that estimating projects only applies to project managers.  But the truth is, most places I have worked rely on programmers to give them estimates, and frankly, most of us screw this up.

How to Sabotage Estimates
Photo credit: Musée McCord Museum via Visual hunt / No known copyright restrictions

Continue reading “How to Sabotage Estimates”

How Not to Choose a Framework

In my job as a JavaScript architect, trainer and mentor, I’m often asked, “What’s your favorite framework?”  Or “What is the best framework?” And it surprises people when I give them two answers to that question.

Right now, of the frameworks I’ve looked at, my favorite framework is React JS.  But if I were picking a corporate framework, at this point I’d probably land on Angular 2.0.

But the question you are probably asking is , “Why two different selections?”  And, I think a more interesting question would be, “How did you select which one to use?”

In fact, when I was thinking about writing this post, I was going to title it “How to Choose a JavaScript Framework” but as I considered what I would actually say, I realized that the factors I would use really apply to any language and any time.

But an even more interesting question is this.  What factors are essential when picking out a framework.  If I ignored these questions, what are the cost?

So, I give you…

How Not to Choose a Framework
Photo credit: Tony Webster via Visual hunt / CC BY

Continue reading “How Not to Choose a Framework”

Values, Beliefs, Green Civics and Programming

I’ve written before about how your beliefs impact your behavior as a programmer in several previous articles:

In fact, many of my post that don’t address a programming skills directly, tend to deal with why we do what we do (or not) as programmers.

But one question I’ve never asked is this, “If what we believe drives what we do, what drives what we believe?”

As it turns out, this is an even more important question than, “what do you believe?” because it also makes you ask follow-up questions that may make you uncomfortable.


Continue reading “Values, Beliefs, Green Civics and Programming”

5 Reasons Learning Terminology Increases Your Effectiveness [As A Programmer]


A couple of weeks ago I wrote a post “7 C# Interview Questions to Weed out Losers” which was my most popular post yet.  As of this writing, it has received over 13,000 views.  It also got a lot of comments.

While there are a lot of things I could respond to, the one I want to focus on today is what I would call, “The fallacy of concepts over terminology.”

While none of the comments actually come out and say this, several imply that knowing the concept but not knowing the proper term for it is enough.  In conversations with people I’ve worked with, I’ve received similar feedback.  In fact, as recent as three years ago I actually told someone, “If you want someone who can pass some sort of test, I’m probably not your guy.  If you want someone who is an awesome programmer, I’m your guy.”

But three more years of experience has changed my mind. Continue reading “5 Reasons Learning Terminology Increases Your Effectiveness [As A Programmer]”

15 Ways To Write Beautiful Code [That Have Nothing To Do With Testing]


I got a question this last week that I answered very briefly but I felt that to answer it completely would take a blog post.  So here’s the blog post.

Should the author of a piece of code be responsible for more than just unit testing, or does peer review have a play?

Continue reading “15 Ways To Write Beautiful Code [That Have Nothing To Do With Testing]”