InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Resolutions: Integrity of Code and Conduct

Posted by Deborah Hartmann Preuss on Jan 01, 2007

Sections
Process & Practices,
Development
Topics
Agile ,
Collaboration ,
Artifacts & Tools ,
Leadership
Tags
Antipatterns ,
Collaborative Technologies ,
Criticism
At the start of each New Year, some of us stop to look backward, and actively resolve to move forward wiser than before. Several notable writers in the Agile software community have taken a some time for reflection and introspection, and shared with us their ideas for working smarter in 2007.  Their recommendations: take a hard look at at your business objectives; equip your teams properly to maximize agility; and above all - behave yourselves!

Resolutions for Software Organizations:

In December's AgileJournal, editor Liz Barnett noted that while "management is focused on business value, governance, and software delivery ... Agile advocates still focus on the developer community," and suggested that success with Agile approaches in 2007 will require continued focus on these aspects:
  • Consider best of breed Agile practice adoption as an option, not a rebellion.
  • Figure out your Agile governance solution
  • Incorporate Agile processes on enterprise software projects
  • Address deployment and not just development
  • Measure success in business terms
Does this last item sounds obvious?  It can be surprising how many teams are driven by new technologies or obsolete project milestones, ignoring the needs of the business.  If a software organization adds only a single objective in 2007, Barnett suggests
"Delivering value to the business is the imperative for every software development organization."
A Technologists' Resolution:

In the same edition of AgileJournal, Kirk Knoernschild said that "'teams embracing agility typically emphasize process and practices and ignore the technological aspects necessary to increase agility."  Poorly crafted code, a rigid infrastructure, or complex tools and frameworks prevent teams from realizing the full advantage of agile practices.  He reminded readers that Agile's "thinking tools" are not enough, teams must also craft code, develop a supporting infrastructure, and adopt tools and frameworks that encourage and embrace change. For 2007, he resolves to focus on technologies that support the agile practices that, in turn, support a team's ability to remain agile:
  • Agile Code: The ability to accommodate changing requirements is directly related to the flexibility and malleability of the code base. Agile code is: loosely coupled, highly cohesive,  fully tested, expressive, rarely duplicated
  • Agile Infrastructure: Incremental software delivery is a core tenet of agile development. In addition to agile practices such as continuous integration, the ability to deliver functional software frequently and incrementally is directly related to a team's infrastructure components, including: shared environments, source repository, build server, local sandbox, flexible hardware platform.
  • Agile Tools and Frameworks: A team's ability to remain agile is directly related to their toolset's ability to be: testable, non-invasive, easy to use, flexible, lightweight.
A Resolution for Leaders and Evangelists:

In Dr. Dobbs' Journal, Scott Ambler asked "Is the agile community shooting itself in its collective foot?" as he took on the well-work subject of electronic etiquette.  Human nature being what it is, members of lists and forums still find it necessary to handle troublesome or annoying posters like: The True Believer, The Mind Reader, The Hypocritical Preacher, The Spammer, The List Dictator, The Unknown Poster, The Indifferent Specialist, The Backstabber, and The Blamer.  Before we point fingers, we should consider whether there's really a "they" in this us-and-them list...
As Walt Kelly's cartoon character Pogo aptly said, "We have met the enemy and he is us."  If the agile movement is to continue to grow we need to help existing traditionalists understand and learn agile philosophies and techniques.  This isn't going to happen if we continue to embarrass ourselves the first time that they interact with us.
In 2007, Ambler suggested that a critical success factor will be our ability to attract traditionalists to our way of thinking.  To this end, he has invited readers to make the following New Year's resolution:
"This year I will improve the tone of my conversation on discussion lists and in other public forums, and when I see others struggle to do the same I will do whatever is appropriate to respectfully help them to improve their own tone."
  • This article is part of a featured topic series on Agile

Related Sponsor

In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!

No comments

Watch Thread Reply

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.