I like XP (extreme programming), especially the part where there are 2 programmers at the same screen, since a problem's solution is often found more quickly if only you explain what you're doing and pair programming forces you to explain what you're doing.

Over the last 10 years or so, the XP style of working seems to have gone out of date in favor of the working methodologies: Agile and/or Kanban. Why? Since XP seems to me to be a very good way to work and is a lot about the programming whereas Agile and Kanban are more about processes.

  • 24
    XP is an agile approach. So "Agile" can't really replace XP. – Joachim Sauer Oct 9 '12 at 6:44
  • 1
    I was about to post an answer, when I noticed Volker's is saying pretty much the same. Agile processes are by nature adaptive, there's no such thing as "perfect/pure" Kanban, Scrum, XP, it's more of a mix and match thing. XP, in that sense, it's still going strong, given that several of the concepts it introduced were adopted by almost all other approaches. – yannis Oct 9 '12 at 7:08
  • 3
    There's an interesting list of criticisms on XP on Wikipedia, but if you scan through it, most of it applies to Agile in general. – yannis Oct 9 '12 at 7:08
  • 2
    I don't think XP went anywhere. Much of it is assumed as part of agile development. I think what went out of style was using the term 'extreme'. It always gave me image of a coder hopped up on Mt. Dew with a snowboard leaned up on the desk. – JimmyJames Jan 11 at 15:26
  • The whole "Pair Programming" thing hasn't worked out, IMO. It's great for solving certain isolated problems, but the vast majority of programming problems (user interfaces, architectures, business rules) don't justify the cost of having two software developers sit at the same screen. – Robert Harvey Jan 11 at 16:25

There's a lot of different styles, methods and mindsets related to the whole field development, and everything has it's own, shiny name.

Agile is just a mindset that moves away from the usual, static programming models (like waterfalls) - it's primary goal is to achieve more flexible development and (at the very end) better software and happy customers. Below agile, there are a lot of different models like Scrum, Kanban, XP.

Especially Kanban doesn't come from software development originally, it originates in building cars (i remind Toyota introduced it for building cars and some software developers adopted and expanded it)

Pair programming, code reviews and such stuff are just tools - you can (and should) always do it during a project, regardless which method you use. It's just that this stuff is more native to agile than to static.

XP more or less introduced these things (or at least gave them a shiny name) and all the following stuff adopted them because it simply worked out good.

  • 3
    As @refro too mentioned, Scrum and Kanban don't include pair programming or code reviews (but neither do they exclude these). Both are more of a project management methodology than a software development process. And as such, they are applicable to a wide range of fields outside software development. Whereas XP is specifically a software development approach. These can coexist - you can manage your XP team in the Scrum way. – Péter Török Oct 9 '12 at 7:13

In my view XP is a programming practices, Scrum and kanban are project management practices. They have a relation but do not replace each other.

In our kanban project we use pair programming (mostly for complex sections and debugging), TDD, CI. So it is still used but management is pushing the project management side harder.

  • 1
    Pair programming is like jamming in musician practices. It works sometimes and sometimes does not work at all. In rare cases it could be adopted as a general way to play and in very rare cases as way to compose. – Alex Yu Jan 13 at 11:40

Extreme Programming is about the mechanics of development, whereas Agile is about the SDLC (software development life cycle).

The main reason you don't hear about "Extreme Programming" by name anymore is the use of the term "Extreme" as a positive adjective is an outdated 90's-to-early-00's thing that is seen as corny now. It's mostly just a victim of marketing. That's why you almost exclusively hear it referred to as "XP", even verbally.


I have some thoughts about pair programming.

To me this is something you do when you are stuck with something. At those times it can be very effective, it can get you out of a rut. But it is also tiring and a way of working that the stereo type programmer does not like to do more than occasionally.

If you are digging a hole, few people would mind getting help from a co-worker. But as soon as there is creativity involved people prefer to do things their way rather than someone else's way. So tension is always near unless one doesn't care one way or the other or if one's role is clearly to suggest only.

Where I work pair programming is not formalized but we do have ad hoc sessions and they are typically brief. It won't be like "Hey co-worker, how about some extreme programming?" It would more often start with "Can you have a look at my screen?" and pulling up a chair for them.

So I do not think pair programming is dead or less popular, it is just one of those tools you do not use very often because it is costly, and not primarily because you have two payed people working on one thing.

protected by gnat Mar 12 at 10:28

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.