Still Coding or Just Prompting?
The landscape of software engineering is evolving, emphasizing the interplay between technology and the human element. Predictions about the future...
Communication gaps between software teams and stakeholders remain a fundamental challenge in many organizations, often resulting in misaligned expectations and suboptimal software outcomes. Traditional handoffs - from business analysis to development and testing - can lead to misunderstood requirements and accumulated assumptions, leaving teams disconnected from the business goals. Collaborative modeling practices, such as visual workshops with all relevant parties present, aim to bridge this divide by fostering genuine shared understanding and actively breaking down silos.
In this episode I talk to Gien Verschatse and Kenny Baas-Schwegler about the challenges of collaborative software design, especially the disconnect between development teams and business stakeholders. Both Gien and Kenny shared stories of communication gaps, assumptions in requirements and the constant struggle to build shared understanding. They gave practical tips for breaking down silos and making modeling sessions actually work - not just as visual exercises, but as real opportunities for teams to learn together.
"We try to make it visual because then you focus the conversation on what's actually there, what's in front of you." - Gien Verschatse
Gien Verschatse is an experienced consultant and software engineer that specialises in domain modelling and software architecture. She has experience in many domains such as the biotech industry, where she specialised in DNA building lab services. She's fluent in both object-oriented and functional programming, mostly in .NET. As a Domain-Driven Design practitioner, she always looks to bridge the gaps between experts, users, and engineers.As a side interest, she's researching the science of decision-making strategies, to help teams improve how they make technical and organisational decisions. She shares her knowledge by speaking at international conferences.And when she is not doing all that, you'll find her on the sofa, reading a book and sipping coffee.
Kenny Baas believes in collaborative software design where ‘every voice shapes the software’. Leveraging a domain-driven design approach with Team Topologies, he facilitates clearer communication between stakeholders and software creators by collaborative modelling and deep democracy, decoding complexities, resolving conflicts and ensuring software remains agile to business demands.As an independent software consultant and trainer, he is specialised in technical leadership, software architecture, and sociotechnical system design. He works with organisations and teams to design and build sustainable and resilient software architecture.
The podcast "Software Testing Unleashed" explores the software development industry, sharing valuable knowledge and expertise. Hosted by Richie, an experienced software quality coach, with guests Gene Face, a software engineer and domain modeling expert, and Kenny Baswaggler, an independent software consultant, this podcast offers a wealth of insights. In this episode, we will discuss the importance of developing a quality mindset, embracing collaborative modeling, and improving effective communication skills in software design.
Many developers and creators face the temptation to jump straight into coding as soon as they get a new task or feature request. This rush often comes with an incomplete understanding of the requirements, assumptions about the business needs, or missing context about potential challenges. The result? Software that doesn’t quite meet expectations, leading to costly rework and unhappy stakeholders.
In software testing and development, delivering misunderstood features is a common pitfall. When engineers lack domain knowledge or fail to question unclear requirements, the code reflects those misunderstandings. This disconnect causes frustration on all sides—testers struggle to verify functionality, users feel their needs are unmet, and developers find themselves fixing issues that could have been avoided.
Stop coding, start asking questions becomes more than just advice; it turns into a critical skill for quality-minded professionals. Asking the right questions early helps uncover hidden assumptions and clarifies ambiguous points before a single line of code is written. Questions like:
These inquiries create a shared understanding among engineers, testers, analysts, and stakeholders. They reduce costly misunderstandings and pave the way for better software design from the start.
Collaborative modeling stands apart from traditional software design approaches by emphasizing active participation from both technical and non-technical stakeholders. Instead of developers working in isolation to create designs that are later handed off, collaborative modeling brings everyone together to co-create a shared representation of the system.
This practice is rooted in domain modeling, where software engineers and consultants work closely with business experts to capture the true complexity of the problem space. The process is visual, interactive, and often involves workshops using simple yet powerful tools like event storming, domain storytelling, or user story mapping.
Gene Face, a software engineer and domain modeling expert featured in the podcast, highlights that this approach creates a dual learning environment. Stakeholders learn technical possibilities while engineers gain domain insights — aligning people and code toward successful project outcomes.
Various visual aids play a crucial role in enhancing collaborative modeling sessions. These tools facilitate better communication and understanding among stakeholders.
Visual tools create a shared language among team members, making it easier to discuss ideas and requirements. They simplify complex concepts, making them more accessible to all participants.
By leveraging these visual aids in collaborative modeling sessions, teams can foster better collaboration, ensure alignment on project goals, and ultimately lead to more successful software development outcomes.
Agile teams often face challenges aligning their priorities due to varying perspectives and goals. Engineers may focus on technical aspects, while stakeholders prioritize business needs. Bridging this gap requires open communication and a shared understanding of project objectives.
Building trust between stakeholders and engineers is essential for successful collaboration. Without trust, teams may resist sharing information or working together effectively. Establishing trust involves transparency, active listening, and demonstrating competence in respective roles.
Miscommunication can hinder collaborative efforts. Engineers may struggle to convey technical constraints to non-technical stakeholders, leading to misunderstandings. Overcoming this challenge requires clear and concise communication, using visual aids to illustrate complex concepts effectively.
Some team members may resist adopting collaborative design practices due to fear of change or unfamiliarity with new methodologies. Encouraging a culture of continuous learning and improvement can help overcome resistance and foster a more collaborative environment.
By addressing these challenges head-on, teams can pave the way for effective collaboration, leading to improved project outcomes and stakeholder satisfaction.
Collaboration is at the heart of agile practices like Scrum, where it drives sprint planning and review meetings. These events are not just procedural checkpoints but opportunities to engage all stakeholders in meaningful dialogue. During sprint planning, collaboration ensures that the team aligns on priorities and understands the business context behind each user story. Review meetings then provide a platform for feedback, enabling teams to inspect their work and adapt based on real-world insights.
Creating a safe space within teams encourages experimentation and learning. When team members feel secure in sharing ideas without fear of blame, innovation flourishes. Mistakes are reframed as valuable lessons rather than failures, fostering an environment where continuous improvement is natural. This mindset supports iterative development cycles, where collaboration fuels rapid feedback loops between design, implementation, and evaluation.
Key elements for nurturing this culture include:
Agile’s emphasis on continuous conversation replaces rigid documentation with dynamic interactions that adapt as new information emerges. Collaboration becomes the engine that drives both quality and responsiveness in software development projects.
Stop coding, start asking questions captures a fundamental shift in how you approach software development. The key to success lies not just in writing code but in engaging deeply with the problem through:
These practices build a foundation for quality software design collaboration. They transform vague ideas into clear, actionable insights and prevent rework by aligning everyone early on.
You can begin this transformation today. Organize a collaborative modeling session with your team or simply adopt a curious mindset during requirements discussions. Embrace continuous conversation and keep refining your approach.
Software projects thrive when curiosity leads the way—so stop coding first and start asking questions.
The landscape of software engineering is evolving, emphasizing the interplay between technology and the human element. Predictions about the future...
In today's software development, integrating security from the beginning is crucial. Many developers often neglect security until it's too late,...
When thinking of software quality we have to see the importance of a quality-conscious mindset. In the rapidly changing technology landscape,...