Software Religious Wars and Openness to Ideas
Some of the strengths I look for in software developers are openness and flexibility. Openness to ideas that can improve development outcomes, and flexibility in terms of being able to fit into any development process, be it Agile, Extreme, Waterfall, Rational, Scrum, or a process that has been tailored to a specific business situation..
When I first entered software professionally, I was shocked by the zeal of developers who had chosen one vendor without examining solutions from others. It was considered supremely uncool to follow any other vendor's ways of doing things - even though the individual may have learned his preferred vendor's product purely by chance. I think of this as "religious" thinking. It's as though some higher purpose is served by choosing one vendor over another. The software vendors often do everything they can to stoke this fire. A lot of this religious-style thinking - where non-belief is contemptible - came from the vendors themselves. Mac or PC is a case most people are familiar with...but the people writing the software for both platforms frequently do this amongst their own competitors as well. Specifically I am talking about a line of reasoning where an idea can only be valid if it fits into a given "proven" methodology or system that everyone practices and accepts. One of those systems must "bless" the idea. What we sometimes forget is that at one point people thought you were an idiot if you believed the world was flat. One of my favorite blog posts from Will remembered a time when you could be burned at the stake for professing a belief in the number zero. True stuff. They'd find you, tie your rear end up, on a pile of fuel, and light it. Think of all the innovation that disappears without that concept. Dark ages ensue, for that matter. In today's world, Microsoft develops great architectures and products but far from perfect architectures and products. PHP is a simple, fun, easy to understand language with wide adoption but not the best programming language I have ever encountered. 'Agile' and 'SCRUM' methodologies for software development are welcomed "reformations" of -and rebellions against- "Waterfall" and related software development methodologies...but they are not in and of themselves a successful business outcome. There are to be sure, times when you need a good set of standards (process, methodology) to unify a group of people. I like the responsiveness of Agile and SCRUM relative to old, slower methodologies. I have often been an "evangelist" for various methodologies. I love C# as a language. PHP gives me warm fuzzies. I am currently in a serious relationship with Ruby and Ruby on Rails object orientation and testing framework...I have my preferences and beliefs like anyone else. At the same time, we need to be open and flexible in getting the business outcomes we want. Any of today's popular frameworks or methodologies has value in its ability to allow us to work together in good way. Personally I like to remind myself new innovations and methodologies will come about tomorrow. To be successful we must remain ready to adapt - and in some cases drive change.