Posted on

The Benefits of Being A Technical Project Manager

Over the years I’ve worked with a lot of other IT project managers that never really understand the technical side of their project or product.  Most didn’t even have a desire to do so!  Coming from both a business and technical background, I’ve found that being a technical PM is a huge advantage, not only to me, but also to the greater project and the other members of my team.

In most organizations, a project manager is responsible for:

  • Creating and maintaining a project plan with tasks and estimates
  • Communicating with both IT and business stakeholders
  • Risk management and escalation
  • Managing scope

Yet how can a good project manager…

…verify whether a developer’s estimates are correct for a given task?

…create effective and meaningful status updates without knowing what’s going on with development and QA, and what are the major issues the development team is running into?

…take effective and meaningful meeting notes without understanding what is being talked about?

The benefits of being a technical project manager extend beyond the typical PM responsibilities and create a more well-rounded individual that can help a project in many different ways.

Benefits

 1. Better Estimates

Fact: Estimating is hard.

If you’re curious why software development projects are always running late, read this great article:

Why are software development estimates regularly off by a factor of 2-3 times?

With software development, it’s easy to forget about things like environment downtime, requirements changes and organization red tape.  When someone estimates it will take “1 hour” to develop a widget because “it’s a very simple [screen/component/function],” I can call B.S. knowing it’s going to take much longer than that.  People often forget about unit testing, handling negative test cases, creating test data to validate, code merges, documentation, etc.  Almost nothing takes 1 hour.

When doing the initial project planning, I think it’s important to work with the developers on the team to map out what the schedule will look like.  I try to ask questions about how complex a task is from a technical perspective, what kind of potential road blocks may arise and how confident they are in the estimate.  This not only helps during the initial planning phase, but also helps with load balancing and figuring out what areas of the project will need the most focus to stay on track.

2. Add Value to Other Parts of the Project

What are the typical ways for a project manager to add value to a project?  Keeping the schedule on track, staying organized, reporting status, etc. But there are only so many status reports one can write. How can a project manager directly help drive the project forward in other ways?

Another great benefit to being a technical project manager is being able to help out where the project team needs it the most.  Here are some ideas during the different application phases where a technical PM can be helpful:

  • Requirements: take notes in meetings to capture requirements and help the BA turn those into documentation
  • Design: ask good questions and sometimes make suggestions during design session that will hopefully generate more discussion and ideas from other team members
  • Development: smoke testing the application before it gets to QA
  • QA: help with defect triage and manage the relationship between development and QA
  • Pilot: work with the application users and take notes on feedback items that can be brought back to the development team for fixes or enhancements

On my projects, I’ve done everything from flashing new OS builds onto mobile devices to suggesting branching strategies and testing applications during pilot with my business team partners.  I will do anything I can to help the project and the rest of my team.

3. Be the Link Between Development and the Business

Perhaps the biggest advantage to being a technical project manager is having the ability to fill the communication gap between the development team and the business team.  This can manifest itself in many ways:

  • Describing how individual development components relate to the big picture for an organization
  • Ensuring the business team understands why certain technical decisions were made along with the benefits and trade-offs
  • Explaining to the business why a requirement may not be technologically feasible – but here are some alternatives

What Now?

So now you’re convinced that you should become a technical project manager…but how?

1. Take Time to Understand Your Project/Product  

Talk to the developers on your team about the software stack.  What kind of database is being used, is the code native or cross-platform, is the application a thin client or thick client?  (And if you’re not sure what those terms mean, go find out.)  What are competitors doing with similar applications or devices, and can anything be learned from those?

Becoming a good technical PM also requires knowledge from the business side of the project to see how it relates to technology.  Take a look at the requirements and talk to the BA on the project.  Talk to the end user (not just the decision makers who draw up the requirements) and learn how the product is going to impact them.  How did the requirements drive technology decisions?

In the end, a project manager is never going to understand the code as well as the developers or the software stack as well as the architect or the requirements as well as the business analyst – but a project manager can be well rounded in all facets of the project and have a high-level understanding of each area.

2. Learn to Code on Your Own

The internet has some great resources and there are plenty of places to learn.  One of the best I’ve found is codecademy, a free and interactive tutorial that lets you code right from the browser for javascript, python, and ruby.  Use this tool as a foundation for understanding data types, boolean logic, conditional statements, and loops – things that can be applied to almost any programming language.

I would suggest starting with web development: javascript, HTML, and CSS.  It is the quickest to get up and running: code doesn’t need to be complied, it can be developed in any text editor and it can run on a browser (something everyone already has).  Plus a lot of people have dabbled with creating a webpage.

3. Build Something on Your Own

After you learn to code, the next step is to work on a side project towards a goal.  Maybe it’s a website or an iPhone/Android application.  Just make sure it’s something that you’re interested in so you enjoy working on it.

In my spare time I’ve worked on a couple of side projects.  One such project is a “Yammer” replacement: a couple of years ago BlueFletch was using Yammer, the “enterprise social network,” but it was slow and constantly required those annoying (and endless) Adobe updates.  I decided to work on a webapp that allows people to post links and comments, and BlueFletch has been using it ever since.  I used that opportunity to improve my javascript skills, play around with node.js (javascript for server-side code), and learn about mongodb.  I built on that knowledge to work on another project for tracking our Fitbit challenge.

4. Share Your Code

My final suggestion is one that you probably will dismiss right now: get on github and share your code with developers.  Even though it may be intimidating to have more experienced developers look at your code, their feedback is going to be even more valuable than the development work you’ve done on your own.

There are still questions over how technical an IT project manager should be?  From my experience, I’ve found it to be invaluable and strive to become even more technical every day.


Posted on

Fitbit Force Idea: Meeting Reminders

When news came out earlier this month that the Fitbit Force would be getting caller ID sometime soon (next month?), I got really excited about the future of this little gadget. Caller ID would be pretty great: I can imagine a bunch of times where my phone is in my pocket while I’m in a meeting, it buzzes, and I quickly glance at my watch without anyone noticing to see whether I need to pick it up.

But then I started to think bigger – what would be really helpful?

What if the Fitbit app could hook into my calendar and remind me a few minutes before it’s time to go to a meeting with a short buzz? Then it scrolls the subject of the meeting and the location (e.g. Conf Room D5). As a project manager who attends about 5-10 meetings a day, this would be awesome. I’d never miss another meeting by accident and I wouldn’t have to constantly pull out my laptop or open an app on my phone to figure out what room my next meeting is in.

The only question is whether Fitbit will enable apps to tap into these “notifications”. Fingers crossed!

Finally, I want to mention an awesome app that my (formerly non-developer) co-worker Jeff Steinke created for the Pebble watch: the Pebble Golf App. I don’t have a Pebble watch and I don’t really play golf, but this seems really useful for tracking your individual strokes per hole while also keeping a running total. Go check it out!

Posted on

My Windows Tools

I know that I just got a Macbook, but I still have a lot of use for most of these Windows Tools. (I also started working on this before I bought the Macbook and wasn’t going to let it go to waste)

Utility Tools

  • AutoHotKey: A must-have whenever I install a new version of Windows.
  • Launchy: Launcher for Windows.
  • Notepad++: Best text editor I’ve used with tabs and syntax highlighting for various languages among other features.
  • Paint.net: Best alternative to Photoshop (and, in my opinion, better than Gimp).
  • KeePass: Some people like LastPass or 1Password, but I prefer KeePass since it’s local and gives me a little more piece of mind that it’s secure. I can also get my passwords anywhere by syncing it through dropbox.
  • PureText: Ever wanted to just paste text without formatting? All the time! Me too, which is why this tool written by Steve Miller is so great.
  • f.lux: Working at night is so much better on my eyes after installing f.lux. I barely notice the difference while working, but afterwards my eyes don’t hurt.
  • 7-Zip: Can’t beat this compression utility.
  • StrokeIt: Mouse gestures for minimize all, browser back, closing an application, etc.
  • Bulk Rename Utility: Powerful tool that makes renaming files a breeze (though it is a little overwhelming at first). Mostly use this for organizing my music and pictures.
  • Virtual CloneDrive: Free tool to mount .iso files.
  • Foxit PDF Reader: Because Adobe software updates every few days is the most annoying thing ever! This lightweight PDF reader is a great alternative to Adobe Reader.
  • VLC: Opens any media file and takes the pain out of finding the right codecs.
  • TeraCopy: Faster file copying.

Web

  • Chrome: Use this as my main browser.
  • Firefox: Use this as my secondary browser for work email and occasionally web development with firebug.
  • AdBlock Plus – Be sure to uncheck “allow some non-obtrusive advertising”; otherwise your google searches will show a bunch of ads at the top (and that’s not intrusive?!?).
  • Buffer: Share articles to twitter, linkedin, etc. at specific times throughout the day (also have the app on my phone).

Productivity

  • Dropbox: Probably my favorite tool and something I can’t live without now. Use it for syncing between my laptop, desktop, phone, and tablets.
  • Less Meeting: SaaS that is great for managing meetings through the use of agenda items, attendance, bulleted notes, and action items. The Outlook plugin makes my life so much easier for managing meetings.
  • Evernote: Useful for taking quick notes during shorter, more informal meetings, and for jotting down random thoughts.
  • RescueTime: Allows me to track my time to see how productive I’ve been.

Development

  • Android Studio: Built on top of IntelliJ and has everything I need for Android dev. I also like gradle for building.
  • JetBrains Webstorm: Great IDE.
  • Visual Studio 2012: I grew up on Microsoft technology, and while some things did change with 2012 (e.g. I really don’t like the menus) I still know my way around.
  • BeyondCompare: File comparison tool.
  • Genymotion: Much better than Android’s emulators – super fast to start up.
  • TortoiseGit: GUI for git that integrates with windows explorer.
  • TortoiseSVN: GUI for SVN that integrates with windows explorer.