3

Our organisation is faced with a difficult problem to solve, where there is no "right" answer. Each solution has many advantages and disadvantages.

I have given a group of programmers a questionnaire and collected their detailed opinions on many different issues related to this problem. They all have very, very different opinions of the possible repercussions of each solution.

Next week we will all meet to put our brains together to settle on one way forward. I will be leading the meeting.

Can anyone suggest a process by which I can put everyone's opinions on the table, and have everyone sort through them and comment/rank/sort answers to help the group come to consensus?

7
  • 9
    Whatever the outcome, I hope you learn that design-by-committee is never, ever the right option.
    – Confused
    Commented Nov 28, 2018 at 18:34
  • I do believe the last 20 years of Agile development has been spent mostly trying to find a process to help groups come to the best consensus. Many solutions have been proposed. Ironically, there's no right solution to this problem. Each solution has many advantages and disadvantages.
    – Cort Ammon
    Commented Nov 29, 2018 at 0:00
  • I'm voting to close this question as off-topic because it has to do with team management and problem solving which doesn't tie into user experience
    – Shreyas Tripathy
    Commented Nov 29, 2018 at 9:32
  • 10
    Why do you need consensus? Isn't there someone in charge? Difficult decisions are management's job - that's why they're paid the big bucks...
    – AakashM
    Commented Nov 30, 2018 at 11:51
  • 1
    Well before the meeting, declare one solution the one you (as the leader) have chosen. This is the solution you will use unless a compelling argument to change is presented. Objectors to that solution must argue why their solution is significantly better. Its not time for consensus and not time to beat around the bush arguing over straw man what if's.
    – mattnz
    Commented Dec 3, 2018 at 8:34

6 Answers 6

7

Power == solution. You are the team leader, right? Whatever you feel comfortable is the best approach, no matter how absurd it sound. For instance, if you believe C is the best language for writing a web page at the client side then that’s it. It’s your responsibility for making a development decision, not your developers. They just do the coding under your lead.

Go ahead with the meeting, listen to everybody what they want to say. Once everybody is finished, you present your own ideas and that will be the final decision.

3
  • 6
    I have a problem with this answer. It is much easier to accept and implement a management decision if it is reasonable, as well as having been reached after considering the relevant opinions. Commented Dec 2, 2018 at 21:55
  • Yeah, but OP may like to keep his better people around and productive rather than having demoralized while they look for a job where they're respected. You don't seem to understand how programmers in general work, particularly good ones. Commented Dec 3, 2018 at 22:59
  • The problem is this is about programming and everything is different in programming. There is a best answer and it will be known sooner or later. Power has nothing to do with what 2 + 2 equals. Power != this.solution
    – moot
    Commented Feb 4, 2019 at 12:37
6

Leadership is about making decisions. If I were in your shoes, I would consider all perspectives and take some time to reflect on a solution. Then pick a plan or develop my own and then inform the team what we're moving forward with.

I'm a big believer in just making sure everyone is working in the same direction. So the plan, the plan is what it is. You try to mitigate risk by considering all perspectives, but at the end of the day, you need to choose.

You thank everyone for their contribution, and then you pick a plan and organize the task ahead of you as a cohesive group.

3

You could use a matrix where each axis is a meaningful criteria.

For example, vertical axis is "Customer Value" and horizontal axis is "Level of Effort". As a team, place a sticky note for each option on the axis to measure each option based on criteria. In this case, you may be able to narrow down to options with significant customer value with a reasonable level of effort. Or perhaps instead of "Level of Effort" it's "Potential Negative Impact" or something.

I agree with the other poster who mentioned organizational objectives. I would weigh each option based on organizational criteria.

Could you invite a decision maker, a leader who can help guide the conversation and lead the team to a decision?

Overall, you need to identify your objective and criteria. Are you trying to gain user adoption? Trying to increase sign-ups? Etc. Whatever the objective and criteria may be should be a major part of the process to select which path to pursue.

1

So two parts to this

  1. Each possibility is presented by the proposer(s) with both advantages and disadvantages. No proposal without both.
  2. Fist of five voting. When you vote on each proposal use the following: Fist of five vote

All the team raise a hand to vote:

0 fingers - against

1 - defer (until after other items)

2-5 agree at varying levels

Simply count all the fingers and choose the one with the highest support, simple.

0

EDIT 12-1-18:

This is a question about programmer's ideation in the UX design process. Why was it removed from the UX section?

This is a question about programming design during the ideation phase of UX iteration. Some example articles on the subject:

NNGroup: Ideation in Practice: How Effective UX Teams Generate Ideas

NNGroup: Ideation in Practice: How Effective UX Teams Generate Ideas

Programmers face issues unique to programming in ideation. The question is about those issues.


To get the best ideas out of people, remove all negative consequences of proposing those ideas. Remove all the possible negative personal, social, and professional consequences.

Make the ideation process anonymous and only have positive reviews and ratings.

When trying to find the best idea or solution out of a set, there is literally no reason to critique. The only thing that matters is which is the best solution, not how bad the other solutions are. Since it's comparison, anything negative about A can simply be stated as a positive about B. Simply use positive points or a scale.

Have team members submit their ideas to you. You present the ideas to the team without their creator's name attached. This prevents social anxiety about failing for the creator and prevents personal feelings from affecting reviews.

Team members review or rate ideas in positive ways only. This way people get to hear compliments and what works with their ideas without being critiqued. The team is forced to focus on what works when reviewing ideas. The winning solution's owner can be named or you can even leave that anonymous too in the name of the team.

-1

You could run a version of planning poker (see https://en.wikipedia.org/wiki/Planning_poker) where, instead of estimating effort, you could estimate the value of building certain features.

Although, I have to ask: Why is this a tech decision? Hasn't the business side given you priorities?

I would think that business need would trump any tech estimates of value or effort.

You must log in to answer this question.