Slashdot Mirror


Ask Slashdot: How Can You Manage Developers Distributed Across Multiple Projects?

An anonymous Slashdot reader asks whether it's possible to manage a "distributed" team of software developers in different locations who are all assigned to different projects, each with their own independent project managers: All embedded software engineers from multiple offices in different countries are now being reorganized into this new distributed team [with] better control of its own development practices, processes and tools, since everyone is working in embedded software...

While there's extensive material throughout the Internet on best practices for managing distributed teams, it seems to either take an agile perspective, the project manager's perspective or be otherwise based on the assumption that everyone in the team are working in the same project. In my case, I'd be managing a distributed team of developers all assigned to different projects. How can I build cohesion, alignment and trust for my team of embedded software developers in this new three-dimensional distributed matrix organization?

Anyone have any relevant experiences to share with distributed teams or "matrix" organizations? Leave your answers in the comments. How can you manage developers who are all distributed across multiple projects?

112 comments

  1. Use git by Anonymous Coward · · Score: 0

    It's easy, git is the solution to every issue.

    1. Re: Use git by Anonymous Coward · · Score: 0

      Agreed. However the person asking the question has not been able to technically define the challenge(s) because just assigning labels doesn't count as understanding what the solution could be when presented. So using git is a valid answer.

    2. Re:Use git by plopez · · Score: 1

      And MongoDB, Agile, Ruby, Python, and Python.

      --
      putting the 'B' in LGBTQ+
    3. Re:Use git by Z00L00K · · Score: 1

      Well, git is a tool, but it's for source control, not managing users.

      The problem of managing multi-project multi-site development seems to be very much like what we do at work. A lot of overhead and processes that not really fits anyone. Nobody has a really good picture and the system team that shall hold this together have some crazy notion about that Enterprise Architect shall be used to structure the requirement perspective.

      The only reason that we do get something that works is that some people works their asses off and other people stands as gatekeepers and quenches the wildest requests.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  2. Trust Them by Anonymous Coward · · Score: 0

    ... to get lots of first posts while they say they're working on that other project.

  3. Don't. by Anonymous Coward · · Score: 0

    Don't.

    Silos don't make any sense, let your devs integrate into their teams.

    1. Re:Don't. by plopez · · Score: 1

      How?

      --
      putting the 'B' in LGBTQ+
  4. One approach by jetkust · · Score: 4, Interesting

    Whoever mentions the word "Agile", do the opposite of what they say.

    1. Re:One approach by fintux · · Score: 5, Funny

      Whoever mentions the word "Agile", do the opposite of what they say.

      So... Should this advice be followed or not? The A-word was mentioned, after all...

    2. Re:One approach by Anonymous Coward · · Score: 1

      Ah yes, the strategy of listing all strategies as Agile or not-Agile, in which list do we put such as strategy?

    3. Re:One approach by Anonymous Coward · · Score: 0

      This. Instead of "sprinting" in your "scrum" with your "user stories", how about STFU&GBTW.

    4. Re:One approach by Anonymous Coward · · Score: 0

      Says the guy who hates documentation and requirements elicitation because he is incapable of constructing a complete grammatical sentence but his ego will never let him admit it - to the point of alienating everyone else on earth [who finds it very difficult to communicate with someone with such a self-servingly selective vocabulary]

    5. Re:One approach by Anonymous Coward · · Score: 0

      I'm in a 100+ person project with people in two countries. Agile works for us.

    6. Re:One approach by Anonymous Coward · · Score: 0

      Whoever mentions the word "Agile", do the opposite of what they say.

      Says the guy who won't check in any code to any SCM... because he can't. Says the guy who won't document his code, because he can't. Says the guy who loves Waterfall because he can hide for 2 years talking big in meetings; until they find out he didn't do any of the things above because he can't even actually code if his life depended on it. Yep. ~

      Why do I get the impression you're the perfect unmanageable example of someone suffering from the Dunning-Kruger effect?

      I bet you really enjoy talking about yourself in scrums, don't you?

      You CAN Google "Dunning-Kruger effect", can't you? Or do we have to use our little words around you?

    7. Re:One approach by Anonymous Coward · · Score: 0

      Is that like The Butterfly Effect? Or part 2?

    8. Re:One approach by Anonymous Coward · · Score: 0

      STFU&GBTW

      No need to badmouth the gay and transgendered community

    9. Re:One approach by MightyYar · · Score: 5, Insightful

      You probably have a management team who actually understands the intent of agile and crafted a system which embraces the spirit while working well with your particular needs. Many just rename their round-robin micromanagement meetings as "scrums" (only they force everyone to stand the whole time) and re-badge their glacial feature planning process as "stories". Basically, they read the books, adopt the terminology, and ignore the parts that don't mesh with the practice they already like. So, agile in name only and of course all the staff hate it.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    10. Re:One approach by Junta · · Score: 2

      Experience can vary greatly, and overwhelmingly whatever the 'trendy' words used in conjunction with an alleged process approach will be overwhelmingly found in crappy projects, because the majority of projects are crappy, and the majority of project management likes to follow trends.

      At the end of the day, any group will distort whatever stated 'brand name' methodology for project management to describe the way they were going to do things anyway. Over my career I've learned that it's about futile to gauge how a process is going to work based on what branding they use to describe it. I have learned that eagerness to use a popular set of terminology *frequently* indicates project management that doesn't really understand what they are doing (not always). As such, my first reaction to someone saying 'Agile' (big A) is skepticism. Not because of the qualities of it in theory, but because of human behavior in practice.

      So just because someone clearly rolls their eyes at media mention of Agile or project management mention of Agile, do not presume they are some backwards person avoiding SCM (who the hell avoids SCM anyway?) who doesn't document code, who wants to hide behind another process (Waterfall) because they are not doing work. It's far more likely they are a bit jaded from years of real-world experience. Note that the same criticisms of how Waterfall worked in practice, I see happening in nominally 'Agile' projects, slipping dates, misunderstanding the requirements, losing perspective, generally failing to deliver usable projects. Some folks think some magical way of describing a process will fix people, the problem is that the people will on average do things poorly and interpret guidance on process as they see it fitting their personal ideas of how things should get done.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    11. Re: One approach by tysonedwards · · Score: 1

      What about the odd time of double references? I feel like we're going to need a flowchart before too long defining who said what, when, and the dependency trees of their arguments.

      --
      Thirty four characters live here.
    12. Re:One approach by Junta · · Score: 2

      Agreed. Agile is the victim of it's own popularity. It sounds good to say 'Agile' so *everyone* will call their crap Agile. When there came into being 'Agile' seminars, certifications and specific tools, the whole point was lost as it transitioned to mainstream usage.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    13. Re: One approach by plopez · · Score: 1

      I think we need a video conference on this. WHat itme is good for half a dozen teams located across 6 time zones?

      --
      putting the 'B' in LGBTQ+
    14. Re:One approach by superwiz · · Score: 2

      Holy shit... so this is what it's like if you mix Mad Men with Mean Girls. The war of passive aggressive project managers.

      --
      Any guest worker system is indistinguishable from indentured servitude.
    15. Re: One approach by Anonymous Coward · · Score: 0

      But you do agree about the STFU part? Nice.

    16. Re:One approach by luis_a_espinal · · Score: 1

      Whoever mentions the word "Agile", do the opposite of what they say.

      In other words, don't do unit testing.

    17. Re:One approach by Anonymous Coward · · Score: 0

      The project manager is a guy with an EE, a PE licence and an MBA, who hates being a manager (but the money is awesome). Maybe that's what it takes to make agile work.

    18. Re: One approach by Darinbob · · Score: 1

      You think we should jump straight into this? Why not have a planning meeting for the video conference meeting?

    19. Re:One approach by Darinbob · · Score: 1

      When there are professional Agile trainers then that should have served as a warning sign to everyone that it's a potential scam.

    20. Re:One approach by Gr8Apes · · Score: 1

      I'm in a 100+ person project with people in two countries. Agile works for us.

      Then you're doing it wrong.

      --
      The cesspool just got a check and balance.
    21. Re:One approach by Anonymous Coward · · Score: 0

      Says the guy who hates documentation and requirements elicitation because he is incapable of constructing a complete grammatical sentence but his ego will never let him admit it - to the point of alienating everyone else on earth [who finds it very difficult to communicate with someone with such a self-servingly selective vocabulary]

      Speak for yourself Pal. Because you are it. The clueless Web-Skiddie who thinks they know software engineering. But really, suffers badly from the Dunning-Kruger Effect. (And quite odd you would project spelling errors when it is your post that has them.) Don't worry though, you'll figure out CSS someday. Just not someday soon. As for alienating everyone, I'm sure you lick everyone's ass to perfection, so it's certain everyone "likes" you. I'm sure you have everyone's coffee order memorized for your most important activity of the day. Enjoy the smell.

    22. Re:One approach by Anonymous Coward · · Score: 0

      Just sad. Laughable actually. Keep up the Cowboy Coder Act. It will take you places.

    23. Re: One approach by plopez · · Score: 1

      Whoa! not so fast. Don't you think we a pre-planning agenda framing conference call?

      --
      putting the 'B' in LGBTQ+
    24. Re: One approach by gzuckier · · Score: 1

      Whoa! not so fast. Don't you think we a pre-planning agenda framing conference call?

      somebody needs to document an agenda for the meeting to establish the goals of the pre-planning agenda framing conference call, that we can have a meeting to discuss. probably need to meet in person to ensure we get it right, rather than start off on the wrong foot.

      --
      Star Trek transporters are just 3d printers.
    25. Re:One approach by gzuckier · · Score: 1

      Holy shit... so this is what it's like if you mix Mad Men with Mean Girls. The war of passive aggressive project managers.

      Girly Men!

      --
      Star Trek transporters are just 3d printers.
  5. Plenty of experience by Anonymous Coward · · Score: 0

    Distributed developers all working on a multitude of projects in different locations? Looks like a description of the open-source world. A huge success, with several operating systems, compilers, complete set of servers as well as office apps, generally works better than the competition. (Better on bunctionality & security, but not"polish" or "marketing")

    Oh wait. You want to "manage" the teams? In our world, each maintainer manage his own sw, but not the team. Team members come and go, they are used or shut out ("fired") depending on ability. And of course, a complete asshat maintainer won't be able to get team members. Don't know if you can fit this model into a world with "wages" and "reporting"...

    1. Re:Plenty of experience by Anonymous Coward · · Score: 0

      Distributed developers all working on a multitude of projects in different locations? Looks like a description of the open-source world. A huge success, with several operating systems, compilers, complete set of servers as well as office apps, generally works better than the competition. (Better on bunctionality & security, but not"polish" or "marketing")

      Oh wait. You want to "manage" the teams? In our world, each maintainer manage his own sw, but not the team. Team members come and go, they are used or shut out ("fired") depending on ability. And of course, a complete asshat maintainer won't be able to get team members. Don't know if you can fit this model into a world with "wages" and "reporting"...

      And how do you pay for the necessities of life, such that you can spend your spare time writing open source software?

      Oh yeah, you have a job - where you get your "wages" and you're "reporting" to a boss.

      And if you're getting paid to write open source software? You do what the person who signs your paycheck tells you to do - just like any other job.

      Welcome to Earth.

    2. Re:Plenty of experience by sh00z · · Score: 5, Insightful

      Here's a clue: you're not managing them. You might be their "supervisor," assigning them to projects, signing their timesheets, etc., but this is a simple matrix structure, and the Project Managers are managing them. You should be working with these PM's to hear about performance issues or praise, training requirements, vacation plans, etc.

    3. Re: Plenty of experience by felixrising · · Score: 0

      This.

    4. Re:Plenty of experience by plopez · · Score: 1

      Agile doesn't work for us; 7 teams time zones 12 hours out in some cases (i.e' half way across the globe), 300 employees (developers, testers, managers, support teams, architects etc.). A couple of the teams were part of other companies which were acquaired and their companies networks were pasted into ours and so we have large numbers of hops and so lags which makes downloads across teams of artifacts difficult at times (1.5. day sofr a standard completely provision and integrated application).

      Due to time zone differences communications is hard and constant close communication is the lynch pin of Agile. I don't think Agile scales well or works well with large projects. A water fall with a 3 month release schedule and restricted scope works better, IMO.

      --
      putting the 'B' in LGBTQ+
  6. Please state the nature of your emergency. by Barryke · · Score: 2

    "Please state the nature of your emergency." (EMH mark 2, Startrek Voyager)

    Hello AC, welcome to slashoverflow.

    The question as formulated now is vague. There is a proposed solution (managing) but no problem stated that needs solving.
    And what you have tried to resolve this problem.

    --
    Hivemind harvest in progress..
    1. Re:Please state the nature of your emergency. by Barryke · · Score: 1

      After reading the article again i see:

      > build cohesion, alignment and trust for my team of embedded software developers in this new three-dimensional distributed matrix organization

      I say create a common enemy for those people, and then use that to steer them away from certain things. Fear and anger can accomplish great things together. So any kind of management would do, i guess. As for the three-dimensional distributed matrix organization, i have no idea. Perhaps look into the Borg.

      --
      Hivemind harvest in progress..
    2. Re:Please state the nature of your emergency. by gzuckier · · Score: 1

      After reading the article again i see:

      > build cohesion, alignment and trust for my team of embedded software developers in this new three-dimensional distributed matrix organization

      I say create a common enemy for those people, and then use that to steer them away from certain things. Fear and anger can accomplish great things together. So any kind of management would do, i guess. As for the three-dimensional distributed matrix organization, i have no idea. Perhaps look into the Borg.

      i for one welcome the new three-dimensional masters of Flatland.

      --
      Star Trek transporters are just 3d printers.
  7. You don't even know 'em yet. Quit handwringing. by Anonymous Coward · · Score: 1

    Once they're working for you and you understand your developers, either you'll figure out something, or you won't.

    Quit trying to stuff them into boxes before you even know what makes them tick.

    1. Re:You don't even know 'em yet. Quit handwringing. by gzuckier · · Score: 1

      Once they're working for you and you understand your developers, either you'll figure out something, or you won't.

      Quit trying to stuff them into boxes before you even know what makes them tick.

      management technique most popular; stuff them into boxes before you even know what makes them tick; then when you find out what makes them tick, nail the box shut.

      --
      Star Trek transporters are just 3d printers.
  8. You can't by undulato · · Score: 3, Interesting

    Trust only comes through stability. Developers with nothing in common and different project managers sounds like a recipe for disaster and your role sounds like a potential nightmare.

    1. Re:You can't by TheBogBrushZone · · Score: 1

      As someone who works in such a team, I generally agree. We have a hierarchical reviewer/reviewee structure that allows us to manage performance reviews in a reasonable (if enormously time-consuming) way and enough communication methods to create a sense of community for those willing to get involved but trying to impose common tooling, processes and standards across close to 100 developers working in different locations on different projects for different customers with different attitudes and requirements is like trying to herd cats by standing still and asking them nicely to get in the corner, please. We have a team "ethos" but anything less abstract is defined by each project.

      --
      And behold, a command prompt and he who sat upon it, his name was shutdown and -h 3:11 followed with him
    2. Re:You can't by Anonymous Coward · · Score: 1

      Trust only comes through stability. Developers with nothing in common and different project managers sounds like a recipe for disaster and your role sounds like a potential nightmare.

      What you are assuming is that the Matrix manager is key in the role of these people's work. In fact the key leaders will remain the project managers because they have the money and customers and they are delivering the real results to real people. What is the point then you ask?

      Well, what this guy has to do is to find something useful. The basic expectation is that there will be


      • money saving because projects won't have to keep people idle
      • happier employees because they won't feel that their work is dependent on only one project
        more work done because projects can use spare time from people who would otherwise be sitting idle

      So the most important thing is to eat humble pie and go along to each of the project managers and say something like "hi there - I know you might feel you lost your people, but I'm here to make sure that doesn't happen. I'll make sure that if you need them and reserve them (you might not want to say this directly, but it has to be true: and agree to pay for them even if you don't use them when you reserved them) the people you need will be available. Then ask the project managers what you can do for them to help.

      Once people trust you to deliver then what they had already, then you can start to improve things.


      • save project managers time by always knowing who is has free time and how good they are
      • arrange for people to learn from each other. Know which technologies each team is thinking about and who already has it.
        work out which projects are interesting and work well and reward people by getting them a chance to work with those projects

      Any job is a "potential nightmare". Done right, a job like this can be a great fun, a real opportunity to travel the world at your pleasure and something which makes almost eveyone happy.

      N.B. Remember project managers are always hopelessly overoptimistic with their projection of how many people they need if they don't have to pay for it (which means you end up with people sitting idle) and hopelessly underoptimistic if they do have to pay for it (which means they end up screaming for people). You have to arrange this somehow so it doesn't come back and bite you. Good / "you scratch my back and I'll scratch yours" / relations with the PMs will help. As will sensible senior management who understand the difference between risk and reality, but in the end it's about balancing and finding things for people to do when work disappears or is delayed and finding work to cancel or emergency contractors when everything suddenly becomes ultra-urgent. Don't get caught out too badly and don't let the PMs dump the blame on you for problems.

    3. Re:You can't by TheSunborn · · Score: 2

      What is the reason that this is organised as one team instead of multiple teams?

      Developers working in different locations on different projects for different customers sounds like the definition of multiple teams to me.
       

    4. Re:You can't by TheBogBrushZone · · Score: 1

      People are members of more than one team at any given time. We have project teams and we have discipline/community teams (e.g. a .NET developer team, a JVM developer team, an architect team, a BA team etc.) and each is used for the purposes that make sense such as managing training, pay and performance across all of the comparable developers instead of a single project team.

      --
      And behold, a command prompt and he who sat upon it, his name was shutdown and -h 3:11 followed with him
    5. Re:You can't by gzuckier · · Score: 1

      What is the reason that this is organised as one team instead of multiple teams?

      Developers working in different locations on different projects for different customers sounds like the definition of multiple teams to me.

      i was thinking the other day..... about dogsled racing. you know like the iditarod. that started me wondering whether there was a top speed record for dogsleds, that started me thinking about designing a world land speed record dogsled.
      first think i thought of in the design: hook up a hundred dogs.

      --
      Star Trek transporters are just 3d printers.
  9. Suicide by Dog-Cow · · Score: 2, Interesting

    With the number of buzzwords you've spewed into the summary, you should just drown yourself in a nearby body of water.

    If each team is doing something different, why the fuck do you need to "build cohesion"? Are you going to glue them together?

    1. Re:Suicide by Anonymous Coward · · Score: 0

      That is not practical - use the toilet !!

  10. Duh by Anonymous Coward · · Score: 0

    How can you manage developers who are all distributed across multiple projects?

    You do what large companies do in such situations. You hire a middle manager for each project and then you manage those managers. Hire architects to handle any cohesion or commonality among various projects.

    1. Re:Duh by Darinbob · · Score: 1

      Don't need managers, get team leads instead. The whole reason there's one manager for so many teams is that upper management is saving money: workers are dirt cheap, managers are precious resources. Workers keep their heads down, managers have to attend a thousand meetings a week (all on corporate time not foreign time).

  11. Contact/read Linus Torvalds by Anonymous Coward · · Score: 0

    That is exactly what he does.

    Most of the Linux maintainers also work on other projects.

  12. What are your responsiblilities? by Anonymous Coward · · Score: 0

    Sees like you have a job with no deliverables.
    Time sheets? Vacations? How exactly will you be judged?
    I suggest you start looking for a job (internal or external) for soon someone will start cutting redundant staff.

  13. No team by WPIDalamar · · Score: 4, Insightful

    You don't have a team of developers. You have a bunch of single-person teams. Don't try to manage it as a team.

    1. Re:No team by Anonymous Coward · · Score: 0

      You don't have a team of developers. You have a bunch of single-person teams. Don't try to manage it as a team.

      Yep, somebody is confusing the words "team" and "department".

    2. Re:No team by swillden · · Score: 1

      You don't have a team of developers. You have a bunch of single-person teams. Don't try to manage it as a team.

      I disagree. Even if they're working on different projects, if they're working on similar sorts of things -- similar platforms, tools, problems, etc. -- there's value in collaboration. Cross-pollination of design ideas, factoring out of common, reusable code components, sharing of ideas about what makes code better and more maintainable, collaborative problem solving -- there's a lot of value to be found in applying multiple brains and viewpoints.

      There's also significant strategic value in ensuring that each of those one-person projects isn't known only by one person. Sharing knowledge around enables you to shift resources when it's useful, and helps to ensure that if something bad happens to one of your people someone else has a chance of picking the project up in a reasonable time frame.

      In addition, most (not all, mind you) people like a little camaraderie at work. Building a sense of teamwork is good for morale. Even people who are pretty strongly introverted like a little interaction with like-minded people during their day.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    3. Re:No team by oneiros27 · · Score: 1

      I worked on a project that was similar to what was described -- four of us all at different institutions, working on a single project.

      The management mostly left us alone, and we got the project done. As we're in a more 'maintenance' phase now, we just have annual face-to-face meetings to hash out what we think needs to be done and how long it'd take to do it, and then we present it to the 'steering committee' (management / scientists who use the software) who decide what we should or shouldn't focus on for the next year.

      For the most part, the software works because we figured out how to break it down into parts, what the APIs needed to be between the different parts, and then we coordinated between the programmers who was responsible for each parts.

      After we were a couple of years into the project, we finally got it cleared through all of the institutions (some of us work for the government) to use IM ... so we just hang out in a channel to chat & let people know if we're seeing problems, making changes, etc.

      Unfortunately, the project got a bit derailed a few years back, when the same group plus a few other people got stuck with maintenance of another project that was written by an outside group. (and we're not allowed to fork it) ... and we've wasted so much time on that second project that we don't have the time (or remaining brain cells) left to get much work done on the first one.

      Anyway ... my point is -- if you have a good group of developers, you should be able to just point them in the right direction, and let them work ... don't try to 'manage' them any more than you have to.

      --
      Build it, and they will come^Hplain.
  14. Hands off and let them do their job. by Lumpy · · Score: 4, Insightful

    Honestly, let them do their job. if you want to be a good mid manager above the other managers. you let them do their job and you act as a "what do you need" guy that simply get them what they need and keep the fuck out of the way 99% of the time.

    --
    Do not look at laser with remaining good eye.
    1. Re:Hands off and let them do their job. by Anonymous Coward · · Score: 0

      This is the "ideal" and is usually not what the upper management wants. One of the problems is that to maintain a distributed team requires an end goal--those people have to have a reason why they are grouped together that is integral to the manager and/or leader to rally around. If you have a bunch of unrelated people thrown into a pot willy-nilly they aren't going to form a team (and "make profits for the company" is not a goal most employee's can truly believe in).

      If you have been thrown in charge of these people "just because" then you either have to do as the parent says and provide resources while providing personal inspiration for each person's work (and in general staying out of the way). If there is a common goal, that's what you need to rally the team behind.

      As for methods of maintaining contact, establishing a rapport, etc. this varies widely depending on team size, distribution & sociology (is it country wide or worldwide? Does everyone speak the same language, have the same values, etc.), and tools your employer makes available. This isn't something that /. can easily answer for anyone.

    2. Re:Hands off and let them do their job. by Anonymous Coward · · Score: 0

      Yes. Yes. Yes.

      Totally agree, you're there to remove the impediments to the team so they can get the job done, keep them on track and motivated. Take the flak from above and shield your team from as much politics and bs as you can.

    3. Re:Hands off and let them do their job. by Lumpy · · Score: 2

      Tell upper management to fuck themselves. AS long as you can show a net positive they can STFU.
      The problem today is people refuse to stand up for their work and listen to these gasbags that really are only trying to justify their position. Executives need to stay on their floor and talk to customers. and let the people that do actual work do their job.

      --
      Do not look at laser with remaining good eye.
    4. Re:Hands off and let them do their job. by clodney · · Score: 1

      Honestly, let them do their job. if you want to be a good mid manager above the other managers. you let them do their job and you act as a "what do you need" guy that simply get them what they need and keep the fuck out of the way 99% of the time.

      Totally agree. The role as you defined it is pure staff management. So the sort of thing you do:
      * make sure that your developers have what they need in terms of equipment, tools, software, etc.
      * ensure that they have the necessary training and opportunity to get training when required (or slack time for self study)
      * don't let the PMs bully them into false estimates, or put them in death march mode
      * work with the PMs to find out if some of your team members aren't getting it done, and take action
      * make sure the team members are reasonably happy with their assignments, and when they are not, intervene before you lose people.
      * listen to your team members when they tell you that their project teams are dysfunctional, and work with the PMs to try and fix it, or at worst get your people out of a toxic environment.

      This is not a simple job. Most engineering managers come from a project mentality, where you focus on completing the project, and devote your energies to troubleshooting that. But here you are divorced from the project side, so you have to focus on more of the people management aspects of the job.

    5. Re:Hands off and let them do their job. by Anonymous Coward · · Score: 0

      let them do their job

      The answer to: How can you manage managers who manage (project) managers who manage (distributed) developers?

    6. Re:Hands off and let them do their job. by Anonymous Coward · · Score: 0

      This is why true Agile product owners and scrum masters are servant leaders. They facilitate, they don't micro manage. It also helps when you have experienced developers who also facilitate and don't hinder the process. If anyone is in the team's way get rid of them. The team needs to have each other's back and revel in their ability to collaborate and cooperate and support one another for the sake of what is greater than the inidividual.

  15. Three-dimensional? Huh? by tomhath · · Score: 2

    How can I build cohesion, alignment and trust for my team of embedded software developers in this new three-dimensional distributed matrix organization?

    It's a traditional matrix, nothing special about it. Manage each team individually the same as any other development team;, the fact that they're matrixed is irrelevant. Occasionally (maybe once per quarter) have an all-hands meeting and have each team give a 3 minute presentation on what it's doing so people have an idea what else is going on, same as any other large development organization.

    1. Re:Three-dimensional? Huh? by LordWabbit2 · · Score: 2

      Occasionally (maybe once per quarter) have an all-hands meeting and have each team give a 3 minute presentation on what it's doing so people have an idea what else is going on, same as any other large development organization.

      I could not agree more!!!
      Lots of companies I have worked in seem to treat everything as a secret, or just have really bad communication at any rate. You find out about things happening through the grapevine, and all the broken telephone crap that comes with that.

      --
      There are three kinds of falsehood: the first is a 'fib,' the second is a downright lie, and the third is statistics.
  16. Easy solution by Anonymous Coward · · Score: 0

    Here the way we do it is by simply assigning each developer to some percentage on each project for the billing system (adding up to 100), while each project manager expect each developer to work on his project at 100% of his/her time. Did I mention that I was leaving?

    1. Re:Easy solution by bickerdyke · · Score: 1

      Oh, hi Mervin!
      Nice to see you here. How are things in your new job?

      --
      bickerdyke
  17. Some advice from experience by Anonymous Coward · · Score: 5, Informative

    I've been in this situation before, and in some ways still am. Here are a couple tips:
    - This matrixed team structure was likely put in place because the company thought there would be advantages to having these developers interacting even if they're not working on the same project. Get together, maybe once a month, and have people present on the project they're working on. It'll help give everyone visibility into everyone else's work, give some practice presenting, and provide a great opportunity to share best practices.
    - More tactically, provide some social platform for the team interact and ask each other questions. We use Yammer, but a Slack channel would probably be effective too.
    - You're probably responsible for some level of coaching/mentoring for your team even though you're not directly working with them. Meet with them individually and regularly to find out how they're doing and how you can help them. You'll also want to set up some regular check-ins with their project managers to get their perspective.
    - Finally, you may he responsible for setting technical direction and standards for the team. Unless you're highly revered and have already earned a ton of respect for this capacity, you'll need to build some consensus rather than ruling by decree. Seek advice and feedback from your senior team members before presenting your approaches.

    Best of luck!

  18. Encourage more Autonomy by krotscheck · · Score: 2

    I work on a very similar team, about 25 people, distributed globally, all contributing to various Open Source projects, all with different processes, governance, etc. Our managers focus on handling the management and human resources bits, ensuring that I have what I need to do my job. Most everything else; time management, development process, tooling, location... even travel, etc - is left up to me.

    I personally feel that the key to the team is the core belief that everyone's an adult, and can manage themselves and their own work. Managers aren't authoritarian, they're coaches. We're all encouraged to be strategically minded, though a lot of that is taught and socialized in the team's always-on IRC channel. The team was founded by adapting the Valve handbook, throwing out all the things that require people to be colocated. Other than that, the unique dynamic of autonomy, mutual respect, support, and the freedom to ask any question - no matter how dumb it may seem at the time - isn't something I've ever seen reproduced elsewhere.

    --
    This signature can save you $400 on your car insurance!
    1. Re:Encourage more Autonomy by Anonymous Coward · · Score: 0

      You might be new. It was reproduced in obscure projects like "internet," "Unix" and "Linux," in obsure locations like "silicon valley" and throughout the globe, but is fast disappearing. Engineering is becoming a commodity and temp position, no surprise they equate it to working at McDonald's. Sounds like you got lucky and got the old-school, old-style management.

    2. Re:Encourage more Autonomy by Cytotoxic · · Score: 1

      This matches my experience.

      One of the big things we worked on to make disparate parts work together was facilitating communication. We encouraged senior guys to coach-up more junior guys - offering suggestions and such - but we also encouraged just general communication. So if they felt like having chat sessions about last night's episode and wasting a couple of minutes, nobody said anything. This helps turn "a bunch of guys" into a team.

      The team part is important when the crap hits the fan. There's always a deadline, or a critical bug, or something that can put stress on the team and lead to finger pointing. But with team cohesion you have a better chance of everyone pulling together and fixing the problem. We rarely had bugs go unstomped for more than a couple of hours because junior guys felt comfortable asking for help and senior guys didn't feel it was necessary to kick someone who was struggling.

      Of course the other big part of the formula is hiring the right sort of people. Hire a jackass and he's gonna be a jackass in the middle of your team.

  19. Three Dimensions? by Carcass666 · · Score: 4, Interesting

    "I'd be managing a distributed team of developers all assigned to different projects." This isn't necessarily a three dimensions challenge, and you should keep things as simple as possible. People with multiple bosses will often please none of them. If there are not clear lines of accountability and definitions of success, your only hope of this thing not devolving in a complete fustercluck will be the coders who find your projects interesting and don't have families to raise.

    You mentioned you "independent project managers". If you are thinking about the Scrum flavor of Agile specifically but have project managers you are likely doing something wrong. More important is product ownership. "Agile" development success largely depends upon decisions being made on a daily basis. If your product owners are not engaged on a daily basis directly with the developers (even when cross-timezone meetings are painful) you're doomed.

    Find your local leaders, the people who get things done. You need people on the ground who understand the culture and trust you enough to let you know what is really going on. It will be far easier to build these relationships if you regularly travel and engage with them. Do not delegate this part of your job, you are not going to be able to cultivate your leaders over video conferencing. People behave very differently in-person.

    Oh, and keep your staff off of The Register, which has devolved into a DevOps cheerleading site - nothing good will come of it

  20. communication by Necroloth · · Score: 1

    I work in a matrix team where we look after functions but across multiple projects. Certain people in the team focus on specific projects but what try to maintain is the communication within our team for issues across the various projects as more often than not, we have common or similar issues and if someone has a resolution, it may help on other projects too. It's also useful as a lessons-learned sharing so that if others face something similar in the future, they have documents to refer back to. So make sure that even if you have people working on multiple projects, they talk to each other and share best practices etc

  21. The Matrix Killed DEC by Anonymous Coward · · Score: 0

    Digital Equipment Corp. (DEC) was once a billion dollar juggernaut having wonderful hardware and software products. It tried Matrix Management and today it is nothing more than a legacy in the industry. Now that’s a simplistic statement, but, true and relevant to this topic. There’ll always be a warm place in my heart for PDP-11/RSTS and VAX/VMS . . . What a pity.

    Know your industries’ history; don't repeat it.
    That job sounds like a career killer.

  22. Matrix organizations fail -- by Anonymous Coward · · Score: 0

    -- Large matrix organizations fail spectacularly.

    Our company tried this for about 5 years. Our CIO had this grandiose notion that waterfall projects done by Project Management Professionals(tm) was the way to go, and that she was going to show the world how projects should get done. To that end all analysts would report to one pyramid, all architects to another, all engineers to another, all coders to another, all testers to another, etc. It was a slow motion train wreck. All executives who dissented to this brilliant plan were fired, because they obviously weren't team players. Instead, the answer to every problem (and they were numerous) was "add more gold-plated passenger cars to the trains so we can carry more project managers and analysts, and fill the caboose with more contractors." Fortunately for the company's long term survival, the CIO was thrown out and replaced by an actual engineer. Of course he was given half the budget of his predecessor.

    The outcome was obvious. A few people transitioned from project manager to scrum master, but a large percentage of our employees were simply let go because there was no place for the excess project managers or analysts.

    Of course the new guy came in and said "Agile is the solution; all teams shall be agile by year's end." While not nearly as useless as his narcissistic predecessor, he suffers from a one-size-fits-all mentality that doesn't acknowledge that large hardware/infrastructure projects are still best run by waterfall. That's bad, but he's gotten worse with the crazy edicts. Every project must now be built on open source platforms, and managed with his pre-defined set of web based tools. Doesn't matter if the teams already have the right tools for their jobs; doesn't matter if the teams are working on mainframes, web servers, or doing embedded system development. And the engineers we're hiring now have all the life experiences you might expect from people who grew up playing Warcraft in their mothers' basements, and the mistakes now being made would have been prevented if we still had a few of the people with experience hanging around.

    The moral of the story? If you find yourself inside a matrix organization, keep your resume up to date. But if you find yourself inside an agile organization, keep your resume up to date.

    1. Re:Matrix organizations fail -- by Anonymous Coward · · Score: 0

      "The moral of the story? If you find yourself inside a matrix organization, keep your resume up to date. But if you find yourself inside an agile organization, keep your resume up to date."

      And, this really is the end goal of both Matrix and Agile - to have an expendable pool of labor. The reason for the "one size fits all" approach is to homogenize processes AND talent across the entire organization, so work done by one engineer in one location can be picked up tomorrow by a cheaper engineer in another location with no knowledge transfer. That way you can have dynamic force levels based on what currency and labor markets are doing today.

      Dollar suddenly gets really strong against the Krone? Fire a bunch of Americans and transfer the work to the Netherlands. IBM lays off 40,000 developers in India, fire a bunch of Danes and pick up Indians on the cheap.

      Also, you can have occasional summary firings when your Schedule Performance Index starts to slip - you know - to increase productivity and morale. Companies like Honeywell and GE are particularly adept at summary firings, as are other companies that adopt the "fire the bottom 10% every year" force management process.

      This is what they're teaching MBAs these days. It's actually kinda scary how brilliantly stupid most MBA programs are, along with their graduates.

  23. who dreams this crap up? by Anonymous Coward · · Score: 0

    shit can you imagine if a country tried to win a war with this level of inexperienced boy-man ceo organizational bullshit? At least with undercover internal affairs all the office politics are against you but you can sleep at night with the promise of cleaning up the rot.

    run man run. this is not a game you can win.

  24. Been There by Anonymous Coward · · Score: 0

    Okay, here's what you need to do: give half of the developers red pills and give half of the developers blue pills. After that I don't remember.

  25. Ask Slashdot: Do my job for me? by Anonymous Coward · · Score: 0

    Anyone else think it's kinda sad that a manager is coming to slashdot to ask how to be a manager?

  26. Two masters by MrKaos · · Score: 1

    You cannot serve.

    --
    My ism, it's full of beliefs.
  27. Don't by Anonymous Coward · · Score: 0

    It seems strange to me that you would want to try and manage developers across multiple projects as a single entity. If they have their own project managers, then it sounds like a more hands off approach is going to work, with occasional steering/correction onto the correct path.

  28. Folks are not plug and play by Anonymous Coward · · Score: 0

    Plan A: Use pseudo-random job assignments to put resources on whichever fire is the hottest today.
    Result: Fires get fought, but there is a continual wasted effort for folks to learn how the thing they are working on today works.
    (Or worse, rewriting the thing because they didn't.)
    End result is bloated sortware which gets harder and harder to work on.
    Much easier on manager because he doesn't have to understand exactly what his folks are doing.

    Plan B: architect the s/w so that there are separate parts for which specific folks can become the domain experts.
    Requires manager awareness of how things are structured and who to task for different areas.
    (He's either the architect, or is paired with him.)
    Provides accountability when a specific area is having a problem.

    Given the quote "since everyone is working in embedded software..."
    Looks like somebody is going with plan A.
    Any side bets on if there is an MBA involved?

  29. What do you bring to the table? by Anonymous Coward · · Score: 0

    They're not cooperating on a common goal. What is it that you, with your "management", expect to bring to the table? Seriously, what are you beyond a gatekeeper in this scenario?

    If you can come up with a genuine answer as to what value you bring to the situation, then you have your answer. If you can't, just come up with whatever bullshit you like to justify your pay cheque, like most other managers do.

  30. Be a good project manager by Anonymous Coward · · Score: 1

    How can I build cohesion, alignment and trust for my team of embedded software developers in this new three-dimensional distributed matrix organization?

    - Build plenty of slack into the project plan for when (not if - when) things go wrong.
    - Don't put forth unrealistic commitments.
    - Allocate their time accordingly.

    each with their own independent project managers

    Good project managers are worth their weight in gold. Crappy ones are worth their weight in lead drowning out a project. Really crappy ones will drag down other projects as well as their own. That is going to be your biggest risk - not the developers. Make sure you have a handle on your project managers and mitigate that risk first. Then focus on your developers.

  31. Ask A Real Engineering Firm by Anonymous Coward · · Score: 0

    We've been doing this sort of thing for a long time now.

  32. What are your goals? by ClayDowling · · Score: 1

    As a manager for multiple developers all working on different projects, for different product owners, what is the benefit that you're trying to bring to these developers? If you can answer that, we can probably come up with some things you can do to reach your goals.

    1. Re: What are your goals? by felixrising · · Score: 1

      I think there is a world of difference between a manager and a team leader, and in most organisations there is only really one manager, the CEO, everyone else is leading teams and taking resistibility for various roles in support of the manager. As a team leader you should be supporting your team in the first order to be the best they can, not crushing their spirits or micromanaging their every action. People respond better to trust, autonomy and knowledge that what they're doing is valuable and necessary. Care about your team, ask them what they need and give it to them so they can get on with the job at hand.

    2. Re:What are your goals? by raymorris · · Score: 1

      Indeed it sounds like OP's job isn't defined enough that solutions can be proposed, first problems / obstacles need to be identified. Talk to the people and find out what issues there are, what makes their job more difficult. Then look at how you can help the situation.

      Others have mentioned avoid micro-managing, treat people as adults. That's important.

      One thing the OP can look at is the maturity of development process and provide resources and training to improve it, preferably resources and training that apply to more than one group. By maturity I mean things like:
      Is source control used consistently?
      Are the development and deployment processes well documented?
      Are testing good procedures in place before a product goes to production?
      Do each team even HAVE devel, test, and production systems?
      Is code review / peer review used?
      Are there WORTHWHILE metrics to measure progress?

      If documentation of processes is lacking, you can set up a wiki or some other resource that makes it easy to create and use documentation. If source control is chaotic you can set up a robust, easy-to-use source control system. For example, we use Kiln to provide a searchable web based GUI which helps explore git and Mercurial repos.

  33. Some suggestions by swillden · · Score: 4, Insightful

    First, if you truly have a bunch of single-person projects, you have an additional problem that you don't appear to have recognized: You have multiple single points of failure. I often use the notion of a "bus metric" which is "the number of people who have to be hit by a bus to cause serious problems for the organization". Your bus metric is 1, but it's a little worse than that, because you have several single individuals whose unavailability would cause problems.

    This second problem actually points to part of my recommended solution: If you want to build team cohesion, you need to break down the silos between the projects and get your engineers working together more. At the same time, you don't want to impose a lot of process that will slow them down.

    Some concrete suggestions (in no particular order):

    1. Do code reviews. In fact, make them mandatory. In general, I'm against mandating much of anything but this is an exception because it is so extremely valuable. Mandate that every piece of code checked into the source repository must have been reviewed by someone other than the author. To make this effective and not an obstacle to getting work done, though, you need tool support. Something akin to Gerrit. Do not attempt to require code reviews until the infrastructure is in place, and once it is, ease into it and make sure everything is working well and everyone is comfortable with the tools before you mandate the reviews. However, be clear that the intention is to mandate them.

    2. Do design reviews. Similar story to code reviews, except that design reviews should be attended by the entire team, or at least a largish subset. Again, good tooling is helpful. In this case using something like Google Docs or Office 360 for the design docs and then a good teleconference or, better yet, video conference solution for the review meeting. In terms of breaking down silos, cross-project design reviews will be hugely valuable.

    3. Do standups via teleconference or (better yet) video conference. They don't need to be daily, and if your team is all working on different things they probably shouldn't be daily. Once a week for 15 minutes is a good place to start, just go around the "room" and have everyone briefly describe what they're working on and what challenges they're having. It's the discussion of challenges that make this valuable, because others will pipe up with their suggestions. Again, before you do this make sure that your infrastructure is in place and working *well*. Also, keep a close eye on how this is scaling. Beyond a certain number of participants it breaks down and you need to split it up.

    4. Encourage lots of random, ad-hoc communication among the team. Again, good tools -- VC and shared docs, mostly, but you also need good chat and email systems -- are important for effective remote collaboration. As for how to encourage it, one good way is for you to get a solid understanding of what everyone is good at and when you have one-on-one meetings with them (which you should be doing regularly) look for opportunities to suggest collaborations.

    5. Set up face-to-face get-togethers as frequently as you can, within the constraints of time and budget. Ensure that these contain equal parts business-related discussion of goals, plans, challenges, etc., and chances for people to do fun stuff together -- but make sure that you find activities that everyone can participate in and enjoy. IMO, you should avoid those obnoxious "team-building" programs.

    6. If you can, consider getting budget for an additional engineer to focus on common tooling. The goal isn't to force all of your engineers into a common toolset against their will, but to build up some useful common tooling that all of them find valuable. Source control, code review system, continuous integration, automated testing, etc. This tool engineer will become another central point that everyone communicates with regularly (in addition to you).

    7

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  34. Don't by flink · · Score: 1

    If you've hired people who need management into that situation, you've hired the wrong people. You need smart people with good time management skills who are not assholes and can work together like grownups without any oversight despite whatever personal differences they may have. They should also be humble enough to ask their peers for help when they are in over their head on something.

    Good luck!

  35. Employ AI by einar.petersen · · Score: 1

    Hello there, may I suggest looking seriously at using systems like Watson or other AI systems to learn project management concepts and project tracking, this way you will be freeing yourself from the hassle, you can automate virtually every aspect of your project management processes and make it possible for a decision maker like yourself, to make informed decisions regarding team member, different development methods and other project and business related matters based on best practise methodology for each project type and real world learning regarding the dynamics of project types and each individual project....

    --
    MS, ALS, Aphasia ? http://globability.org - Me http://einarpetersen.com
  36. Sounds like a "coding factory" by ErichTheRed · · Score: 1

    I work for a medium sized multinational, and the development teams I work with are exactly as you describe. (I'm in systems integration, so I get to make their output work in the real world.) Many of the senior managers in our company have a professional services background, so development is run like a typical offshore body shop, even when the developers are local. Developers are plugged into a project and disconnected when done like they're working for one of the outsourcing code factories.

    The short answer is that it's very difficult to manage developers pulled in a million different directions. Agile is definitely in use here, but the reality is that the nature of our work means that developers actually need to understand a little more than a code specification to do the work. They also need to stay involved after writing their code for that reason, but are often pulled off projects because someone shouts loudly enough or is politically connected. As a result, my experience talking with them is that no one ever feels they can get anything done to a reasonable degree before getting unplugged and reconnected to something else. Project management isn't the best around here as a rule, so there's constant emergencies.

    When you're "matrix managed," the actual manager is pretty much responsible for your performance review. The rest of the management direction comes from project managers that range from good to extraordinarily bad. I know I wouldn't want to do dev work in that environment, nor would I ever in a million years want a PM job. But, with DevOps being a thing now, I imagine it's just around the corner for us too.

  37. Ask DoubleFine by Anonymous Coward · · Score: 0

    Pretty sure everyone there moves back and forth between projects constantly. They use some app controlled process for it, too lazy to look it up myself though, that's your job. ;)

  38. don't manage the devs manage the PMs by trybywrench · · Score: 1

    Manage the PMs, let them manage the devs.

    --
    I came to the datacenter drunk with a fake ID, don't you want to be just like me?
  39. suggestions that work by RaginPM · · Score: 1

    Managing such this type of team is no different than any other complex distributed virtual team. 1) Governance: get all the teams working from a single sheet of strategic music (HOW them implement is their decision) otherwise you will continue to experience too much organizational (team-to-team entropy). 2) Program/cross-team Trust: Trust is built through face-to-face meetings (early on) and takes time - scheduling either face-to-face meetings or conferences on some regular basis (the more distant the teams the fewer you'll be able to do physically), can also leverage video meeting technologies (i.e. vidyo, netmeeting, skype for business, skype, etc.) on a more frequent basis. To ensure folks are all working on same plan, the lead PM should implement the "Master Kanban" board from which all sub-teams driver their Kanbans/Sprints. RRP's should be frequent, regular and scheduled so there are no surprises. 3) Accountability: hold folks accountable, whether it's good stuff or bad... communicates that no one is special. Definitely cheer the good and definitely help those who aren't cutting it to improve but if they continue to not deliver you GOT to deal with it. 4) Master repo: maintain a master repo (used by testing & deployment) that pulls from all development repo's (sub repo's constructed by what makes most sense). Ensure you have rules set accordingly for pushes such that ALL pushes are tested prior to allowing that push to be integrated onto the master trunk version. 5) Continuous Build/Test: gospel!!! must have or else!!! 6) Design review whenever possible (doesn't have to be crazy, stickies on the wall, take a picture, quick document the workflow/etc.) just so everyone understands the goal, the intent and the initial roadmap. 7) Code reviews: must do prior to any push to master repo 8) Code base: be smart, be practical, this isn't supposed to be a death march but have a test(s) for each capability/function to verify it works as intended/designed 9) Management/PM's quiet in development team's RRP 10) Management/PM's have their own separate planning cycle and stand-ups that don't involve developers 11) Owners/Product Managers: push back on management but ALSO on development teams to challenge the initial response... Management always wants more than can be delivered and developers always cry that too much too soon.... Truth is in the middle. 12) If this is a long-term gig; have regular large conferences/team meetings where folks get to show-off their deliverables and how they were successful. Good work deserves recognition. Others can learn and improve. 13) Roles & Responsibilities: ensure that everyone assigned to the project/program understands their role & responsibility (foundational for accountability). For developers, there should be a common Developer's Agreement (deal with IP, etc.) for the overall project but there should/could be a similar agreement for each company/contractor if you have multiple teams working a single company/contractor's code. 14) Agreements: have your NDA's and IP management agreements in place before the work starts

  40. Difficult but doable by Anonymous Coward · · Score: 0

    My current company runs a bit like this (we have multiple major offices and several satellite offices all working together with different engineering disciplines). There are three major components (imho) to really try and hit. First, let the technical lead for each project run most of the show. Our leads are the person that is ultimately responsible for delegating tasks, managing integration, and delivering the final solution to a customer. Developers can be easily put in and taken out if your leads are strong and given enough latitude. PMs really just coordinate schedules, liaise with the customers, enforce deadlines effectively (i.e. if a developer misses a milestone they sound the alarm), and get the lead and team members what they need to accomplish the project.

    Component specification (sometimes called a feature specification) is another critical point to our main process. When larger pieces of a project have to be developed don't try to distill everything down to fit into just a general requirements document that is really a high level description. Get down into the real components and define the details for with them. This doesn't have to be done for everything, but large tasks need to have a clear definition and understanding of what it does, how it looks, and in some cases how it will be implemented. The technical lead usually develops this with the team at large by having the team member write up their understanding and then going through an adjustment process just like when submitting a requirements document to the customer, but it is internal. This helps greatly reduce how much retooling and such happens when there was a misunderstanding or too broadly defined area.

    Finally, and I know some people hate it, but don't be afraid to create middle management. We have several people who basically just coordinate between projects to make sure each one has adequate resource coverage, or if they don't what needs to be prioritized and not letting one project take the entire shit stick. These people generally end up wearing multiple hats depending on how big the group is that they are managing, but some do it as a full time job because of the size of the group. This offloads a lot from PMs and makes sure you have an arbitrator when there are conflicting views. They work closely with PMs to understand the needs of the project in terms of schedule and talent (i.e. some projects are always much riskier or harder to execute than others), but they do the leg work to coordinate between other projects and teams at large.

    Last note, that has been successful for us, make sure to get developers in the mindset of solving business problems rather than just blindly adhering to a specification. This makes it a lot easier when moving people between projects and helps get people to really think about it in a team effort for each individual project. It also helps greatly to refine specifications as you go and can even be a sales technique to really drive new development in the direction of what a customer could actually use. Modular team members can be nice, but if they become insulated from the bigger problem they are trying to solve then they really don't grow near the way they should. Eventually you will starve yourself of the key component in the model, your strong technical leads because the existing ones move up/on.

  41. one approach by superwiz · · Score: 1

    And, to be honest, I don't recommend it, but it doesn't sound like you have any good options, so it you may as well try a better bad option. Base it on internal billing. Since the project managers will prioritize based on their projects, the priorities will be inherently heterogeneous. You need a homogenizing metric and that's the purpose which money serves.

    --
    Any guest worker system is indistinguishable from indentured servitude.
  42. Highly Inefficient by Rob+Riggs · · Score: 1

    First off, this is a good question, since I see this happening more and more.

    It can be done, it is just highly inefficient from a management perspective. More of the manager's time will be spent soliciting and providing feedback. Without being there in person, if there is a performance problem, it may be hard to tell what the political situation on the ground is like, and whether the team dynamics, developer or PM is at fault for any project-related issues that come up. And there is no substitute for in-person meetings when it comes to providing reviews, feedback and coaching.

    If you are a manager in this situation expect to travel quite a bit in order to meet with your team members (at least quarterly) and their local co-workers and PMs. If, by chance, your company does not permit that sort of travel or you do not want to travel, I recommend finding new employment. It is not likely to work well.

    I would not want to manage in that sort of environment unless I understood what problems they are trying to solve and was convinced that it was the most efficient way to solve it. The real key question for me has always been "are they paying me enough to put up with this shit?" It's going to be a lot more shit to deal with. You should expect to be compensated for it.

    --
    the growth in cynicism and rebellion has not been without cause
  43. Are you managing the people or the project? by spatley · · Score: 1

    If you are a Project Manager, sure Agile, Kanban, Scrum, lots of good ways to make sure that people can say they are going to do something, say they did it, and show it to somebody else.

    If you are a Development Manager, your first questions should be: Do I know what I expect out of my people? Do my people know what I expect out of them. Do I know how to look at their work and tell if it is any good?

    I have managed people across geography and timezones on matrixed work. We did it with weekly 1 on 1 meetings over videoconference, Devs would tell me what they have been doing, show me code in screen sharing, and talk about expected results of that code.

    If you are a Dev Manager, think like a developer and stay close to the technology, make sure your staff knows you expect to see results. Have meaningful, helpful things to say about their work.

    If you are a Dev manager and you can't look at their work and tell if it is any good, get a job as a Project Manager.

  44. Iron grip by Anonymous Coward · · Score: 0

    Exercise an Iron grip of control over the Mountain Dew and Dr Pepper supply.

  45. It doesn't have to be terribly complicated by ibexdata.com · · Score: 1

    I've been managing teams of developers for well over 15 years, periodically assigning smaller teams from project to project. There are quite a few moving parts but it can be managed by one or more managers. It's not unusual that I'm both manager and co- developer on a given project, a DBA for another, and solely admin for yet another. Some components must be common across all projects, namely task management and time tracking (where applicable). It's wildly helpful if code versioning is also centrally managed and integrated into task management. Messaging between individual team members should be consistent across teams but groups isolated by project so as not to create cross-project noise. Reporting and accountability tracking are crucial, as well as monitoring of individual performance (from commits) vs time and customer budgets. That's probably the most complex system I had to build to manage my teams: staying within customer budgets, developer available bandwidth and accountability. I built everything based on mostly open sourced components and tied them together with my own code based on rapidly evolving needs as customers arrived and left over the years. There are purchased apps and services out there that provide comprehensive albeit expensive solutions.

  46. Be the enabler by stikves · · Score: 1

    Do not try to "manage" them, but try to help them achieve their goals. Be the enabler, ask them what they need to complete their tasks, and make it a priority everyone is able to function at their peak.

    This of course setting up shared calendars, VC software/hardware, DVCS, and so on on the techinical side. People should be able to see what they are supposed to do, reach their peers for information, and gather together to talk about updates, and have ideas (on the VC).

    On the personal side, try spending some time with each member every week. Communicate what is expected of them, and let them tell you their worries.

    As long as you have competent developers, they should be able to handle the job. If you do you job well, they will not even realize you're there.

  47. Coordinate by cwsumner · · Score: 1

    The developers must be sufficiently experienced that they can manage themselves. You can coordinate and advise, but you can't do classical "management" if you are not there. If they are good, you are good. But if someone hired the cheapest that could be found, then you are "up the preverbial polluted waterway without a means of propulsion".

    In most big companies, matrix management does not work. But if you have good people, almost anything can work. 8-)