16

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.

  • 28
    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
  • 3
    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 '19 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 '19 at 16:25
22

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.

| improve this answer | |
  • 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
16

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.

| improve this answer | |
  • 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 '19 at 11:40
0

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.

| improve this answer | |
0

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.

| improve this answer | |
0

Agile is more marketable because it involves different stakeholders with different roles and responsibilities related to the software building process.

When in its second edition Kent Beck enlarged the scope of participants within XP, it was late: people already embraced other methodologies because the first XP version targets the doers of the code, and that is what the audience still remembers of either unconsciously or not. XP was not marketable at birth.

| improve this answer | |
0

I've always thought that Scrum was the version of Agile that was easiest to sell to management: the deterministic estimates, its somewhat doctrinaire, well-defined nature ("you're not really doing Scrum - feel guilty!")...

Stretch out your sprints long enough, and take those little "poker cards" seriously enough, and Scrum can very much tickle the same itch that Waterfall methods did. This is not necessarily bad, but let's not hide behind smoke-and-mirrors here.

On the XP side, pair programming does not generally appeal to management, especially non-technical management.

To put it in SAT analogy format, Scrum:XP :: The Monkees:The Beatles

| improve this answer | |

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