Middle Management

There are many businessy people kicking around this blog (and my LJ) who have figured out people a whole lot more than I have. Given that, I appeal and beg for them to share their knowledge and wisdom.

It’s looking likely that I am going to become grunt quasimanagement. Due to various political issues that have cropped up, it has been decided (note the passive voice) that the tech lead will skip project and go elsewhere. Since the project is pretty clearly too much for one lead to handle, the project is being divided into two distinct parts, and it’s looking like I will end up leading one of them (the application-development one). The team is small, but the situation is tough, and I would like to have as much advice as possible wandering into it so I can try to avoid screwing things up.

So my question is: how should this young tech lead handle being placed atop a powder keg? What have supervisors or other low-tier management done which has really made things smoother for people, and what bonehead stunts have they pulled to muck things up? What traps have they fallen into? What are good ways to try to diffuse a tense situation?

Help?

PS: It’s official. I’m the new Application Development Technical Lead for my project.

No related posts.

This entry was posted in To Be Categorized and tagged . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.
  • analog

    Um. Run away?

    Assuming you don’t flee the death march in terror, and do find yourself in a leadership role, I would strongly encourage that you pursue using the Scrum methodology to get your project management under control. I had the good fortune to meet Ken Schwaber (Scrum guru) a couple of years ago, listen to one of his expensive lectures, and have dinner with him afterward, and I know his process was designed specifically for people in your situation.

    Part of the beauty of Scrum is that, unlike XP and some other agile methodologies, it isn’t exotic. It doesn’t impose controversial practices like pair programming, and doesn’t require tremendous team discipline. It requires management discipline, but if you can’t get that, you have no business being there anyway. Therefore, it’s relatively easy to talk management into it, and it provides a high return on investment.

    Here’s some basics. First, it uses fixed short iteration cycles of about a month. At the beginning of an iteration, the customer(s) and development team negotiate what will get accomplished in the iteration. Here’s where management discipline first comes in… first, they cannot DEMAND things, they must negotiate, so development can say no. Second, they cannot change iteration requirements in the middle of an iteration, without stopping the iteration and freeing development of responsibility for whatever promises were made. If you can just accomplish this basic iteration mechanism, you’ve made tremendous progress in predictability, AND getting customers out of development’s hair so they can work. And again, if management can’t control itself well enough to handle one month iteration cycles before changing requirements (or acknowledge that only so much can get done in one month), flee in terror.

    The next thing is the daily standup meeting culture. Every development team should do this – have a meeting sometime in the morning, with all developers attending, so everyone can stay abreast of what’s going on. It should be short – if something takes too long to discuss, have a meeting outside of standup. Scrum has the peculiar idea of pigs and chickens at its standups – pigs (team members) may speak freely, but chickens (non-members visiting the standup) speak only when spoken to. So management/customers can come OBSERVE the meeting, but can’t talk! (the pigs and chickens thing comes from a joke about breakfast… chickens are involved, but pigs are committed).

    But my basic opinion is simple – if you can get an agile process like Scrum or XP in place, your development WILL get itself under control. However, without management discipline to insulate developers from customer demands, it won’t work. And if management won’t do that, just get out.

    Oh, and I should add that on my project, we use a sort of modified XP. The project is now four years old. We are on time, under budget, our code quality is high, productivity is high, we can plan requirements AND MEET THEM about a year out, and staff turnover is fairly low.

    I credit this success to a few factors. First, layered iterative development. Large-scale planning is done on a yearly basis. There are two or three releases per year. Each release consists of six to twelve iterations of 2-3 weeks each. Each iteration consists of a controlled number of stories (XP terminology).

    The second success factor is pair programming in shared, open workspaces. Developers don’t work in cubicles… instead, there are open clusters of workstations where all coding is done. Communication between developers is very high that way. This greatly reduces the cost of staff turnover as well.

    A third factor is test-first programming. Unit tests are integrated into the code base, and tests are written BEFORE code. This makes large-scale refactoring possible, which keeps the code base clean and flexible. Refactoring and code quality maintenance built into the iteration cycle, and customers cannot cut into that time, structurally.

    Finally, remember the words of Kent Beck in Extreme Programming Explained… there are four variables in software development – cost, time, quality, and scope. Customers/management control three variables, and development controls the fourth. Broken customers/management believe they can control all four (the situation you’re in now). Quality is the first to lose, followed by the others. Quality is not a good control variable. Controlling scope is the best way to control the process, and that’s what all the agile processes are about.

  • http://enfranchisedmind.com Candide

    Thank you very much…I appreciate the reference to Scrum.

    They keep saying they need to move to an agile methodology, which is great, but nobody has actually made the steps to take them there. I’m hoping to be that person, because we simply can’t handle the level of turnover we’ve been facing.

  • http://enfranchisedmind.com Candide

    BTW, one of the people, when asked if they wanted this role, had possibly the best exchange I have ever heard over the cube wall.

    Current Tech Lead: How would you like to take on some of my resonsibilities?
    Developer: How would you like me to vomit on your shoes?

  • analog

    As long as they want an agile methodology because they want to fix their problems, rather than they want to SAY they’re fixing their problems by doing something fashionable, the environment is good. I like Scrum because it’s very lightweight and easy to implement. It’s all about management practice, not coding practice, which makes it easier to do top-down.

    The trick, as always, is that management must be disciplined. And I mean specifically management here, not customers. Development teams MUST have someone willing to take bullets for them, and fend off those sales drones who promised the moon and stars to some customer by third quarter. If a development team must be answerable to anyone but their immediate management, things won’t work. Developers (and team leads/lower management) MUST be able to tell customers to buzz off, and take it up to middle management if they don’t like it, and middle management must back the developers. And upper middle management must back the middle managers. And so forth.

    Only development can properly measure scope against time and resources, so they should be in charge of scope. Every single agile methodology has that at its root.

  • http://enfranchisedmind.com Candide

    I think they understand that they need an Agile methodology. I am getting some hesitancy and pushback though when I float even tame ideas like not having code ownership, though.

    If I tell management that I can’t do it, buzz off, that requirement simply isn’t going to be met by that date, it will be death — I was informed the other day that we’re the first project in the recollection of IT management which actually said “No, we can’t deliver that by that date.” I think the trick is going to be doing a Magician’s Choice with scope — allowing management to choose, but forcing the context of the choice. To this end, I like the idea in XP of allowing management to choose which collection of stories go into an iteration: it allows management to have their say-so, but allows development to set the structure within which they say that.

    So I’m going to give that a shot, I think…I’ll let you know how it goes…

  • Categories