Or am I? I think I’m a pragmatic programmer. Note this is also a book title I read, by pragmatic (note not agile), I think it’s about balance between software quality, effort and delivery date. It’s also about releasing software with known risks (including bugs)
I thought about this as I started practicing some new (new to me) programming techniques, e.g., pair programming, test driven development (TDD), and also seen developers of different personalities/experience adjusting to this, at the same time trying to deliver the project on schedule. I felt and considered myself to be lucky in this aspect, as I thought my career at UGS/Siemens PLM Software laid the foundation for me as developer, in other words, I was very lucky to work with some excellent developers (definitely top 20% according to Jeff Atwood, co-founder of stack overflow), and received their guidance and mentoring in my programming formative years. Note I was not doing Agile, TDD, pair programming at that time, at least not formally. But at the latter part of my stay there, I did quite a bit automated unit/regression tests there. Also, although there is no pair programming, whenever I feel stuck, I could go to a senior member of the team, and talk. Not to mention the long debug session. I wrote about them in my blog long time ago (in Chinese, such as this one and this one).
On the other hand, in last 15 years, started at dot com bubble, many non-developers joined the force becoming programmers, doing web or some other development. They are not necessarily as lucky as me, because the difference between IT departments/consulting companies and a software company (developer focused). I have first hand experience in last 5.5 years working for mostly consulting companies (divisions) and IT departments. While I had quite different experiences across different organizations, the overwhelming theme is projects are for smaller audience. Thus comes the difference in development process/methodology.
Also, again echoing Jeff’s article, 80% of the people do the job to make a living. Note personally I don’t necessarily 100% agree with what Jeff says. I feel for developers, the most important thing is “try to learn something new everyday“. Another point I think is just like kids learn things from pre-school (daycare), adults learn programming from the first (or second) company they worked for. It’s crucial they got it right at the beginning, otherwise while it’s still possible to correct, it will be difficult. Imagine trying to persuade me to do TDD
Last but not least, this is mostly for fun, but an interesting read on developers personality.PS, Another common question, especially in the job market, is front end vs. back end? This usually refer to the front end/back end of a web application in recent years. I have done both my software development career. And now I consider myself to be a full stack developer.