Approximity blog home
582 to 600 of 600 articles InfoSyndicate: full/short

Don't do code reviews. Do pair programming   25 Sep 04
[print link all ]

(Source: Ron Jeffries in the XP-mailinglist) Well, Don't do Code Reviews, do Pair Programming. Frankly, code reviews are /so/ much worse than pair programming that a dose of them would make me fly to pair. Let's see if we can replicate my experience.

Here's one path through a network of a million decision points:

To do code reviews, everyone has to read the code beforehand, unless you're doing a walkthrough, see below. I'd ask everyone to come together physically to the review. Then I'd ask them to report truthfully how much time they spent reviewing the code. Early on, I would report truthfully that I had spent zero or very little time, in hopes of getting others to admit the truth. When they admit the truth, I'd dismiss the meeting and reschedule it.

Then, after a while, the only alternative is a walkthrough, since no one is preparing effectively for the review. So we do walkthroughs for a while. They are intensely boring, and few people stay involved. Note in your mind the people who are present but not involved. At the end of the session, say, holding your hand up, "Who else had a real problem staying engaged with this walkthrough?" If there's honesty in the room, hands will go up. Prompting may be necessary. Then: "Any ideas?"

Surely someone will think of "doing this in smaller groups or one on one". Try it. Ask the team whether "we should empower the one-on-one folks to change the code, and under what circumstances." Don't mention that this is pair programming.

Try an experiment. You're "interested in collaborative programming". Interested parties should come to the room to help. On the screen, start writing a program. Ask for help with it, get the room to pair with you. Get stuck (no need to fake this if you are me). Someone will start telling you what to do. Don't get it (no need to fake this either). Get them to come up and do it ... grabbing the chair that is accidentally beside you, while you move over.

Note that reviews often find things. Observe how many of them are resisted by the original programmer, or are "too much trouble to fix now". Build a few BVCs relating to time spent prepping, in the meetings, number of useful suggestions (by person if you can do it without problems), number of changes made in response to suggestions, ...

Code reviews are intensely painful, in my experience, and we were trained by Freedman himself. There will be no need to set them up to be perceived that way, though it will take honesty among the group to express it. After doing enough code reviews, which take way more than half the groups' time by the way, a team who has heard of pair programming should be begging to pair. About all you have to do is make sure that no one treats the review session as nap time, and that you are /early/ in recognizing the people who think it's a waste of time. Because they're right.

Hang the code, and hang the rules   25 Sep 04
[print link all ]
Douglas Seelinger posted this in the XP-list:
 A quote from "Pirates of the Caribbean: The Curse of the Black Pearl":
 --You're pirates. Hang the code, and hang the rules. They're more like
 guidelines anyway.

Installing Oracle 10g On Debian   25 Sep 04
[print link all ]
We go through, step-by-step, the process of installing Oracle 10g Release 1 (10.1.0.2) Enterprise/Standard Edition for Linux x86 on a Debian unstable installation as of 2004-06-04. This chapter was originally written by Damien McAullay with suggestions from Giuseppe Sacco and Oliver Bankel. link

Paris Metro firm to run Wi-Fi buses   25 Sep 04
[print link all ]
(Sourc: register) Wireless Internet access will soon move beyond railways and onto the roads if RATP, the company which runs the Paris Metro and the capital’s bus services, has its way.

The organisation will next week show off a Wi-Fi enabled bus at the Paris-hosted Public Transport Exhibition 2004. It will also launch a public trial of the technology, on the number 38 bus, which runs between North and South Paris. Buses on the route have already been equipped with Wi-Fi, RATP said. Travellers will be able to connect their (suitably equipped) PDAs and notebooks with the bus’ on-board access point. However, Internet connectivity is only provided at Wi-Fi speeds when the vehicle passes within range of a fixed hotspot - at a major terminus, for example. For the rest of the journey, connectivity is maintained through a GPRS link. link

When Should We Test?   25 Sep 04
[print link all ]
Kent Beck, one of the people that invented extreme programming (XP) offers an economic model. The financial risk management community and the software development community can learn a lot from each other. Think of this article as: When should you put Risk Management into place?

Amongst other things this article tells you when best to have children :-). [groups.yahoo.com/group/extremeprogramming/files/when%20should%20we%20test.pdf]

The Simplest Thing that Could Possibly Work   25 Sep 04
[print link all ]
(Source Ward Cunningham, Bill Venners) Ward Cunningham talks with Bill Venners about complexity that empowers versus complexity that creates difficulty, simplicity as the shortest path to a solution, and coding the simplest thing when you’re stuck.

In the software community, Ward Cunningham has a reputation for being a font of ideas. He invented CRC Cards, a technique that facilitates object discovery. He invented the worlds first wiki, a web-based collaborative writing tool, to facilitate the discovery and documentation of software patterns. Most recently, Cunningham is credited with being the primary inspiration behind many of the techniques of Extreme Programming. link

Agile Processes Summarized   25 Sep 04
[print link all ]
(Source: Ron Jeffries and Alistair Cockburn, XP-ML)

I think that to get a group to be agile, you have to get people to do something like one of these things:

  1. Go in that room there and do all 12 XP practices until you actually do know better. (XP)
  2. Go in that room there, don’t let anyone screw with you, work on whatever you think you can get done for a month. Keep doing that until everyone is happy. (Scrum)
  3. Go in that room there, in peace love and understanding, ship software every month (*), and think about it. (Crystal Clear.)

There is a telling sameness to all of these, is there not? —> This is a wonderful summary of a summary! There’s not much to be removed (see Saint-Exupery, below). In Italian, the expresso of an espresso is called a "ristretto" (any Italians online?). This is the agile ristretto. It belongs on a Blog or something. "La perfection est atteinte non quand il ne reste rien a ajouter, mais quand il ne reste rien a enlever." (Saint-Exupery)

Increasing Software Development Productivity   25 Sep 04
[print link all ]
(Source: Mary Poppendieck) Income growth of workers in any economic sector is directly related to productivity growth. In the past, the productivity of the technology sector grew not because technical workers were becoming more productive, but because technical capability was growing so fast. Unfortunately for the incomes of software development professionals, this is no longer the case. Future income growth will be related to our ability to increase software development productivity.

How can software development productivity be increased? Through the same approaches used in operations: a focus on customer value, a short, effective supply chain, healthy discipline, and innovation. Mary will discuss techniques that businesses have used for decades to jump-start an increase productivity, and show how they can be used to increase software development productivity. pdf

Ender's Game and Software Development   25 Sep 04
[print link all ]
Very interesting entry by /\ndy Hunt. Ender is in reference to a novel by Orson Scott Card called ‘Ender’s Game’. Its part of a series of three books, all of which are well worth reading. www.toolshed.com/blog

Communication is the Transfer of Emotion   25 Sep 04
[print link all ]
Seth Godin has put together a nice pdf about how todo decent powerpoint slides. By the way, his new book "Free Prize" is out, too.

I always enjoy reading his weblog.

[ANN] DataVision 0.8.2 released; upgrades to JRuby 0.7.0   25 Sep 04
[print link all ]
DataVision 0.8.2 is now available from SourceForge at sourceforge.net/project/showfiles.php?group_id=33343

DataVision is an Open Source reporting tool similar to Crystal Reports. Reports can be designed using a drag-and-drop GUI. They may be run, viewed, and printed from the application or exported as HTML, XML, PDF, LaTeX2e, DocBook, or tab- or comma-delimited text files. The output files produced by LaTeX2e and DocBook can in turn be used to produce PDF, text, HTML, PostScript, and more.

DataVision is written in Java and uses JRuby to add Ruby scripting.

Where is the snow?   25 Sep 04
[print link all ]

Summertime .. so all we do is to ski-roller. High time for the snow to come back and cool it down a bit. I found that pic a long time ago on I have forgotten what website.

How to Construct Bad Charts and Graphs   25 Sep 04
[print link all ]
(Source: Gary Klass) A short but good article in the style of Edward Tufte, the big guru when it comes to displaying data in a meaningful way. Fundamental rule of efficient graphical design: minimize the ratio of ink-to-data The three fundamental elements of bad graphical display are these: Data Ambiguity, Data Distortion, and Data Distraction. link Make sure you check out these classic bibles about envisioning information by Tufte: Envisioning Information and The Visual Display of Quantitative Information

New Russian bestseller :-)   25 Sep 04
[print link all ]
A big thanks to Leftenant Berezka for the pics :-).

Been coding hard now on SW and CFaR. I would really need some good vodka now before getting up early tomorrow morning to catch the train.

Hope you all had a good weekend, -A.

This vodka bottle reminds me that I am way behind on Futurometer. We will kick ass there soonish!

How to bypass the version-checker on Linux for Oracle 10g   25 Sep 04
[print link all ]
I found this most useful post by Jonathan Gennick on FreeLists
 JR> Yes, those are the "certified" Linux releases, but Oracle versions prior to
 JR> 10g could be installed on other distros.  The screenshots seem to indicate
 JR> that the Installer now checks which Linux you're running, which leads me
 JR> back to the original question.

 I haven't tried it myself, but Wim Coekaerts once mentioned
 an "-ignoreSysPrereqs" installer option that would get you
 past that Linux distribution check.

Or suggested by DJ: edit the oraparam.ini file and edit the supported versions section.

Or: run

 runInstaller --help

and actually read it :-)

The Real Point of Oracle10g Manageability   25 Sep 04
[print link all ]
Curt Monash has written a very good article about Oracle 10g. The article argues that the real focus is on manageability, which makes perfect strategic sense. TCO (Total Cost of Ownership) is king. And with hardware getting cheaper, software getting cheaper, and custom programming being outsourced to cheap countries, administrative costs are an ever bigger part of TCO. Whats more, manageability is historically a major competitive challenge for Oracle; 10g is designed to neutralize that issue.

Werner's Oracle - Linux page   25 Sep 04
[print link all ]
Jolly good Oracle & Linux page by Werner Puschitz. There are several instructions on installing Oracle 9 and 10 on a range of different Linux versions.

Open Beagle, V. 2.1.4   25 Sep 04
[print link all ]
BEAGLE=Beagle Engine is an Advanced Genetic Learning Environment Open BEAGLE, a versatile EC framework

Welcome to the Open BEAGLE W3 page. Open BEAGLE is a C++ Evolutionary Computation (EC) framework. It provides an high-level software environment to do any kind of EC, with support for tree-based genetic programming, bit string and real-valued genetic algorithms, and evolution strategy.

The Open BEAGLE architecture follows strong principles of object oriented programming, where abstractions are represented by loosely coupled objects and where it is common and easy to reuse code. Open BEAGLE is designed to provide an EC environment that is generic, user friendly, portable, efficient, robust, elegant and free.

The Open BEAGLE code is compliant with the C++ ANSI/ISO 3 standard. It requires the Standard Template Library (STL). No specific call in the core libraries are made to the operating system nor to the hardware.

link

Make sure you also check out distributed BEAGLE. Distributed BEAGLE was created to distribute the evolutionary process using the EC framework Open BEAGLE. Its key features are robustness, fault tolerance, adaptability for heterogeneous networks, and transparency for the user. Distributed BEAGLE uses the Master-Slave model to distribute data over the network.

When doing an Open BEAGLE EC application, just 3 little modifications to your code are needed to enable Distributed BEAGLE. There's two types of program that can be executed by using different configuration files. The first one evolves the population over one generation by applying Darwinian selection and genetic operators. It usually runs on the same computer as the master. The second one evaluates the individuals's fitness. The slaves can be eventually used as screen savers.

The master is called DAGS for DAGS is an Agile Grid Scheduler. It is not specific for a given evolutionary algorithm. DAGS uses dynamic adjustment of the size of sets of individuals that are sent to the slaves based on the recent history of the evaluation clients. If an evaluation client lags to return results, the data is redistributed to another evaluation client. There's a database in the master that insures data persistency. link

Visualising wikis   25 Sep 04
[print link all ]
been surfing to get good ideas about visualising knowledge.

The pics shows "history flow" from IBM research. Tons of other good links can be found in the c2-wiki.

Visualising is really interesting and up for a major change. I am totally sick of all these boring search-engines out there and yeah, grep -r is still my best friend. Another reason why I despise MS-Word, he, he and use LaTeX. It took me years to fall in love with that programming-language, which happens to be a word-processor, too.

 

Powered by Rublog