Collaborative Problem Solving for Developers

Rafael A. George Duval
2 min readOct 12, 2023

--

Design is not just what it looks like and feels like. Design is how it works. — Steve Jobs

Technology is crucial in today’s business world, and companies must understand their domain. Unfortunately, many technical teams focus on the technology and don’t align it with the business strategy and needs.

To tackle a complex problem, it’s helpful to break it down into smaller parts. Identify the most essential subdomains, the core domains, which need more attention and time. Using a common language to connect the analysis and code models is critical. If the model is too complex, divide it into smaller models and protect its integrity by enclosing it in a boundary. To avoid confusion, use technical and domain codes. It’s crucial to understand the context of each model when working with many of them. This process helps reveal the core subdomains which drive the development of the software.

Understanding the motivation behind solving a problem is critical to focus your efforts. Understanding the company’s objectives and goals is essential to contextualize the situation. It’s important to note that your business counterparts are experts in their respective fields, as you are in your technical domain. Yet, they may need to be more system or process design experts. They may be formulating hypotheses about what needs to be done. It would be best if you asked questions such as, “How will building an application make a difference to the business?” and “How does it fit within the company’s strategy?” to understand the technical solutions that are being suggested. You must determine if the software will give the business a competitive edge. As a software developer, your primary job is to solve problems.

Identify the main issue causing delays or preventing your business from generating profits. Find a way to solve the problem. Make the constraint your top priority, and try to resolve it. Understanding your employer’s business model is a crucial step that will pay off in the long run. Yet, the most important thing is resolving the primary constraint. This approach involves creating a problem domain model using a shared vocabulary. With a clear plan, teams can work and even sprint toward the finish line when necessary.

[¹]: Implementing Domain-Driven Design

--

--

Rafael A. George Duval
Rafael A. George Duval

Written by Rafael A. George Duval

✍🏼 Building a Solo Digital Media Company 🧪 Snippets of Text [https://snippetsoftext.substack.com/subscribe]

No responses yet