Response to Steve Yegge’s thoughts on a conservative/liberal divide amongst developers.
This whole idea really irks me. All I see is a meaningless and harmful dichotomy. A healthy collaborative culture allows everyone to have their own sensibilities and allows everyone to benefit from the variety of strengths & perspectives. I agree that it’s crucial to understand the viewpoint & patterns of each developer who you work with, but this Conservative/Liberal divide doesn’t speak to the characteristics that will help or hamper your ability to make the most of a person’s contributions, nor does it create opportunities to improve communication.
Off the top of my head, here are some of the core patterns & principles I’ve seen at play in highly functioning groups of developers:
1. Working Code Wins.
2. Learn to Communicate. Listen to each other. Advocate for your views. Soften your ideals while focusing on creating a great product.
3. Use distributed version control
4. Test your f*cking code. Have a CI server, publicly shame people who break the build
5. Keep informal technical documentation that allows anyone on your team to set up, test & run the software locally. When that documentation gets too complicated, spend time making your build process simpler.
6. Pass code around: Read, use, modify, and maintain your peers’ code – we all have our strengths but a team must collectively own the code base
Within that, do whatever works for you to satisfy the tasks assigned to you. Use your perogative. Pick up tickets that resonate with your strengths or concerns (ie. If you have strong opinions about how to make the login screen secure, take the lead on for implementing and testing it) Ask for help & seek mentors as necessary. If you are concerned about flaws or weaknesses in the software, speak up and/or do something about it.