Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Vaughn Vernon: Challenges in Software Development of Today

Vaughn Vernon: Challenges in Software Development of Today

This item in japanese

Projects and development teams are struggling with poorly designed systems, with many developers dedicated to patching systems just to keep them alive. Largely the software development culture is broken, Vaughn Vernon claimed in his presentation at the Domain-Driven Design Europe conference earlier this year, talking about serious problems he has encountered but also about solutions to these problems.

One of the most insidious problems in Vernon’s experience is when an IT department is considered a cost centre and the business views software development as something negative, a drain on the organization that merely cost them money. Such a business doesn’t consider software a game changer, merely something they have to tolerate.

Letting business people spend days writing specifications into a collaboration tool is for Vernon a huge waste of time. Most of the developers don’t use these specifications because they don’t contain the information they need and just leads to poor collaboration. Instead business people and developers should have conversations and in much shorter time come up with a solid design backing the business needs.

A technique Vernon call Task board shuffle is where software design is entirely done by moving a sticky note from the To Do column over to the In Progress column. This lead to a random design each time a note a is moved, leading to a system lacking most of the thoughtful design needed. Too many people think that no design is a form of code or developer economy, but Vernon claims that this is bad economy just leading to bad design.

Vernon firmly believes that to overcome the problems he describes we have to raise the level of developer maturity in teams. To improve the business’ view of a software development department as someone interested in the business we have to help the business to achieve greatness by creating solutions that promote the business further. One way of doing this is to start collaborating with the business. Form teams and create ubiquitous languages for the contexts and models you are working with.

One tool to help in domain modelling is Event storming which Vernon describes as an extremely useful and important tool for finding the bounded contexts. Using a few hours, it’s possible to form a ubiquitous language and an understanding of the context boundaries in a domain. The artefacts coming out of an event storming sessions can also be used as estimation units in a metrics based estimation process that will come close to the real numbers.

Microservices is a hot topic of today that Vernon notes is similar to a Domain-driven design (DDD) bounded context. Deploying microservices at a single component level is for Vernon too small, instead he thinks that microservices created in the size of bounded contexts is a more powerful approach.

Vernon describes the Actor model as an essential tool that we should start to use, maybe even by the majority of developers. The number of cores and amount of memory in servers is increasing and the Actor model is great way of leverage these new resources. His recommendation is to use the Actor model to build microservices around single bounded contexts. He thinks the Actor model often significantly can simplify system and calls such a design a simplicity stack, in contrast to enterprise software of today which often resembles a complexity stack with so many mechanisms involved that it takes months even for a senior developer to fully understand.

Vernon concludes by stating that many teams are struggling with poorly designed systems but that an increased developer maturity together with the use of DDD can make a difference.

Next year’s Domain-Driven Design Europe conference is scheduled for end of January 2017.

Rate this Article