Why I love working in an Extreme Programming Environment

A lot has been said about how Extreme Programming is great, how it produces better and more flexible software, fosters a positive development environment, increases productivity, agility, code quality and so on and so forth.

Well, this post is about none of that. I just want to share some personal (and probably highly subjective) reasons why I have really enjoyed working in XP environment. My focus is more on the person (the developer) as opposed to the final product although the two often go hand in hand – I am yet to meet a developer who takes pride in producing crappy software. Really, I haven’t.

I have been working for an XP shop for a bit more than 2 years now, and the comparison that I am drawing is against a past life of working for a large multinational software vendor with an R&D team well into the thousands. It has been quite the contrast let me tell you that!

Here are some of the reasons why I love working in an XP environment:

  • You learn a lot. By pairing all the time, you learn from fellow developers. By having collective code ownership you get experience with all parts of the code and all across the technology stack of the product that your company is making. By having a process that strives to stay close to the requirements and end-users, you learn about the overall business. With XP it is easier to get the big picture.
  • You accomplish a lot. XP makes a point of being very development centric. It’s goal is to produce quality, agile software that meets real business needs and does so with the least amount of overhead. On any given day all the energies of the XP team are focused on producing software – you are either designing it, coding it, writing test for it, or gleaning the requirements for it. There is no room for anything else – XP is by definition very light on process. For a developer this means no torturous interminable meetings with dozens of people in attendance, no endless emails with 50+ people in the cc line to flood your inbox, and (my personal favourite) little to no room for politics. At the end of the day this laser-like focus on producing software lets developers just do that – and walk out of the office with a sense of accomplishment every day. Compared to my old job, I get way more done, and it feels great.
  • You have a say of where things are going. Communication and the courage to change course are key values in XP that make it easier to get involved, take the initiative or in general have an opportunity to positively influence the direction of where things are heading. Contrast that to a more “traditional” development environment where developers have narrow and clearly defined areas of responsibility, be it a certain module, part of the product or a project that goes on for months even years at a time.
  • Time to have a life outside of work. A 40-hour week is an inviolable part of the tenets of Extreme Programming (although minor exceptions apply, such as in the case of critical pre-release crunches). With the free time you can pick up hobbies, spend time with friends and family, read, start a micro ISV on the side, etc. Ironically I find myself spending a fair amount of my spare time catching up on new languages, development tools, trends and paradigms. Geeks will be geeks, I guess 🙂

No comments yet

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s