Snippets of Text

Snippets of Text

168: Cultivating Autonomy and Trust in Agile Environments

Autonomy and trust to improve Agile Teams

Snippets Press's avatar
Snippets Press
Jun 29, 2023
∙ Paid

Thank you for reading Snippets of Text. Snippets from media about tech, programming, parenting, and more. This is a preview of a post available exclusively to paying subscribers. You can get unlimited access to all articles by purchasing a subscription. 

a black bird standing on the side of a road

Off Topic: Object-Oriented Design for Easy Future Changes

Object-Oriented Design aims to arrange dependencies to allow for easy future change. The critical thing here is experimentation. We don't want to make a decision forced by the tools we are using or by the pressure that's not necessary. There should be no code in your apps for anticipatory reasons. You cannot guess the future. You will always be wrong, and when you add complexity to the present to do something you think will live in the future, it will always cost you money. Object-Oriented Design's goal is flexibility. Follow its principles when there's a business need to be resolved. 

Transparent The consequences of change should be evident in the changing code, and remote code relies upon it. The cost of any change should be proportional to the benefits the difference achieves. Existing code should be usable in new and unexpected contexts. The code itself should encourage those who change it to perpetuate these qualities.

TRUE codes are guidelines that aim to enforce specific properties of good Object-Oriented code. Is the code transparent? Transparent code exposes what can be affected and how it will be affected when we change. Reasonable code exists because it brings more benefits to the business operation than the cost of writing it. Is the code usable? Can we reuse the code in a different context? Is the code flexible enough? Is the code Exemplary? Easy to follow after reading it?

Few difficult-to-change applications are pleasant to work on. Object-oriented Design is about managing dependencies. It is a coding technique set that arranges dependencies so objects can tolerate change. The Object-Oriented Design emphasizes flexibility rather than perfection. Object-Oriented Design is not in the business of acquiring perfection but in the business of flexibility. Tolerance of the ambiguity of a class of an object is the hallmark of a confident designer.

Loosely coupled objects promote independent context between components. Loosely coupled objects need more knowledge about the environment or dependencies. The objects define the role that different implementations can play. Loosely coupled classes are not bound together. It is possible to substitute across the boundary of whoever plays the role. Manage dependencies by injection to promote composing objects in runtime. e.g., swapping the implementation to use data from a service.

Objects in the system can be composed in different ways depending on the context.  I know my API, and I see the API, so I can plug and play all the objects I interact with anywhere they're coupled. It's used system-wide context-independent; if you wrote the behavior, I only need part of the world to be a sure way to work.

[^]: Practical Object-Oriented Design: An Agile Primer Using Ruby

Share

Current Work: Cultivating Autonomy and Trust in Agile Environments

To ensure productivity and motivate programmers, it's best to choose a release cadence that works for your team, whether it's once a month or when a set of features are finished. Market what you already have instead of what's in the pipeline, and avoid relying too heavily on long-term road-maps, which often change. Don't force programmers to commit to completing certain features by a specific date, as it can negatively affect morale. Less process is usually better, as programmers are often self-managing and self-motivated. Allow each programmer to track tasks with their preferred tool and maintain a flat organizational structure to help them thrive.

Thanks for looking at the free preview of Snippets of Text. Please consider subscribing to the paid version if you find my work helpful. This way, I can spend more time developing new ideas to share with you.

Keep reading with a 7-day free trial

Subscribe to Snippets of Text to keep reading this post and get 7 days of free access to the full post archives.

Already a paid subscriber? Sign in
© 2025 Rafael George
Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture