Dispassionately Discussing Software Development
Talking shop with other developers is an essential part of learning and growing your skills. These discussions should be enjoyable and full of reminders why you love programming. But to often the opposite is true. All it takes is one lout who had a little too much passion fruit for breakfast to dissolve an intelligent conversation into an awkward emotional mess. I’ve been guilty of and victimized by this brand of impetuous passion. Developers are notorious for this type of behavior. There’s nothing essentially wrong with being a passionate software developer; it’s more how you choose to wield this blunt instrument. Passion, in fact, is a requirement to sustaining a long and successful career as a software developer. But when your passion evolves into zealotry or dogmatism it becomes a burden. Earning the reputation of zealot, becomes an obstruction to learning and teaching.
Credibility is essential to having your ideas and teachings accepted by your peers. Achieving credibility can be difficult but maintaining it doesn’t have to be. A sure fire way to lose credibility is constantly giving into your compulsion to share how cool you or your latest bit of code are. Another way, without doubt, is discussing your craft in an irrational or emotional manner. If your credibility is damaged, your contributions to a discussion will often be tuned out or met with hostility. If you’re the type of person who loves the sound of your own voice, you probably have no idea when you’re being tuned out. The problem should be easier to diagnose if you’re constantly involved in heated or emotional exchanges.
On the other hand, If you have a reputation for being abrasive or narrow minded, you could be limiting your exposure to new topics. Your peers may be reluctant to share new ideas with you. At the extreme, they may avoid discussions with you entirely. So how can you avoid this sentence to Mars?
A developer needs to check their passion (at all times). Assume you have something to learn and be respectful. Don’t waste the precious time of others with mindless chatter; if you have nothing of value to contribute, don’t. Superstition, fear and attachment aren’t valid arguments in any conversation and they should be avoided. Overreacting is an evident presage that you’re losing control. If you lose control of your passion, it can quickly run amok. Your vision and judgment are immediately compromised and your input going forward is questionable.
When a discussion reaches this point, the time and effort allotted to the discussion can be tracked as waste. Being able to identify when your discussion has reached the point of waste is critical. If you’ve stopped listening, stopped participating, are consumed with defending your point of view or you’ve reached the limits of your knowledge and experience, then the value of the discussion is sharply diminishing. It should be quickly concluded or aborted. More obvious signs include flares of temper, shouting or decreasing professionalism. You should also be observing the other participants to see if they’re exhibiting any of these signs. There is no point in continuing if all parties aren’t receiving equal value.
The exchanging of ideas with others should be pragmatic and thoughtful. Calling this exchange a discussion is a misnomer. They should be conducted as a dialogue. These dialogues should be focused around growth and improvement. All techniques and practices should be candidates for evaluation. We must remain in control of our passion and exile it from conversation. If you can learn to discuss software dispassionately, all the knowledge are belong to you.