Skip to main content
Enterprise Agile Planning Image

This post is from the CollabNet VersionOne blog and has not been updated since the original publish date.

Last Updated Dec 08, 2009 — Enterprise Agile Planning expert

A Concept Falls in the Woods...

Enterprise Agile Planning
If a concept in your software is not actually represented in your code, does it really exist? As a simplistic example, if your customer or user thinks of your application in terms of "notes", but there is no code that describes anything called a "note", that concept is not represented in your code.  One significant thing an agile development team can do to make a code base more agile (supple) is to ensure that there is a high degree of correlation between how we describe and think of our software, and how it is implemented. This is another way of looking at Ubiquitous Language, a fundamental concept of Domain Driven Design.  Oversimplified, the nouns and verbs of your system need to be aligned with the nouns and verbs used to talk about the system.  But even more essential is the alignment of concepts: words may need to be translated, but it is infinitely more complex to reconcile disparate concepts. Why is this important?  For one thing, aligning the implementation with the picture in the customers' heads reduces a lot of friction in communication while developing features.  Additionally, a system that doesn't reflect the mental model that bore it will eventually prove rigid and resistant to new features to: the customer may want something that, while perfectly compatible with his idea of what the system does, is impossible to implement. When a concept changes dramatically for the sake of a feature (e.g. a major change or addition), we expect it will be a large effort.  However, if the concept doesn't change much, but the code does, it's an indication of a departure in the code from the concept. How does this happen?  Basically, the developer conceives different abstractions than the customer, and these are never resolved.  This can be caused by poor communication, insufficient design or premature generalization.  Most often, we are driven as engineers to provide value by 'translating' the customers needs into implementation instead of fostering and maintaining a ubiquitous language. Then, down the road, when the customer expects to extend or enhance a concept that's poorly represented, there are no cohesive parts in the code to target.  As a result, the developers find themselves doing "shotgun surgery" all over the application to try to get the application to behave as the customer expected. The value we provide between concept and delivery is not a one/way translation: it's a dialog.  Moreover, the apparent simplicity of this idiom should not cause us to pass it over for more complex and seemingly sophisticated solutions.

More from the Blog

View more
Jul 27, 2021

Digital.ai Becomes First to Achieve FedRAMP Moderate “In Process” Status for Enterprise Agile Planning Solution

Enterprise Agile Planning
Digital.ai, the leading AI-driven DevOps value stream delivery, and ma ...
Read More
Jun 21, 2021

How Agile can be implemented effectively across the organization

Enterprise Agile Planning
Just a few decades ago, a “disruption” was seen as an undesirable thin ...
Read More
May 31, 2021

Agile change management processes are key to delivering software faster

Enterprise Agile Planning
With its emphasis on delivery value faster, agile product management s ...
Read More
May 03, 2021

Bringing the agile planning approach to your whole business

Enterprise Agile Planning
The events of the last 12 months have demonstrated that the only sure ...
Read More
Contact Us