The Pragmatic Craftsman         :: Simplicity from complexity :: | About Me |

You are here: The Pragmatic Craftsman > Better Coder

Go to: « Craftsman's Values | Book Review: Test Driven »

Values for Excellence in Programming

I am reading Kent Beck's book Implementation Patterns (which is great so far) and he talks about three values that are consistent with excellence in programming: communication, simplicity, and flexibility.

Kent put it so well, and these values are so timeless... that I had to write about it.

Communication
"Code communicates well when a reader can understand it, modify it, or use it," Beck writes.

Programming for the computer works fine. For the computer! Not for the person modifying it. "Good things happen when I think of others while I program," Kent writes. Program for the other person!

But who cares? I just want to write the code as fast as possible and be done with it. Wrong! Beck writes, "The majority of the cost of software is incurred after the software has been first deployed." From Kent's experience, he sees that he spends much more time reading the existing code, than writing new code. And that's a fact! Is your experience different?

When you think "How would someone else see this?," you see your code from a perspective of another person.

Simplicity
Why would you make your code simple? For economic reasons, of course. "Eliminating excess complexity enables those reading, using, and modifying programs to understand them more quickly," writes Beck.

A little complexity is unavoidable. How much? It depends who your audience is. But Kent puts it perfectly, "Challenging your audience a little is fine, but too much complexity will lose them."

"Pursuing simplicity enables innovation." I can't agree more with Kent.

Flexibility
Programs should be easy to change. Simplicity can encourage flexibility. Enhancing the communicability of software also adds to flexibility.

The bottom line: create simple, understandable applications that can easily be changed.


Comments

Post a comment









Remember personal info?







Go to:
   « previous entry: Craftsman's Values
   » next entry: Book Review: Test Driven

Random Quote

Search

 

Topics

Architecture & Design :12
Better Coder :30
Books :43
Books Recommended :18
Buzzwords :5
Career :25
Craftsmanship :15
Java :15
Quotes :25
Recommended :9
Software Engineering :3
Uncategorized :33
Web Development :1

Archive

May 2008 (1)
April 2008 (2)
March 2008 (1)
February 2008 (1)
January 2008 (2)
November 2007 (1)
October 2007 (3)
August 2007 (3)

...since January 2002

Currently Reading


:: See list of books I finished reading

Info

© 2001-2008 Stanley Kubasek About me :: Contact me