Software methodologies, tools and technologies are continually changing, but according to the book Peopleware, recently updated with six new chapters, the toughest issues in a software organization are not technology-related, but people-related. Team members, project managers and leaders must evolve with the times and stay technology-savvy. In this article, we'll hear advice on how software development leaders can stay on top of technology changes while creating productive teams.
Collaboration is more than just a buzzword in software development circles. Collaboration is the cornerstone of Agile development, and arguably one of the most critical aspects of strong teams. Many Agile teams talk of the collaboration between developers, QA and product managers on Scrum teams, but domain experts are joining forces in other ways as well.
One example of a growing trend in software development groups is the forming of a "DevOps" organization. DevOps -- the morphing of development and operations with a goal of creating automated deployments -- is an example of how roles are blending and lines are blurred.
The modern-day project manager must understand primary roles and responsibilities, and at the same time encourage and foster a spirit of collaboration between team members, allowing them to go beyond rigid boundaries when necessary. The Agile project manager promotes collaboration beyond the small Scrum or Kanban team in a way that encourages open communication and trust.
Another area in which software leaders must maintain expertise is in understanding the abundance of tools that are used on the teams and how they best integrate.
With the variety of application lifecycle management (ALM) tools on the market, there is no shortage of choices for the team. However, getting the various tools to "play nicely" with one another can often be a huge challenge. However, if the leaders can solve any integration issues between tools, they are more likely to be able to easily generate reports and get the information they need to track projects and continually improve.
That being said, leaders must remember that those using the tools in their day-to-day work need a say into what's working well and what's not.
Leadership is no longer top-down
When asked how leadership today differs from leadership philosophies ten years ago, Tom DeMarco, co-author with Timothy Lister of the book Peopleware: Productive Projects and Teams, " answers this way:
To my mind, the standard notion of leadership in our industry has always been flawed. In that view, leadership happens down the hierarchy: You are led by your boss, and you lead those who are direct and indirect reports beneath you. Like many of the flaws in the way we run technology teams, this one comes from a fairly blind attempt to apply an industrial (production) model to the management of teams of highly motivated knowledge workers. You can't manage or lead knowledge workers the way production managers run their shops; it just doesn't work.
Our notion of leadership is that the leadership that really matters is between peers, across the white space and even up the hierarchy. This is absolutely essential because knowledge is not distributed according to position on the hierarchy or salary. If the person who is at the bottom of the hierarchy and makes less than anyone else in the organization has the knowledge that is essential to what has to be done, then he/she is the leader. Attempts to overrule this are always a mistake.
The hardest problems to solve are not with technology
There is no doubt that leaders in software development organizations must be comfortable with technology and the vast amount of change that occurs in the industry. However, in their book, DeMarco and Lister write how through years of research and study they have found that the failure of projects is not due to technology. Their underlying thesis is summed up with this quote from the book: "The major problems of our work are not so much technological as sociological in nature."
Given this, leaders must not only work to stay current in technology trends, but more importantly, they most work at understanding their teams and how to best motivate them for success.
Peopleware offers six pieces of advice for building a strong team:
- Make a cult of quality.
- Provide lots of satisfying closure.
- Build a sense of eliteness.
- Allow and encourage heterogeneity.
- Preserve and protect successful teams.
- Provide strategic but not tactical direction.
Of course, there is no silver bullet, and the challenges each team faces are different. A strong leader will work toward keeping current of technology changes, tools and processes. More importantly, the leader will foster collaboration and empower the teams to play a crucial part in decision making. Working together, they will be able to tackle challenges faced, whether those be with technology or with people.
Quotations taken primarily from Tom DeMarco and Timothy Lister. Peopleware: Productive Projects and Teams, 3rd ed., Pearson/Addison-Wesley Professional, 2013.