Loading ...
Sorry, an error occurred while loading the content.

Rare Wisdom

Expand Messages
  • Ron Jeffries
    Thanks to David Abrahams for commenting positively on this and calling it out to me. I m quoting James posting here without comment beyond this: this is good
    Message 1 of 50 , Oct 1, 2001
      Thanks to David Abrahams for commenting positively on this and calling
      it out to me. I'm quoting James' posting here without comment beyond
      this: this is good stuff, folks. Pay attention to the man!

      Thanks James!

      Around Sunday, September 30, 2001, 10:10:56 PM, jgoebel@... wrote:

      > I believe strongly that the only way to decide if a team is writing
      > maintainable code is to move it into maintenance during
      > development. How quickly can the team continue to produce
      > functionality when someone new is modifying code? Given the
      > fact that the orginal author is available in the room, this should
      > not be a high bar to cross if the code is remotely "maintainable".

      > Therefore to test the "maintainable" quality of the code, I need to
      > have some programmers on the team that are representative of
      > the bottom half of the maintenance team I will have five years
      > from now. This in no way implies that we should exclude strong
      > team members from our midsts. I would argue that seeking to
      > build the simplest code that can work, with no duplicate code,
      > that is fully testable and can be easily understood, offers a
      > significant intellectual challenge for the strongest members of
      > the team.

      > Templates, design patterns, and other tools can be very
      > powerful. But so often in our business the artisans who learn
      > these tools attempt to demonstrate their knowledge by using
      > them everywhere. When I work with programmers who are
      > moving into the design realm inside of a large project, I find that
      > they quickly learn the mechanics of moving complexity.
      > Unfortunately, they often feel they have succeeded by moving
      > complexity from their modules into someone elses. Much like
      > one can use functions to collapse duplicate code into a single
      > entity, I believe the skilled software architect uses design
      > patterns and other tools to move system complexity into well
      > defined "small" areas. In an XP world, as elsewhere, the area of
      > the design that contains dangerous and complex code should
      > be written by skilled craftsman. Furthermore, this dangerous
      > code (as defined by the danger of junior programmer modifying
      > it) must have an almost bullet proof rigorous unit-test saftey-net.

      > So imagine for a moment some story-card that requires
      > multi-threading to be added to a system. Multi-threaded code
      > should absolutely be identified as technically risky. In the
      > systems that I help design, the User Interface is never allowed to
      > be called from anything but the User Interface thread! It is very
      > likely that providing the required functionality while isolating the
      > rarified code will require an insightful design effort. And of
      > course there is the challenge of building a unit-test framework
      > that will not only demonstrate that the current code is correct, but
      > will set off appropriate alarms when an inexperienced
      > programmer makes an inappropriate change in the future.

      > When I work with experienced developers who are yearning to
      > become architects I have one lesson that I repeatedly focus on. I
      > explain that my opinion of their efforts will be based upon my
      > review of everyone else's source code. I do not evaluate the
      > architect's code nor even the interfaces they design. I want to
      > know how their interfaces have led others to write maintainable
      > code. That is one of the most valuable rarified skills!

      Ronald E Jeffries
      Fear is the mindkiller. --Bene Gesserit Litany Against Fear
    • Darren Hobbs
      ... We ve just installed a wiki as the basis for a team intranet / knowledgebase / project discussion forum. We re still in the germination/evangelisation
      Message 50 of 50 , Nov 13, 2001
        --- In extremeprogramming@y..., kevinxp@q... wrote:
        > --- In extremeprogramming@y..., Ron Jeffries <ronjeffries@a...>
        > > Please, if you have time, tell me of the ways your team deviates
        > > from "pure XP" as you understand it. I'm especially interested in
        > > things involving software tools, wikis, scanners, NetMeeting, and
        > > the like.
        > ...(snipped)...
        > We considered a wiki, but our intranet isn't set up to host one
        > right now, and it didn't seem worth it to select, learn, and
        > install one. So we did the simplest thing (Word).
        > Kevin
        We've just installed a wiki as the basis for a team intranet /
        knowledgebase / project discussion forum. We're still in
        the 'germination/evangelisation' stage (ie. there's not much on it
        yet, so only one or two people are actively using and adding to it).
        The initial feedback has been good and people are starting to use it
        without being prompted. It works well as an intranet as we're all
        too busy to craft HTML pages and keep them up to date, but typing a
        few lines into a wiki takes moments. The system we use is TWiki
        (www.twiki.org), which runs on apache and uses RCS to give us a bit
        more safety with regard to changing content. It also warns if two
        people try to change the same page within a certain time period to
        flag potential edit conflicts.

        A wiki works well as an alternative to long email threads when the
        subject under discussion has relevance to the whole team. Its also a
        handy repository for feasibility documents and articles written about
        individual projects.

      Your message has been successfully submitted and would be delivered to recipients shortly.