Check the depth of the pool

I was really inspired by Jimmy Bogards latest post. I find that taking the simplest path does not always lead a team down the most best path that towards sustainable flow (continuity).

I am a huge proponent of Agile Modeling. Agile Modeling coupled with Domain Driven Design provides a mechanism that can galvanize a team towards malleable code that enables evolutionary design.

When I coach on this practice people cringe at the thought of modeling as previous attempts have led towards heavy weight processes.  What I am proposing is before you dive into the pool at least check the depth of the water to see if you are going to crack your skull when dive in. Just because we are practicing Agile development does not mean it is OK to be careless.

Start simple

State the problem you are solving for.  The problem should be Feature driven as through the modeling exercise you should arrive at several stories.  You are solving towards the problem indicated on the feature card not towards the application or project. This provides a context that will help guide discussions.

_Check how cold the water is_
Take out several index cards and at the domain level just perform a simple Class Responsibility Collaboration (CRC) exercise.  CRC diagramming has been around for over 2 decades and is one of the most over looked practices of software development. It is simple, highly communicative and provides immediate value for the entire team.

Please DO NOT try to create your entire solution is one diagramming session. Remember you are talking towards the feature.

_Check the depth of the pool_

Just like when you prepare to dive into the pool you quickly survey the depth markers on the outside of the pool and determine where the deepest part of the pool is. You then perform a quick calculation in your head. “I am

About Joe Ocampo

My personal philosophy is simple: "Have a good strategy that sets the environment for success through the enablement of the whole. Be agile but with a mind towards pragmatism. Delegate to the best qualified individuals, but don’t be afraid to involve yourself in all parts of a job. Treat everyone with respect, humility, and with a genuine pursuit towards excellence." Respected business and technical leader with expertise in directing organization towards effective results driven outcomes. Proven ability to perform and communicate from both technical and business perspectives. Strong technical and business acumen developed through experience, education and training. Provides the ability to utilize technology, harness business intelligence and execute strategically by optimizing systems, tools and process. Passionate about building people, companies and software by containing cost, maximizing operational throughput and capitalize on revenue. Looks to leverage the strengths of individuals and grow the organization to their maximum potential by harnessing the power of their collective whole and deliver results. Co-Founder of
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

Comments are closed.