Do Agile Software Projects need a Team Leader?

Home » Agile Techniques » Do Agile Software Projects need a Team Leader?
Photograph of columns in old building

I have only worked on a few projects that have been formally Agile based on Scrum/Kanban, although have been working like this informally since about 1996.

I have worked on many projects as a team leader or as the sole developer or designer.

I am very interested to try to tie my own views on team leaders and documentation to the XP/Agile world. I wonder if Agile only really works when you are dealing with certain teams of experienced programmers. I think there is still a place for team leads and also that no documentation, design or planning because we are “Agile” is most definitely a bad thing. I also think that TDD should be used with intelligence, because to put under test every single line of code no matter what – because NCrunch says so, is massively increasing the amount of work the team has to do and the complexity of the software for diminishing benefit.

Team Leader

The purpose of a team leader in the fast moving software industry is to increase the knowledge and capabilities of his/her team even if the team contains contractors (I’ve worked at some places that specifically exclude contractors from functional discussions that they really need to know about). That way team members are the most effective possible and can do the best work in the shortest time.

As a team leader, there are three modes of operation you can be in depending on the experience of the team and the time available to do the work:

  1. Survival Mode. This is where there is insufficient time to do anything properly, all the time available is taken by the team fighting fires.
  2. Learning Mode. There is sufficient time available to plan things and for work to be done properly, because members have the time to do it properly.
  3. Self Organisation Mode. All team members are sufficiently capable and interchangeable with each other to be able to manage themselves. This is kind of where I think Agile projects need to be, but technology changes, pressures come from the business, people leave and join the team. Its not always possible in my view.

In my experience, not all team members are sufficiently experienced, or know enough about architecture to be able to self manage all the time. If TDD is being used, they will probably spend more time on 100% coverage (trying to TDD EF for example) rather than concentrating on the core functionality of the app they are trying to build.

A team leader is needed to help make decisions, allocate work to different team members, help develop team members, and finally get out of the way when the team capability and circumstances allow. They can also help ensure that procedures are correctly followed in detail, for example related documentation maintained and correct architecture for the project is used consistently.

Documentation and Planning

The basic fundamentals of the project need documentation. The team concentrates more on functionality than planning but time is spent measuring the velocity and time taken on different tasks so more intelligent decisions about this direction can be made in the future. Also writing this down allows the team to look back over history and compare what they know now with what appeared to be a good idea then. Sometimes this can be helpful, however its important that any documentation that the team does produce, is kept up to date.

What the team leader must do is help shield the team from management and too much time pressure, help ensure Agile practices are used, but not try to plan every last detail, functional or time wise (saying you are Agile because you don’t do any design or planning and don’t have team leaders isn’t Agile, its a guaranteed way of projects to fail, or at least take a very very long time to complete). Perhaps in these days its just the name – the team leader is possibly a senior developer or designer / architect, but as I have outlined in this post, I believe the requirements are subtly different.

What do you Think?

I would be very interested in hearing the readers views, although I’m not sure just who is reading this blog as yet. My brothers dog Boo, is about the only one I think. I’ll ask him later…

Meanwhile, I will keep this blog updated with my experiences, because I expect I will be working on quite a few more Agile projects over the coming years.

About Phil

I have been working as a software developer since 1983. This blog could have been called "From Fortran 77, C and Cobol to C# in 20 (not so) easy years", but it doesn't sound quite right somehow. Besides I'm talking about what's happened since 2003, not before!

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Top Posts & Pages


Recent Posts

Recent Comments



  • Mike Cohn's Blog
  • Scott Hanselman's Blog

Scrum Master jobs are on the rise and so are their salaries. But is everything as it seems?


In this post I share 5 highlights from my Facebook Live session with Brian Milner.


Today, Certified Scrum Trainer Scott Dunn shares his insights about the pain felt when leadership do


After making one decision, it can be helpful to make the next decision or two at the same time.

- Scott Hanselman

I love the Raspberry Pi and I am a fan of the CrowPi from Elecrow. I have two of their first CrowPi

- Scott Hanselman

This is an interesting blog post on How to SSH into WSL2 on Windows 10 from an external machine. Rea

- Scott Hanselman

Cool blog post eh? Good title, right? DO NOT DO THE INSTRUCTIONS IN THIS POST until you have read th

- Scott Hanselman

I got a great question emailed to me today. And while I could find the answer and email them back, I

- Scott Hanselman

I've blogged before about Developing on Docker with the new and improved Visual Studio Containe