I wrote last time about model-driven development and how it truly is “the one principle to rule them all” for low-code application development. The second principle, the “collaboration principle,” is really inseparable from the model idea, but is so important that it deserves its own spotlight and discussion.
This is how we state it:
Collaboration: A visual language is the clearest, most unambiguous way to transfer knowledge and ideas between business domain experts and developers.
“I say po-TAY-toe, you say po-TAH-toe.”
We all have different ways of seeing and describing the realities in front of us. When one party’s native tongue is PowerPoint and the other’s is computer code, you have communication challenges from the word go. Until both sides can agree on A) what they are seeing, whether looking at the problem or solution, and B) the language to describe it, no meaningful progress can be made.
On every team, each individual falls on a spectrum of knowledge and expertise. Some business people are tech-savvy and intuitively grasp the digital landscape and how software works. Others, not so much. Some tech people really understand markets, business concepts, and processes. Others seldom venture beyond their tech domain.
The consequences of this communications disconnect are huge. Failure of communication is one of the leading causes of IT project failure. We know from various research that the lion’s share of software budgets is spent on rework, and communication issues are a top driver of rework.
Simply put, the better the communication between business and IT, the better the solution is, whether it’s rolling out a new digital paradigm for serving customers and bringing products to market, or evolving legacy systems to address the changing needs of the business.
A “model” language everyone understands
The visual development environment of a low-code platform is designed specifically to solve communication challenges and thereby supercharge collaboration among team members, regardless of their area of expertise or technical acuity.
With a robust visual language and iconography, everyone has a clear picture, literally, of the problem or need to be solved and the tools and resources available to build a solution. Objects and shapes, diagrams and graphics, representations of dependencies and logic — the visual language is the lingua franca of the entire lifecycle, from defining the problem and exploring solutions, to building, testing, and deploying applications.
Working with a common visual language, team members can sit together in front of a screen to try out ideas, noodle with functionality, or tweak an interface. All sides can understand the nuances of the discussion and make meaningful contributions, because they see everything right in front of their eyes. There’s no need to interpret code or translate PowerPoints.
Because the learning curve for the visual language is short, members of the team soon feel empowered to contribute to aspects of application creation that fall outside their primary skill set. A business analyst or product engineer, for example, can actually rough out an application on their own, or add, subtract, or rearrange the components that make up the application. Conversely, a hardcore developer can bring fresh eyes to a business process or customer interaction scheme and offer innovative ideas to optimize efficiency or user experience to create greater business impact. And it all happens in real time, where everyone can see it. In a genuinely open, collaborative environment, no brainpower goes to waste.
The power of face-to-face interaction
So often — indeed, most of the time in traditional, linear, waterfall development methodology — the business team does whiteboarding in the business corner and the development team whiteboards in the IT corner. And never the twain do meet. This is surely a recipe for misunderstanding and counterproductive wheel-spinning.
When people share the same language, it’s much easier for them to sit down together and map their ideas on a single whiteboard or screen. They build connections with each other, read each other’s nonverbal communications, learn each other’s concerns, get caught up in each other’s enthusiasm. Most importantly, they share each other’s knowledge. And the newer or less explored a domain is, the more critical that knowledge transfer becomes.
Real-time, person-to-person, in-person communication helps everyone on the team to be maximally engaged and work smarter. These become meetings everyone wants to attend.
The collaborative low-code landscape
That’s not to say that collaboration has to happen in real time or in person to be effective. An enterprise-grade low-code platform will have synchronization and version-control built in and automated so no one is ever out-of-date, and the collaboration can continue at any hour and in any channel, whether team members are in separate offices or on separate continents. Tools for all of the management and process details, such as requirements, user stories, tasks, feedback, revision tracking, etc., are at everyone’s fingertips. Support for agile workflows is baked in. You’re always in the loop as much as you want to be.
Traditional development paradigms find domain experts talking past each other in languages the other doesn’t readily understand. But in a low-code platform, when everyone is working in the same virtual space and using a shared language, circles of communication can be completed without delay. Teams can work autonomously yet still be tightly connected to the whole.
Turning the backlog on its head
Some organizations have seen an interesting, perhaps ironic twist in the development dynamic once they master the art of collaboration in a low-code platform. Often, it’s now IT waiting on the business team, flipping the typical business-waiting-for-IT bottleneck on its head. Through the magic of collaboration, professional developers are able to iterate more quickly than ever, and the solutions are more accurate and relevant than ever. The business experts have to retrain themselves to respond more quickly to keep the solution moving along.
No translation required
When business people and developers speak in the same language — as in a visual model — no translation is required, everyone understands the problems as they are presented and the solutions as they evolve, iterations are rapid, and everyone stays invested in the process from initial idea to deployment. Collaboration enables the right solution to be built quickly and reduces rework.
Successfully implement the principle of collaboration, and you immediately move to an exponentially more effective application development process.