Attitudes like cynicism, skepticism and optimism impact how we develop products. Being aware of attitude matters, as it can block development or lead to building the wrong product.
Gwen Diagram will give a talk titled "Cynicism Doesn’t Build Products" at Lean Agile Exchange 2020. This conference will be held online on September 10-11.
According to Diagram, cynicism, skepticism, and optimism are all dangerous when too much is applied, from cynicism blocking a great product from being built to skeptics questioning a person with a vision until they give up, or optimists following a bad leader. Diagram suggests we need to embody parts of each of these ideas to build a great product.
Culture is such an enormous part of building software and will definitely change the way software turns out, Diagram believes, whether that’s missing *-ilitys (testability, observability, accessibility- it’s a huge list) or choices that people are too scared to question. When members of a team follow a philosophy too closely, it can have negative effects on the quality and success of a platform.
Developers can change the world, as they build the software that the world runs on, as Diagram explains:
I like to think that we are building the modern buildings but instead of being physical entities, these buildings are online. We have the ability to question what we are building and to ensure that what we are building is the best for society - but, we also have the choice to not question at all. By questioning and building the most ethical software possible, we definitely have the opportunity to shape the world.
InfoQ interviewed Gwen Diagram about cynicism, skepticism, and optimism, the impact developers can have, and dealing with attitudes in teams.
InfoQ: How would you define cynicism? And skepticism?
Gwen Diagram: The definition of cynicism has changed a lot over the past couple of thousand years. Cynicism with a capital C is a greek philosophy that originally came from Antisthenes, but his pupil Diogenes really brought Cynicism to light. There have been people I believe who can be classed as modern Cynics as well. An interesting (but horrifying) modern Cynic to look up is GG Allin, a punk from the 80’s who was so cynical he was rejected by a lot of the New York punk scene of the 80’s. Cynicism with a capital C is to live life with virtue. Cynicism with a lowercase c is to reject thoughts that aren’t yours. It’s not often that you’ll come across the Greek definition of a Cynic at work; we are much more likely to come across cynics.
Where cynics question with a closed mind, a skeptic questions with an open mind. Instead of having strong opinions, a loosely-held cliché, they’re more curious and open to having their mind changed - but only when the evidence is presented.
Cynicism should not be discounted either; sometimes we just shouldn’t build a product - we just need to look at social media for examples!
InfoQ: How can skepticism help us when we’re set out to rewrite an application?
Diagram: Instead of purely discounting what was built before, it will help to look at the code with an open mind. By questioning what has been written and by learning from what was built before, you can incorporate some of the existing features and build upon them. Building applications takes a long time; if you scrap and rebuild the legacy application, the rebuild won’t be earning money while you are working on it. Most of the time the legacy software is paying your wages, so definitely don’t discount it entirely! Before you start rebuilding, get an understanding of the foundations of the legacy software though. Building upon sand can really create an unstable system.
InfoQ: What does building software with optimism look like?
Diagram: The worst case I’ve seen of building software with optimism is blind belief that what you are building will work, with no verification from customers or observibility. Often, the most optimistic failures that I have seen have had little or no monitoring or logging; the plan to release has been a big bang and stakeholders have been taken for a ride with truths that are a little twisted.
Be skeptical of your own work, verify it, observe it and release little and often.
InfoQ: What’s your suggestion for when there are issues in teams that go back to the attitudes of team members? How can we deal with this?
Diagram: Frank conversations and giving people the opportunity to speak up can really help to identify attitudes that are preventing the team from success. However, it’s always worth it to listen to the attitude of the team member - because they might have a point that you shouldn’t be building what you are!
But, if the attitude is one of bullying, shutting down people’s ideas and not being nice to the other team members, I’d check your culture. The person got hired in the first place; how did that happen? If the culture nurtures this kind of behaviour, sometimes it’s better to find a better place that fits for you. Do you have the ability to change the culture? Then, make the changes with diversity and inclusion. Make sure everyone gets a say, not only the one shouting the loudest - and shutting other people down.