× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



It's not about delivering poor code quicker, it's about delivering
better code quicker. Coding starting with a well designed "test" (a
predefined result) then building up code to satisfy that test. But
only coding what's required, not coding isn't in use yet.

What is left out is the stuff that is often inserted up front then
found to be not needed or incorrect. So, there's no coding for "future
needs". In the case of traditional design where the first iteration
might delivery the inventory module but not the purchasing or order
entry module, the inventory module is built to do what it needs to do
and nothing more - the hooks and additional "stuff" that we might
traditionally have added when coding to cater for how we think the
future modules will integrate is simply not done until those modules
are scheduled to be added on the storyboard.

The logic for this is that the additional work of adding them when
required is no different to the amount of rework that normally happens
when we find that what we anticipated was required has to be removed
or altered - often affecting our original work as well.

Another way to think of it is to build methods that solve the cases we
know about rather than trying to build "super methods" up front that
will handle the cases we know about and all the cases we can imagine
might be needed. A lot of code might be written for cases we will
never actually use, and the cases we anticipated might require rework
when we have an actual real life case to be handled by our code as we
didn't anticipate it quite right.

As to the pair programming, I understand other people misgivings, but
have a different take on what pair programming is and how it works. Up
front, let me say that I have not practises it in a formal sense, I
just imagine it working a bit differently to two people "writing the
code". It seems to me more like a pilot/engineer or pilot/navigator
arrangement where on person handles the mechanical aspects of the
coding and someone else works with them in the "where are we
going"/"how does it fit in" kind of picture.but perhaps a bit more
than that. I imagine some back and forth about "why are you using a do
while loop, a do until would be better in the case because..." type
discussion or perhaps it might be - try using this technique instead
of that technique to solve that code problem.

The few times I've written code with someone right next to me that
understands what I am doing enough to suggest changes or alterations
as I write the program has been pretty interesting - it does seem more
productive (and it's way more enjoyable), but it was not any kind of
formal pair programming project, just a case of needing a program
knocked up as part of something else we were working on.

I think it's a challenging concept and would be really interested in
trying it. I think one of the biggest hurdles would be that it
requires people to really put aside their egos when coding.


On Wed, Aug 31, 2011 at 3:23 AM, David Gibbs <david@xxxxxxxxxxxx> wrote:
On 8/30/2011 9:48 AM, Buck wrote:
Agile appeals to me because it shortens the release cycle from years or
months to weeks.  I'll still do rework, just like the waterfall code,
but instead of tearing up 6 months of work, I'll only have to go through
2 or 3 weeks worth.

True ... but (at least in my observation) you'll be doing the rework much more frequently ... because you your focus for the initial development was too specific.

Nothing annoys me more than someone taking the attitude "I'll code it poorly now, so it will work, and fix it up later".  Better to write your code to accommodate functionality that you KNOW is going to be in the next iteration.

Refactoring is a strong attribute of the Agile / Scrum methodology ... RPG & Cobol don't lend themselves to automated refactoring (unlike Java).

david



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.