Catherine Powell

Catherine has spent the last ten years working throughout engineering, including development, test, support, and product management. She focuses on agile team management and effective software delivery, building high-performance multi-functional teams that work effectively with business needs. Catherine's projects also include non-dogmatic agile training for teams just starting up or looking to move to agile methods. Past experience includes an enterprise storage system, a tablet solution for restaurants, a mobile data synchronization platform, a marketing analytics platform, and several web-based applications.

What’s on My Code Review Checklist

I wrote recently about checklists for peer code reviews. We talked about the benefits of peer code reviews and some tips for making them a natural part of your contests. Today, we’ll follow up with the checklist I use as a baseline. Note that this checklist will vary a bit based on the technology stack and your team’s specific needs, but here’s what I use. First, there are some things that I specifically do not put on a code review… continue…

What Does Your E-mail Address Say About You?

Posted In Looking in Tech
Email In Inbox from
Imagine for a moment that you’re a hiring manager and you’ve been handed a resume. You have approximately 2 minutes to decide whether to call this individual and conduct a phone screen. The resume can be a bit misleading. In some cases, it’s a semi-reliable document that presents the candidate in his or her best light—great! When the resume has come from a recruiter, though, it’s often NOT the resume the candidate provided. Many recruiters will format and “clean up”… continue…

How to Do Effective Peer Code Reviews

I remember sitting in on code reviews early in my career. You took your code, put it up on a projector, and the architects—shadowy figures in the back of the room—ripped it to shreds. These marathon sessions would take all day and were completely exhausting. They certainly improved the code, but they wreaked havoc with both release schedules and people’s psyches! Nowadays, I do code reviews a little differently. Instead of submitting our code to the senior architects, we do… continue…

New Team Member, New Team Dynamics

Posted In Working in Tech
So you have a new team member. Or, you are a new team member. It’s the first day and we’re all gonna get things kicked off on the right foot. But how? In one place I worked, the first week was spent in mandatory training. It covered HR policies, IT information and policies, marketing overviews and presentations from the architects of the various systems. That doesn’t happen at most companies. In other places, starting and initial training are much more… continue…

Think Carefully Before Upgrading to Python 3

Python Logo
Upgrading software in a timely matter is important (as I wrote here), but I don’t always follow my own advice. I have a client who uses Python, which is currently on version 3.3. The client is using Python 2.7, and I’ve recommended that they not upgrade. In other words: I think upgrading is a bad idea. Why? Python 3.3 was released on Oct. 1, 2012. As of that date, the most popular version of the programming language is… 2.7. Yes,… continue…

Coding Interviews: The Hiring Manager’s View

Posted In Looking in Tech
Cracking Code
Ahh, the infamous coding question. The very idea that a candidate might be asked to code during an interview caused some furor among commenters to a recent post by my colleague Dawn Kawamoto. I thought I’d provide a hiring manager’s perspective. Confession: I ask at least one coding question of anyone who will be writing code. Here are the two major points you should know about it. It’s Not About The Algorithm It’s about solving a problem, not implementing a… continue…

Red Flags to Look For Before Taking a Job

Posted In Looking in Tech
Recently I wrote about the what I look for when I’m considering a job or a contract, things like interesting problems and fun people. There is, however, a dark side. For some things I’ll stop even considering a job or contract. Just like a job’s qualities, these are different for everyone. My red flags might be something you don’t care about one way or another. Before I share my list, I want to include one caveat: Earning enough to pay… continue…

Diagnosibility: How to Avoid Cursing When You Hit ‘Run’

Exeception Code
Starting a new project is exciting and writing code is fun but getting the system to work and/or figure out why it’s not is also a big part of the job. When you’re working with software that’s large enough to have dependencies, basically meaning any real system, diagnosing issues goes something like this: Set up environment: IDE, source code client, language libraries, package manager. Check out source code. Hit the “compile and run” or “run” button. Watch errors spew through… continue…

How to Keep the Good Stuff at the Top of Your Page

Above the Fold (Web Version)
In graphic design, there’s a concept called “above the fold,” which refers to the practice of putting important information in the top half of the page. To no one’s surprise, this comes from newspapers: The idea has carried over into Web design, except there it refers to the display of information the user can see without scrolling: Users can’t be intrigued by data they can’t see. So if you want users to get as many views as possible, you put… continue…

The Zen of Tech Office Design

Posted In Living in Tech
Home Office Set Up
Where you work matters. Spend an hour with a group of developers and the debates will start. Open plan versus private offices. One monitor versus two or even three. Mac versus Windows. Laptop versus home-built desktop. Music preferences. The list goes on. There are even studies that purport to show how productivity changes with more display space, or that open plans decrease productivity. And all of those studies are roundly disputed. In  the end, the ideal work environment is a… continue…