This is happening in every team.For some reasons, conflicts arise in the team and they affect the overall motivation and productivity.What is your recommended approach to solve that common problem?Examples:. one part of the team wants to implement dependency injection, the other part think it's a waste of time. some developers think the rest of the team is slowing down development (which explains why they are late on the schedule). personal incompatibilities between one or more developers. one developer refuse to talk to another one (without apparent reason). @David - The criterion for the site itself is questions related to programming.
Nowhere does it it say they can't be related to anything else. If you swap out the term developer, then you're asking a different question, just because the answers are similar doesn't make it the same question. What is 3 + 3?
Look for learning and career growth opportunities that may not be obvious at first glance. In other words, don't forget why you're a software engineer: It's fun to use new technology to solve complex problems in new ways. Parting thoughts One of the great joys of working on software engineering projects is the dynamic nature of software itself.
How many legs does an insect have? The two questions are completely different, yet the answers are the same. Developers can be completely socially different to, say, members of an emergency service team. Both will have conflicts, both will have different ways to solve the conflicts.–Nov 18 '10 at 16:59.
I have had a team of 10 people for two years without a conflict(touch wood) I could be lucky or may be doing something right. The best way to handle conflict is never to let one exist for a longer time. I'd give you 1000 upvotes. Team conflicts are the manager's responsibilty. Never been on a team with a lot of conflict that didn't have a poor manager. As you said, the best way is to make sure the conflict doesn't exist for long. Too many managers are afraid to upset people by resolving conflict. Sap bo reporting.
As a result they upset more people for longer and affect productivity more. When it is clear that you will treat people with respect and that you will not tolerate anyone not treating others on the team with respect as well, much of the conflict goes away. You seem like a good person to work for.–Nov 18 '10 at 18:39. It depends on the conflict obviously; they come in multiple flavors. The religious argument ('Why do you keep using tabs instead of spaces?!?'
)The point to make clear in this case is that, in principle, it doesn't matter which one is right, it's actually far more important that the entire team is using the same approach. Explain that to the minority opinion holder (and make sure to highlight that it's not necessarily the right decision, but also not important enough to draw blood over).
The degenerate case of this is, for example, a developer refusing to use source control or submit to code-review. That's a management issue, and I honestly wouldn't know how to resolve it without letting the rogue developer go.
The personal argument ('I just don't like you')There really isn't a way to mitigate this. Make it clear to both of them that bickering isn't acceptable, and that their personal grudges need to be checked at the door if they're going to be productive members of the same team (this works whether you're the manager or not; peers can be surprisingly influential if they're sure enough of themselves). If that doesn't work, either try to split them up on the org chart to reduce their professional/physical proximity, or get youself a desk well away from them. The technical argumentThe key difference between this and the other conflict types is that there is likely a correct answer. Typically it's to do with the code one or the other developer owns and how it should work (occasionally, it's a larger architectural argument).
The key thing to grasp here is that even though there's a correct answer, you probably don't know it. The best thing you can do is mediate to make sure it's a clean argument, and hope that either side can be convinced.
Again, you can do this whether they report to you or not, but if you're a peer, they might go to a manager to re-run the play even if you manage to bring them to a conclusion. In my experience most conflicts of this nature come down to personality clashes. Some of them have other elements but most commonly these are just being used as a vehicle for disagreement so even if you resolve the issue that they're arguing about, it's just a matter of time before something else comes up.My advice:1) The first thing is to make it clear to both of them that conflicts reflect badly on both of them and that there isn't going to be a winner and a loser, just two losers of varying degrees.2) Make it clear to them that whatever happens you expect both of them to act in a professional manner. They don't need to like each other but they do have to be civil, efficient and organised. Make sure that it's reflected in their annual appraisals and reviews - inability to get on with a team mate is a significant issue with their performance.3) Do listen to their issues with one another and where appropriate be sympathetic but also point out their failings in this area and avoid getting drawn into extended discussions or some judgement about who is right and who is wrong. As I said above in 95% of cases (the remaining 5% being genuine bullying or the like which needs to be properly addressed as a disciplinary matter), they've both wrong and they need to understand that.4) Where possible do keep them apart where it's easy to do so.
I don't generally find that throwing people together does anything more than stir it up. If they're going to 'reconcile' it will happen anyway and I suspect is more likely to happen when they're not continually in each others faces. Identifies a handful of different techniques for resolving conflicts that may be an idea for how to resolve some issues. There are some legitimate issues such as using a framework or not, though this may be handled either by a team voting on something as one way to resolve it or by going to higher power like a manager of some kind.
Some times there can be disputes in interpreting requirements which are best handled by going to a project manager or business analyst to get a specific ruling,e.g. Does a blank search return nothing as nothing was entered or does it return everything as the wild card matching used says everything has nothing in it.If it is more personality conflicts then the question becomes how well does each know of the issue and what will be done if this persists.
This isn't so much an idle threat as much as a, 'If you guys can't work this out, I'll work it out by removing at least one of you,' mentality. Course this does carry the potential for passive-aggressive behavior and other childish crap but this is what happens when bright resourceful people enter a way that doesn't use traditional weapons to resolve hostility. Has several examples of this kind of behavior, just to give a reference of sorts.
I am writing this post to share my thoughts on dependency management and write about how it impacts Agile teams. The motivation to do this is my previous post ' '. We hear stories similar to this in our work life. Don't we?A task we perform can be independent or dependent (on something else – say another task). It is independent when we are free to start and end the task without having to worry about anything else. It is dependent when we have to think and do it in a logical sequence by considering all dependent tasks.Sometimes you need to wait for another task to finish so that you can start a new task.
Sometimes you wait for another task to finish so that you can finish your current task. There can be a situation when you wait for a task to start so that you can finish your current task. Also there can be a situation when you wait for another tasks to start so that you can start a new task.
That’s how we have 4 types of task dependencies FS, FF, SF, and SS. This is not a traditional project management stuff. This applies to all projects including Agile projects.
When you think in terms of these 4 types of dependencies, you can streamline every iteration or Sprint by minimizing dependency issues.I think, we need to think deeper than this. Can we categorize task dependencies in some other way? Do we have techniques to deal with such dependencies? Let me explain.How do we categorize dependencies? We can group dependencies under several categories such asTechnology Dependency – This category is about dependencies arising from architecture, design, coding, components etc. Here are some examples.
Program A cannot function until Program B is developed. We have to change the program as component X has changed.
We cannot develop layer-Y in our architecture until layer-Z is ready. These questions help us understand the circle of influence (internal or external), estimated time of start, and expected life or duration. Without these we cannot understand the gravity or impact of dependencies.
Without these, we will not be able to reduce anxiety and spend our efforts on the most important tasks. With out these we will not be able to identify the right techniques to handle dependencies.What are the techniques?
There are many techniques. Here are some pointers to those techniques. Learn and apply design by contract and practice DIP (Dependency Inversion Principle). A downloadable PDF on design principles is available at. It includes information on DIP. If you are a hardcore programmer, read this post for more information. Use stubs, mocks etcetera to manage the situation until you get the real objects to depend on.
Don’t ignore data dependencies. If something is necessary – for example, production data, you cannot live without it. Make it a criteria. Don’t accept junk data for testing. Application/Service dependencies can be haunting. What if a service breaks in real time?
A way to handle this is to build robust exception handling mechanism. In addition to this, check dependency issues through automated scripts or snoop error logs. Here is a PDF file on managing dynamic service dependencies -.
When you work with multiple teams (for example, Scrum of Scrums or with multiple dependent projects) dependency management has to be handed through proactive thinking, asking questions and triggering discussions in meetings. In addition to asking ‘Are we dependent on other teams?’ it is necessary to think ‘Is there a team that depends on us?’.