InfoQ

News

Resolutions: Integrity of Code and Conduct

Posted by Deborah Hartmann on Jan 01, 2007 03:43 PM

Community
Agile
Topics
Collaboration ,
Leadership ,
Artifacts & Tools
Tags
Collaborative Technologies ,
Criticism ,
Antipatterns
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."

Related Sponsor

VersionOne is recognized by Agile practitioners as the leader in Agile project management tools. Companies such as Adobe, BBC, CNN, Dow, HP, IBM, Sony and 3M have turned to VersionOne to help deliver greater value to their customers.

No comments

Watch Thread Reply

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.