5 Books Every Project Manager Should Own

You’ll find many blogs listing recommended reading for developers, including my own: 6 Books Every Programmer Should Own. I thought I would come up with a list for Project Managers and Business Analysts that go beyond what they would teach you in the Project Management Body of Knowledge.

You will notice that many of these books were written prior to 2000, but their content remains relevant.

Rapid Development: Taming Wild Software Schedules

Steve McConnell

Rapid Development points out several mistakes that project managers and project teams consistently make that end up causing projects to fail.

Rapid Development

Mythical Man-Month

Frederick P. Brooks Jr.

Brooks exposes several myths of running projects such as: adding people to a project doesn’t shorten the completion time, and the silver-bullet solution that will solve all problems.

Mythical Man Month

Peopleware: Productive Projects and Teams

Tom DeMarco & Timothy Lister

The main theme in this book is that it’s people who make a project successful – if you take care of your good people, success will come.


Software Requirements 2

Karl Wiegers

You’ve probably seen the classic tree swing cartoon (), effective requirements gathering is what can prevent these differences from happening. Quality requirements come from spending quality time upfront and effectively communicating throughout the process.

Software Requirements

Software Project Survival Guide

Steve McConnell

This is the second book on this list written by Steve McConnell, you’ll also see him mentioned among the books for developers. This guide is “No Silver Bullet”, but it is an approach that typically will work for you most of the time.

Software Project Survival Guide

What other books do you as a Project Manager or Business Analyst have on your bookshelf that have acted as your bible?

Tagged with: , , , , ,
Posted in Career

Using Git with Xcode, Part I

A few years ago I wrote a series of posts about getting Subversion working with Xcode. Now that the latest versions of Xcode now support Git, I figured I would put together a tutorial about getting Git working with Xcode. Having worked with Git for only a short while, I find it is a much easier source control management system to work with compared to Subversion and others.

Getting Started with Git

If you are brand new to Git, you can get a quick overview of the product and download it by visiting the Git official website. One of the best overviews and tutorials that I have found is at the Git Reference website. The tutorial walks you through how Git was conceived and introduces you to some of the most common commands.

Creating a Local Git Repository for NEW Xcode Projects

The easiest way to put a new Xcode project under version control within Git is to select the Create local git repository for this project check box when creating your project in Xcode. You can verify that this project is under version control by looking for the .git directory under the project. You will need to use Terminal to browse to your project folder and perform a ls -a to see the directory.

Xcode Local Git Repository

Creating a Local Git Repository for Existing Xcode Projects

To add an existing project to a new local Git repository will require you to use the command line. Open Terminal and navigate to your project directory. You should first create a .gitignore file in your project directory. This file will tell Git to not track certain file patterns.

Here is a sample .gitignore file for Xcode projects:

# Sample .gitignore file for Xcode Projects




If you walked-through the tutorial I mentioned above in Getting Started with Git, these commands should be familiar to you.

1. Initialize a new Git repository

$ git init

2. Add project files to Git repository

$ git add .

3. Perform an initial commit of files to Git repository

$ git commit -m “Initial Commit”

4. Add repository to Xcode

Your code should now be under version control; however, now we need to tell Xcode about the local repository we just created. Open Xcode and from the Window menu, open the Organizer.

Xcode Window Menu

The Organizer lists all registered devices, projects, snapshots, documentation and version control repositories. Click on the Repositories icon.

You need to create a new repository, click on the plus (+) in the bottom left of the window and select Add Repository…

Xcode Repository Options

In the Add a Repository wizard, enter the following:

  1. 1. Name – This is typically the name of the project or collection of projects.
  2. 2. Location – Since we are adding a local repository, this the absolute path of your local repository or project.
  3. 3. Type – This should be Git in this situation.

Add a Repository Window

After you click Next, your local repository should be listed on the left-hand side of the screen. Clicking on it, should list an entry for your initial (or subsequent) commits and the files modified.

You should now be able to make changes to your project within Xcode and commit your changes using the Xcode GUI. In the follow up posts to this series, I will walk you through using the Xcode GUI to commit changes and also show you how to setup a remote repository on BitBucket.

Tagged with: , , , , ,
Posted in Tools

The Leadership of Steve Jobs

Apple Computer Logo

A few days prior to the passing of Steve Jobs, I did a presentation on leadership incompetence – focusing on Steve Jobs.

Did I just say that Steve Jobs was an incompetent leader? Yes, but not the Steve Jobs that brought us the iPhone, iPad, iMac, iTunes, etc.

The leadership incompetence that I am referring to goes back to Apple’s early days, when they were still called Apple Computer Inc. One of the best portrayals of the early days of Steve Jobs and Bill Gates was in the docudrama The Pirates of Silicon Valley released in 1999. This movie showed us a Steve Jobs who was not the CEO of Apple, but rather the head of the Macintosh Division.


Take a look at this following clip from the movie which shows what kind of manager/leader Steve Jobs was at the time:

The Steve Jobs portrayed in the video was a results-only manager. His management style was temperamental and erratic. He did not care about his employees. He just wanted results and wanted to see the success of the Macintosh line.


What happened to the company afterwards?

The Apple Macintosh was released and was well received.

What happened to Steve Jobs?

Steve Jobs, co-founder of Apple Computer, Inc., was forced to resign from the company. So what happened, after he resigned? Steve Jobs went on to found NeXT, a rival computer company that would later be bought by Apple and whose operating system would be the basis for Mac OS X. Steve Jobs would later return to Apple almost 10 years later and serve as CEO (until August 2011).


I don’t have a video of Steve Jobs leading in action, so I will have to take his word for it. In this interview at All Things Digital D8 Conference, Steve Jobs describes what he does all day at Apple.


This video portrays Steve Jobs as a competent leader.

Compare this to the earlier video – note that what Steve Jobs talks about is: leading teams and communicating ideas. While the final products are still important to Steve Jobs, the process of getting there is also important.

Why in the early days of Apple was Steve Jobs an incompetent leader?

  • Lack of business knowledge?
  • Single focus – Macintosh line of computers?
  • Lack of interpersonal skills?

If you watch the entire movie – Pirates of Silicon Valley, you will see that although Steve Jobs was a visionary, he was not a people-person.


Although you can lead a project to success, it does not mean that you are a successful leader. To be a competent leader, you must be able to accomplish goals, provide support to your team, and receive empowerment from your team.

Tagged with: , , , , , , ,
Posted in Leadership