DEV Community

Richard
Richard

Posted on

Why Dev is just like Debate

In college I participated in Parliamentary Debate, among other forensics events. 👨🏼‍⚖️

In brief, parli is a two-on-two competition that takes a format of Government vs Opposition. You receive a Resolution at the start of a debate and have a few minutes to prepare. A resolution could be something ambiguous like "This house should raise the roof." or something much more specific such as "The State Legislature should give undocumented immigrants driver's licenses." or anything in between. A Gov team must create a case. The opposition team can either try to predict their arguments, or even create a counter-case. It lasts about 45 minutes. During the rounds, the debaters on the opposing team "flow" the arguments of their opponents on paper to ensure they don't miss anything during their counters.📝

Now, I realize that the majority of people reading this are at least of a cursory level of experience in software and tech. When I say Debate and Dev are similar, I am not talking about the comparison of a single college-level debate and some behemoth of planning and execution such as an Agile project. That's like comparing a boxing match to a military campaign.

I am talking about coding; problem-solving.👨🏼‍💻 That is where the similarities lie. And they are profound. In debate, you start with a resolution. The resolution may be bland and boring, it may be ambiguous, may be tedious, may be familiar, or maybe not. You never know. And coding is the same way. You have a problem, and you never know if that problem is simple or complicated until you get it. It may be abstract. It's solution may come to you immediately or may require some research and head-scratching before the a-ha🎉 moment.

To solve the problem you have to analyze it. In debate, you have to do this analysis very, very quickly, but luckily as software developers we generally have the luxury of more than five minutes of preparation before pushing to production. But debate and development alike have to understand the problem first. You have to think about the specifics, because language is everything. Only when you have understood the limitations and other complexities can you move forward.

Next, you have to map🗺 it out. In debate this is when you flow it. You write your points in a line, you write their arguments as you hear them. Beauty in chaos. In dev, this is pseudocode. This codifies the abstraction. Even if it's totally wrong, seeing it and structuring it while establishing a mess of discrete steps is moving you towards the solution to the problem.

The debate progresses. The code gets written. Points get dropped by both sides, arguments are made. This is code optimization. Each team clings to their strongest arguments, expands upon them, locks it in. In dev, extraneous stuff is removed and functions are rewritten; things become more efficient.

Here is where the metaphor ends and I try to describe the parallels in my personal experience of both of these. There isn't a word for it that I am aware of. Maybe the Germans have a word for it. Vorstellung perhaps?🧐

Do you remember when you first tried to program something and it just didn't work? And you didn't understand why. You were frustrated and annoyed that the computer didn't understand what you wanted. Stupid computer! And then you asked someone or you found a solution online or something and you realized exactly how many steps you missed in your original code.

Debate is the exact same way. You think you are good at arguing until you have to do it well and then you realize you suck. And your mind just like the computer does not want to bend to your will and it is just beyond rageface. Stupid brain! 🧠💥🥊

But then, in time, it comes to you. You can suddenly verbalize efficiently exactly why this glass of 🍊 orange juice is good. What 'baters call net benefits. (BTW, the glass of orange juice was always my first exercise for teaching new debaters.) In coding this is when you first understand what an array is, or functions, or callbacks, or whatever else.

In debate what it comes down to is being able to get from point A to point B to point C to point D without skipping steps and without getting frustrated. And if you think about it, coding is the exact same thing.

As an aside, I must say debate was a fantastic experience overall, and one of the most difficult and yet gratifying things I have ever learned. At first it was supremely frustrating. In time it became easier and easier, and by the time I ended my debate career my partner and I had taken a silver medal at a national competition. In the near future I plan on volunteering to teach debaters at a community college just for fun. You should give it a shot!

Top comments (3)

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

I've never understood the idea that one can just assign positions to people and have them debate. This format is only fair assuming that no position is inherently correct or incorrect, which simply isn't the case.

Collapse
 
richclarke0 profile image
Richard

It's more about the exercise itself than proving one position is more valid than the other. I've lost to canned cases, and I've won debates where we outright lied and made things up. And I've won a debate where we were supposed to lose, a debate I performed with a partner in front of an audience at an event called Law Day. The organizers weren't too happy about that because our victory kind of undermined the whole point of the event. :D

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Yea, but that just shows that it's really more about presentation than content.