• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Tim Cooke
  • Jeanne Boyarsky
  • Bear Bibeault
Sheriffs:
  • Knute Snortum
  • paul wheaton
  • Devaka Cooray
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Ron McLeod
  • Piet Souris
  • Ganesh Patekar
Bartenders:
  • Tim Holloway
  • Carey Brown
  • salvin francis

McKay Roozen: extreme programming

 
Ranch Hand
Posts: 46
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi, I've personally never used agile methodologies with my team mates. But I did sometimes do pair-programming with one of them, in order to teach a new framework under my supervision. This is a technique used in Extreme Programming, and I noticed it's mentioned in the udemy course.

What I have noticed is that, when two people are working on the same code, given that they are skilled, the quality is higher, because almost no bugs make it through and the architecture is well thought, and the speed of development is also higher, because less time is spent debugging or researching solutions to problems.

I was wondering though, in your experience: is this overall better quality and higher speed able to compete with two independent programmers? I mean, cost wise, pair programming can be quite a burden for the client's budget. But do you think that in the long run, and using the technique only for specific parts of a project, pair programming can be more convenient rather than more expensive?

Thank you. Kind Regards,
Martin
 
Sheriff
Posts: 13713
227
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Laurie Williams has published research on pair-programming - I think the general findings are that pairs or groups will tend to take longer to complete a programming task but the overall cost of ownership of the code is lower because of the higher code quality and fewer problems (bugs / design problems) thus reducing time you need to maintain and debug. Read the research papers though to see for yourself what she found.

The one caveat I would point out is that the pair or group needs to actually be talking about design, refactoring as they go, and writing more unit tests. Basically, I believe that they should be doing Test-Driven Development. Otherwise, if it's just one person is watching the other person code and the discussion around design is not driven by tests and refactoring, then it's pointless to do pair or group/mob programming. The whole concept is about collaboration and talking through the design so that everyone is on the same page.
 
Junilu Lacar
Sheriff
Posts: 13713
227
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
To that end, a disciplined solo programmer who does TDD well and is writing clear, clean code will outperform a pair or group that does not really do TDD well. In my experience, pair or mob programming is more enjoyable when people are writing tests, discussing, and refactoring so that the code that is produced is clean, expressive, and follows good design principles like SOLID and the 4 rules of simple design
 
What does a metric clock look like? I bet it is nothing like this tiny ad:
create, convert, edit or print DOC and DOCX in Java
https://products.aspose.com/words/java
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!