12 ms·
The Art of Debating for Software Developers
- throwawayffffas 6y agoI initially read the title as The Art of Debating Software Developers. Which I would also find very interesting.
- deleted 6y ago[deleted]
- Ceezy 6y agoIt would not be an art but a cult....
- llimos 6y agoI thought it meant putting the case to management that you need a bigger team
- WJW 6y agoDo they make the art while debating? It seems the debating would distract from the painting (or poetry, or music, etc) Maybe it's art about debating software developers? You could probably write a good short story about it.
- brudgers 6y agoThe prize for winning is several software developers.
- gridlockd 6y ago"Spaces instead of tabs in a codebase won’t bring any value to a company." This is wrong. If your company is still using tabs, it is already at a competitive disadvantage. If you force me to use tabs, I will be unhappy about that, because it greatly affects the mechanical part of my work. I will perform worse at my job and probably create debates about this very issue, all the time. I insist on spaces. I am the majority of programmers, because the ergonomic benefits of spaces are obvious. If, for some odd reason, you have team members that insist on tabs - a position that I have never encountered in the wild - then make them change, not me.
- raxxorrax 6y agoThere can be no sweet catharsis without conflict about stuff that matters.
- onion2k 6y agoIf you're unable to configure your editor and code formatter to work around this issue so that code is converted to your preferred format when you open a file and back to the company style when you commit it then the chance of you writing any useful code is exactly zero.
- mantap 6y agoConverting from tabs to spaces is easy. But if you try to convert from spaces to tabs you may get a mixture because there is no requirement with spaces that the indentation is a multiple of anything. Code written using tabs is usually aligned differently.
- pitkali 6y agoBut isn't that just a matter of using a formatter to ensure correct style in addition to tabs? If you are using tabs for indentation, your style guide probably does not, or at least should not, depend on how wide they are on the user's screen.
- enriquto 6y agoI agree 100% with you, but transposing the words "spaces" and "tabs" in your text.
- phkahler 6y agoThe most important thing about spaces vs tabs is to have consistency. If some people use tabs and some use spaces the code becomes unreadable. However, should you find yourself dropped into a codebase that uses tabs you might be wise to adopt that standard rather than argue about it. Tabs still lead to issues, but not as bad as mixed use.
- whack 6y ago> As a general rule, when you’re proven right, don’t claim loudly through your open office: “I told you so, you miserable pig! I was right! Therefore, I curse you and all your family on three generations!” Well, that was unexpected
- throwawayffffas 6y agoWhile I found a lot of what's written in the article worthwhile, the advice of using argument from authority as a debating strategy is just bad.
- arunix 6y agoBut they aren't really advocating argument from authority e.g. > Be careful though: not everything from evangelists will apply to your specific problem. Don’t invoke the Single Responsibility Principle spell without any argument why it’s useful and valid. Opinion leaders should provide you these concrete arguments; if they don’t, their names alone shouldn’t influence your decisions.
- OliverJones 6y agoObservation: rigorous debate, the kind of debate that generates advances in understanding and better software, involves LISTENING to the one I'm debating. It involves thinking "This person I'm talking to could be at least partially right". The article linked here is actually about the art of rhetoric: about convincing someone I'm right. And, as it happens, it's mostly about marshaling my arguments about why I'm right and biding my time. Those are good. But in a good debate, both I and the person I'm debating marshal our arguments. The old slogan is true: we have two ears and only one mouth. Listen more, talk less.
- shalmanese 6y agoI've always believed that you should adopt the attitude that winning an argument is a waste of time. If you win an argument, you don't know any more than you knew before the argument. You should always go into an argument with the goal to lose because losing means you're marginally smarter now than you were before.
- auggierose 6y agoYeah, that's wrong. I've often won an argument where I knew afterwards better what I was talking about than before. Same often holds of course when I lost the argument.
- thanato0s 6y agoThat's what I'm trying to say at the end of the article. Maybe I should have precised that at the beginning, though.
- ZephyrBlu 6y agoI would revise the goal slightly. My aim is always to try and understand a different perspective, because this forces me to account for that in my own perspective. My mind can be unchanged or I can 'win' the argument and still have learned something new with this approach.
- wccrawford 6y agoMy goal in an argument is not to win or lose. My goal is to come out with a plan that works best. That almost always involves taking criticism and advice into consideration, and sometimes involves not doing things my way. Sometimes I'm even completely wrong. But sometimes I'm completely right. There's no way to know before having the "argument".
- ainar-g 6y agoThe article mentions not taking things personally, but doesn't go into detail on how are you supposed to do that. Developers, myself included, are often very passionate about their favourite tools and practices, so when the environment changes from the one that encouraged them to the one that discourages them (for example, when switching teams or when new management arrives), it may become a ticking bomb of anger and frustration for some. On an unrelated note, the page uses: hyphens: auto; Which is good, I love hyphenation! But text that is hyphenated but not justified is less legible, in my opinion. Hyphenation works best when you know where to expect it. I would add: text-align: justify;
- scns 6y agoThere is a talk by an actor (IIRC) who worked as a football (soccer) referee, to learn not to take things personally: https://www.youtube.com/watch?v=LnJwH_PZXnM https://www.youtube.com/watch?v=LnJwH_PZXnM
- thanato0s 6y agoI'm the author of the article. I'm struggling with that myself. I don't have any solution tailored to everybody, because I think everybody is different on that. I'm the type of developer speaking loudly when I try to defend my idea, and I improved a lot over the years, but others won't have any difficulties to argue in a calm fashion, and there is a whole spectrum between. The only things which helped me was meditation and trying, again and again, to breath and trying calm done when I see myself too passionate. But again, I think it's really personal. Thanks for your comment on the formatting! I'll try to justify the text see how it goes.
- ainar-g 6y agoThanks for the response! I almost think that during debates people should be required to breathe deeply after every couple of phrases, heh.
- m0zg 6y agoBy far the most important technique for effectively engaging in such a debate is the Socratic method (AKA "precision questioning" at Microsoft - if you work there and you haven't taken this class, you should, if it's still being offered). Basically you just carefully ask questions which, little by little, bring the things to the point where both sides could accept the resolution. Note that this works both ways, and the other side could (and IMO should) do the same to you, and _you_ could very well discover that your assumptions were wrong. That way instead of engaging in a battle of egos (which almost never works), you get to engage in removing unjustified assumptions and finding the mutually acceptable solution. This does require some skill, and more so if the other side also knows these techniques, but I'd argue that this is the most respectful and effective way to argue at work, and the only one I know which nearly always produces good outcomes. This does assume the argument is being conducted in good faith though. If it's not, you'll only irritate the opponent as their logic gaps and lack of good faith will become blindingly clear.
- awsanswers 6y agoDisagree efficiently over debating. Most software choices are reversible
- throw0934509845 6y agoProductive workplace discussion is not "the art of debating". Just listen respectfully and ask others to do the same. If you need to convince someone of something you should be able to ask them simple questions that lead them to your opinion. If you can't do that, you might not have the better idea. This approach will convince them and let them feel that it was their idea. Debate is structured and, importantly, proctored to adhere to a rigorous set of standards for which the participants have prepared. It is helpful on an individual level but often not a good way to inform decisions.
- thanato0s 6y agoI agree in theory, but I saw as well strong opinions held without real arguments, throwing "we always did that this way", or because the person is higher in the hierarchy so he's right. I think, in these cases, it can be useful to try at least to bring more solid arguments in the conversation.
- Chris2048 6y agoAdd to that list of strong opinions without real arguments: "It's standard/industry practise" or "because it's Agile", without a breakdown of merits as to why that is.
- dullgiulio 6y agoTangentially, the adage "strong opinions, weakly held" is nonsense. If you have a strong opinion, you look like a fool if you change your mind when evidence is shown to you. It is much better to just stay humble. Show your insecurities and lack of knowledge openly and early, you'll be surprised to see how people reactions change from hostile/confrontational to outright helpful.
- skrebbel 6y agoI've always been a fan of "strong opinions held weakly" and the rebuttals I read to it so far were, to me, weird straw man articles about assholes at work and not being one. But your comment totally convinced me, thanks. There's no need for strong opinions, even when weakly held. It adds nothing. Amazing how a few sentences can do more than entire blog posts sometimes.
- carlmr 6y ago>Amazing how a few sentences can do more than entire blog posts sometimes. A long form article is more likely to try to make many points at the same time, some strong, some weak, some wrong ones. Comments are usually short, making only one point. Furthermore they're sorted and filtered by popularity. This means that strong, pithy statements are displayed much more prominently. Likewise this article could use some editing.
- dgb23 6y ago
- candiddevmike 6y agoWhy debate when you have the ear of the engineering manager/product manager/VP and can back channel everything without consensus among your peers? Or on the flip side, make someone's life a living hell by having a nitpick debate in a PR but act like everything is fine with the PR during meetings. Software development has an ego problem, and I wish there were more resources out there to address it.
- yodsanklai 6y ago> Why debate when you have the ear of the engineering manager/product manager/VP and can back channel everything without consensus among your peers I think this is a good point. Not everybody wants to debate and reach consensus if they can find other means. Also, some people don't like debating because it makes them uncomfortable for some reason. Debating should be done in good faith with the goal of reaching the best outcome, but some people take it personally and see it as an attack against themselves and their values.
- baybal2 6y agoPeople like to listen to charismatic people, and being one some times involves being pushy, emotional, able to dispense punishment, and throwing insults when needed. The author sounds to me exactly like the guy who likes to run talkshops, for the sake of talkshops. Your ideas work, if you can push them through, largely regardless of their merit.
- mrkwse 6y agoI think it's important to be wrong and have the humility and confidence to be wrong. Throughout school and, in particular, university I would often try and avoid discussion with teachers/lecturers/seminar groups etc. for fear of being wrong and for whatever judgement would follow that. Part of that was anxiety/impostor syndrome, but also condescending lecturers and teachers. When I got to my first job, I was hugely fortunate to have colleagues that wouldn't judge anyone for their views/opinions, whether right or wrong (technically, obviously they were expected to be respectful). As such I found myself learning and growing so to such a greater extent, and quicker, in those first couple of years of employment. It's something that goes both ways, if you're respectful and positive of colleagues who may be wrong, you'll help them to learn and develop, which in turn will contribute to a better team overall, more collaborative and more competent. I think it's especially important to try and include the quiet ones, again they may be wrong, but as long as you impress that it's fine to be wrong and work with them to improve their knowledge and understanding, that bit of extra effort will go so far.
- brabel 6y agoI am disappointed this article does not mention any of the philosophical theory about debates (arguments), namely the logical fallacies that are so common in all sorts of conversations/debates (straw man, ad hominem, black-and-white, authority, no-true-scotsman, fallacy-fallacy, moving goal posts, Texas-sharpshooters) as well as the types of arguments (deductive, inductive, abductive, analogy, reductio ad absurdum). Politicians, for example, are masters in using fallacies to make arguments that less educated people find persuasive. Here's a good video about argument types: https://www.youtube.com/watch?v=NKEhdsnKKHs https://www.youtube.com/watch?v=NKEhdsnKKHs And this one (and follow ups) about logical fallacies: https://www.youtube.com/watch?v=8qb-h0sXkH4 https://www.youtube.com/watch?v=8qb-h0sXkH4 Knowing these I think is more important than using the more vague advice this blog post mentions.
- UncleMeat 6y agoI hold the opposite view. Humans rarely make decisions based on valid deductive reasoning. Many argumentative methods that are technically fallacies are tremendously useful in practice (argument from authority is a good example) because we need to make a decision without the ability to actually develop a formal argument from the ground up. Rejecting heuristics will make decision making slow to a crawl.
- tgv 6y agoIn a complex discussion, these devices are rarely useful. And the fallacies are only meant to invalidate your opponent's arguments, and sometimes incorrectly: e.g. a debate on the merits of refactoring ultimately has no logical resolution, only reasonable expectations based on experience and authority. On contrast, the article is more about maintaining relations and work culture than deciding a debate, which is indeed vague, but at least as valuable.
- brabel 6y ago> And the fallacies are only meant to invalidate your opponent's arguments Not only your opponent's but your own also! That's very important... knowing the fallacies you're less likely to use them, which I think many people do out of their ignorance of the topic.
- flower1143 6y agoThe most important thing is knowing your statistics based on sources. When your opponent makes a vague claim about some increase/decrease, you ask what the precise numbers are. If they don't know, you point out that they don't know.
- kieckerjan 6y agoLike many commenters here I am disappointed by the lack of emphasis in this article of listening to the other side. Which is strange because at the end it concedes that it is not about winning the argument but gaining insight, valuable ideas, a sensible course. One of the smartest ways I know to approach a discussion with insight in mind, is called steelmanning. It is the opposite of strawmanning. In strawmanning you attack altered, weakened versions of the other side's argument. In steelmanning you attack its best, most convincing version. You even seek to corroborate the argument and verify it with your opponent before attacking it. The benefit is that you genuinely have to understand the other's arguments before arguing against them. The following blogpost explains it very well. https://themerelyreal.wordpress.com/2012/12/07/steelmanning/ https://themerelyreal.wordpress.com/2012/12/07/steelmanning/
- watwut 6y ago> If you need to follow a golden rule when debating, take this one: don’t take it personally. In other words: don’t feel attacked directly, as a person. There are situations where you are attacked personally and need to respond. Whether the attack is direct or through sleazy implications. This is not some kind of rare occurrence, people who try to use debate to either show/gain dominance, get equal or just try to win by sleazy tactics exists. Pretending this does not exists does not make you win the debate, it makes the sleaze personal attack stick and makes you look bad (less capable or weak). And I know, because when I was younger I listened to advice like this and that is exactly what happened. Nowdays, I call it kindergarten rules of behavior. They sound good and are sort of what adults say to kids. Except that they assume that you are put in an idealized situation. They miss crucial "how to recognize and react when the sleazy tactic was used" and instead pretend it is not happening.
- notmyname9173 6y agoCalling out bad-faith arguments just seems to make things worse (at least in the current US political/social climate). I usually just ghost people who engage in ad hominem attacks, lies, and deception in their arguments because I have no idea what else to do.
- schalab 6y agoThe allure of free speech and debate is that the best ideas win. But what I have often found is that the best debater wins. And some debaters are so good they can win both sides of a debate. This wouldnt be that much of a problem if you assume verbal iq is an independent variable uniformly distributed through the population. But I have often found verbal iq is highly co-related with other biological traits and markers. This creates a biased situation where debates often lead to erroneous conclusions and bad results.
- asdfman123 6y agoI'm not sure how much verbal IQ has to do with it. Everything in life is a matter of practice and study. For instance, there's difference in musical ability between people, but the guy who practices guitar every day is going to be better than the guy who doesn't, 100 times out of 100. I actually have a considerably higher test verbal IQ than mathematical and have perfect verbal section test scores to show it. However, I used to really suck at debates because I was naïve and unpracticed. I went through a few years of spending too much time on reddit, though, and now I can wallop most average people. The most important thing BY FAR is to immediately establish definitions and frame the debate. You force your opponent to operate in the tiny amount of air space that you've given them, and constrain them to talk about things that you've chosen so you probably know more about them.
- schalab 6y agoYou have natural talent which becomes exponentially better with training. But a guy who struggles to even find words will be trounced by you 9 times out of 10. Regardless of who is right. Interestingly those type of people will rarely venture on message boards, because this requires a lot of reading and writing and they would rather spend their time on other pursuits(maybe more visual?). Its interesting to imagine the section of viewpoints that dont even get represented at this level.
- asdfman123 6y agoI doubt that has much to do with verbal IQ, though. When I was a kid I also had trouble finding words, so I made a lifelong habit of learning them. As a result it made me an excellent writer and reader, but still didn't improve my speaking. If you're feeling verbally blocked it's probably more likely that your problem is some form of social anxiety. (That was mine.) If you become much more talkative when drunk, for instance, then the problem is inhibition. You can meet plenty of garrulous people who can talk circles around you, but it doesn't mean they're necessarily bright.
- lmilcin 6y agoIf your goal is to convince people and agree with your position, feel free to read the article but understand this is getting you nowhere close to your goal. Convincing people of anything at a company starts way before by building rapport with people and other techniques. It is largely proven than with most people it is your current standing, perceived intent and subtle speech/visual cues that are more important than the actual content. Want make it more likely people agree with you? Try to be helpful, ensure people consistently think they are better off agreeing with you. Ensure people are safe investing in cooperation with you (so no talking behind their backs, ensure if somebody achieved something you will attribute it to them even if they are not present). Ensure you listen to people and they don't get impression you are welcoming their point of view. Let people know when you make mistakes (I like to use this as learning opportunities). Congratulate people on their achievements even small, but never do this if you are going to sound banal. Do this and you might be able to convince people of about everything and even if you make some mistakes they will let it slide. (If it felt like "How to win friends and influence people" then it wasn't an accident. Developers are like any other people and same timeless tips apply.)
- thanato0s 6y agoI thought that too, till I bumped into the "I'm right and you're wrong because my ego is huge" kind of person. Even worse: when they are higher in the hierarchy, they use their power to impose whatever they want. No tests, using jQuery 'cause it's the best, microservises are good even if it's a distributed ball of mud (named after Stark Trek starships), and so on. I agree with you in theory, but in practice, sometimes, with some people, this strategy will tend to infinity on a time scale.
- lmilcin 6y agoYou are never going to satisfy everybody, that's not a realistic goal. The more realistic goal is to choose battles that are winnable and with good RoI.
- asdfman123 6y agoHere's how you deal with someone who is "always right" and has more clout than you: 1) Try to be friendly, try to create a mentor/mentee relationship with them, and get on their good side. If that works, maybe they will be slightly receptive to what you say. Regardless of the outcome, though: 2) Ultimately just do what they say. I know that's anathema to many people in the field -- and it was a damn hard lesson for me to learn -- but you have to understand when you're picking a fight, and who stands to lose. (Hint: you're picking a fight by disagreeing with an Ego Monster, and if you have less clout than them, you're going to lose.) By losing, maybe you'll get less favorable work and less recognition. Or maybe they will eventually "manage you out" of the organization. But you will not get what you want in any sense of the word. Swallow your pride, go along with it, and maybe look for a workplace that's more accepting of new ideas. There is no winning.
- joshribakoff 6y agoI strongly disagree about quoting thought leaders as an appeal to authority. It’s ok to quote thought leaders but focus on the tradeoffs. Most thought leaders embellish things for more clicks, or speak in generalizations that are easily misapplied. Telling your coworkers to do something because Martin Fowler “said so” is not a good argument
- thanato0s 6y agoI agree, I hesitated to put it in the article. I decided to do so at the end, but I've added that too: > Be careful though: not everything from evangelists will apply to your specific problem. Don’t invoke the Single Responsibility Principle spell without any argument why it’s useful and valid. Opinion leaders should provide you these concrete arguments; if they don’t, their names alone shouldn’t influence your decisions.
- 7402 6y agoI've observed that the ability to win a debate is often orthogonal to the ability to write good software. Both as an individual contributor and as a manager I've tried to avoid the use of debating as a decision-making tool.
- lazyant 6y agoThe biggest mindset change is to consider a debate a problem-solving exercise where both parties are in the same team, instead of a competition with the person you are arguing with. (Same goes for arguing with significant other and to some extend, to any negotiation).
- Chris2048 6y ago> It’s not your ideas against somebody else’s anymore, it’s influencer’s proven-to-be-right-ideas against ideas with less weight Or in other words, argument from authority/popularity over ideas / merit. This is the opposite of good debate, even more so with the dubious distinction of a tech "influencer" being an authority. By all means, borrow arguments if they are good, but please do not promote them because of who said them.
- tabtab 6y agoOne thing I find is that academic-oriented debaters often view the criteria for the value of a tool/language/system/etc. very different than those used to thinking in terms of business (profit, resources, deadlines, etc.). For example, assuming easy access to elite staff (dev & users) and having lots of time for perfecting a domain model is often unrealistic in business. Getting the "right" answer seems more important to them than resource constraints a typical business faces. They are perfectionists in their models and tools but not perfectionists in resource management because they either don't have enough practice there, or are rusty. One has to agree on resource metrics up front, otherwise the debate won't get anywhere.
- vendiddy 6y agoI like to repeat the other point of view in my own words before I offer my own. This has two effects: 1. It ensures I actually understand the other person 2. The other side is more likely to listen