Styles

Sunday, January 4, 2015

Creating a leadership team to make your software project a success

In this, my last post in my Leadership vs. Management series (a week later than I intended due to the holidays), it's time to put it all together and talk about what leadership and management are needed for the successful completion of a project. This is going to be a difficult topic to tackle in a single blog post since the leadership team you'd put in place for a 200-hour project in a small company would look very different from a leadership team built for a company-wide mission-critical project for a Fortune 500 company. Nevertheless, I can still address some of the commonalities between the two.

Leadership

The leadership needed for a software project is relatively straightforward:
  1. You need a Product Owner to serve as the final decision maker to ensure that the software meets business objectives, including functionality, timelines, and budget. He/she does this by keeping the team focused on the features and functionality that the software needs to accomplish its goals. He/she also must decide when a blown budget means that the project should be scrapped, when it should be scaled down, and when to forge ahead anyway.
  2. You need a Chief Technical Architect to serve as the final arbiter between all technical groups (developers, server administrators, database architects, etc.). These groups have very different goals in their jobs and you need a leader who can balance the needs of the project as a whole, primarily (though not entirely) ensuring that the developers are able to deliver functionality without putting security holes or data issues into the system.
I've seen companies try to use multiple people for each of these leadership roles, but that approach almost always fails. When multiple people serve as the product owner, business objectives get ignored because an arbitrary budget isn't being met and important features get ignored in favor of ones pushed by more assertive sponsors. Having multiple architects almost always means having hours of discussion over security/stability vs. speed rather than delivering value.

I don't think it's necessary to have separate people serve as the business lead and the technical lead, but that requires one person to be an expert on the business as well as an expert in technology. Difficult, though not impossible.

For larger projects, it is possible to have leaders of smaller components of the software development effort, but they should always be answerable to the product owner and chief technical architect.

Management

While the leadership needed for a successful software project completion is relatively straightforward, the appropriate level of management is anything but. The number of managers needed will not only vary by project size and purpose, but also by company type, skill level of the workers, and the methodology used for project completion. However, here are a few guidelines:
  • Waterfall projects generally need more management than Agile ones. It is quite possible, with the right approach and tools, for leaders to manage an Agile project without any help from a dedicated manager.
  • Related to the first point, when time and budget are critical to your project's success, having a dedicated project manager can be extremely helpful.
  • Be careful assuming that your leader can manage the project well (or vice versa). Management and leadership skills are quite different, so if you try to make your leaders manage the project, make sure they have the skills to do so beforehand.
  • Nothing says "I don't trust you" like putting in excessive amounts of management. If you think you need a large number of managers for the number of employees you have, maybe you need new employees (or at least better training).

Summary

You need someone to lead the software project from a business point of view and you need someone to lead the technical effort. Committees don't work well here. Management should be kept to a minimum, though what this means for you will vary. On many small projects, you may not need any particular person to serve as a dedicated manager. On large projects, you may need several managers, each managing one portion of the delivery effort.

Other posts in this series

December: Creating a leadership team to make your software project a success

No comments:

Post a Comment