Industrial XP -> Coding Standard

Coding Standard

Follow a standard across the team, so code can be read easily and consistently

Coding standards keep the team from getting distracted by useless trifles
-- Ken Auer in Extreme Programming Applied

When programmers write code in different dialects, they make it easy to affix blame when a certain section of the system fails. They also make it hard for a random programmer on the team to be able to dive into the code and fix what needs fixing. Extreme Programming shifts the focus from affixing blame to accepting responsibility. The entire team is responsible for the system, and it is everyone's job to ensure that problems are fixed quickly and efficiently.

When all team members write code in the same dialect, no part of the system would look alien, thus enabling programmers to practice collective ownership. They would then be comfortable to fix problems in code written by other programmers on the team.

Coding Standard is best-enforced and complemented by pairing. It is not just important to have a coding standard, its also important to have a good one. A good coding standard will:

  • clarify rather than obfuscate
  • promote intention-revealing code
  • allow programs to look as close to natural language as possible
  • incorporate coding best practices

For Coding Standards to be treated seriously, they must not be long. The photograph above shows a poster that contains the entire coding standard formulated by a team. Such a poster then becomes an information radiator that should be easily accessible in the open workspace.

Smart IDEs these days allow you to specify preferences that support your coding standard and export it. You can check in these preferences into your project repository, to make it available to all developers on the project.

Further Reading

Coding Conventions, on c2.com

Industrial XP logo
 
Values & Practices
Continuous Risk Management
Project Chartering
Project Community
Test-Driven Management
Sustainable Pace
Planning Game
Storytelling
Storytesting
Frequent Releases
Small Teams
Sitting Together
Continuous Learning
Iterative Usability
Evolutionary Design
Refactoring
Domain-Driven Design
Pairing
Continuous Integration
Collective Ownership
Coding Standard
Retrospectives



 
Send mail to webmaster@industriallogic.com with questions or comments about this web site.
Copyright 2004 Industrial Logic, Inc. All Rights Reserved.