Mob Programming for Low-Code and No-Code Development

[article]
Summary:
In low-code and no-code development, as the names suggest, developers do less actual coding—they create applications through GUIs and configuration instead of traditional programming. But mob programming is still a useful practice, because the entire team can clarify requirements, discuss development and test strategies, and implement the best ideas. Everyone gets to learn and contribute.

Releasing software quickly is a requirement. Development teams need to implement features faster and faster, and testing must also be fast to make that happen.

Consequently, low-code and no-code platforms are growing. Less time is spent programming, which makes them attractive to teams hoping to speed up application development. In fact, Gartner predicts that by 2020, at least half of all new business applications will be created with high-productivity toolsets, such as low-code and no-code application development platforms.

In low-code development, developers do less actual coding—they create applications through graphical user interfaces and configuration instead of traditional programming. No-code development, as the name suggests, lets anyone create applications without having to write a single line of code. These platforms have a visual development approach that simplifies the programming process, accelerating the software release.

Despite working with little or no code, developers still must ensure that all requirements are fulfilled, and testers must ensure comprehensive testing is done and there will be no surprise in production. Testing also needs to be done rapidly so that the overall goal of an accelerated release is met. Fast-tracked, end-to-end testing with more focus on automation helps deliver high-performance and secure applications with excellent user experience in no- or low-code platforms.

However, from my own project management experience, the idea of low-code or no-code implementation can scare developers, just like when automated testing started replacing functional regression testing.

My personal understanding is that the team needs to be highly motivated and flexible enough to support these faster development and testing activities in order to execute flawless, quality delivery. If the developers are not fully utilized due to low-code development and the functional testers are also not fully utilized due to more automated testing, it’s understandable that they would become nervous or bored, so it’s essential to make them useful in some other area.

That’s where mob programming comes into the picture. Mob programming is when everyone, developers and testers, works as a single team on the same thing on one computer. It’s similar to pair programming, except with the entire team involved. This approach results in shared learning because everyone is paying attention to the same thing and collaborating, and it removes boundaries because any team member can play any role.

So, how does mob programming apply in a no-code or low-code environment?

Basically, a lead developer can guide junior developers and the testing team by discussing the requirements for a new feature. This way, everyone knows the requirements, everyone is discussing all their ideas, and the best idea can get implemented. When it comes time to develop, because you’re in a low- or no-code environment, anyone should be able to build what’s needed because there’s little programming involved and everyone is clear on the requirements.

The same process happens for testing activities: A lead tester will guide, all other testers and developers will share their thoughts for different testing scenarios, and everything can be tested quickly and efficiently. For automated regression testing and nonfunctional testing, another test lead will guide all other members so everyone can learn and do the work.

Mobbing in this way gets developers and testers to collaborate, so each member of the team will know both the development and testing processes. Developers teach testers about coding and testers educate the developers on functional, regression, and nonfunctional testing, resulting in speedy delivery with fewer people.

It’s common for there to be some resistance to mob programming and mob testing stemming from questions about resource utilization. The reason is that only one person at a time is effectively working, and all others are just discussing. This may not seem like a great situation to managers or those on the business side.

However, you are making the team available to get the best coding, quickest testing, and crowdsourced ideas, and everyone is aware of what’s going on and is learning new things. And when the development is happening, requirements are getting verified while the testing team is available, resulting in less time spent testing.

Mob programming even sometimes reduces unnecessary efforts by finding an issue early before it gets to testing, avoiding duplication of the same knowledge transfer by everyone learning at the same time, and planning the most efficient test scenarios up front. There is no turnaround time on testing, and defects are raised and resolved immediately in front of everyone.

Mob programming emphasizes one item at a time and removes duplicate efforts. Both development and comprehensive testing is done by all the team members, resulting in each person understanding the ins and outs of the application and its process flow. Consequently, any position or role can be replaced easily, as anyone should be able to fill in and get the job done. This also breaks the boundaries between development and testing for fast-paced, quality delivery.

Maybe most importantly, with mob programming, team members will be inspired due to learning new things and getting new chances to contribute, thanks to direct, hands-on experience and short brainstorming sessions on different ideas. The end-users are pleased, too, because the finished application should have high quality due to getting input from everyone at every step of the project lifecycle.

Mob programming brings out the best in all team members, resulting in faster, better delivery and enhanced customer experience. Using low- or no-code practices helps lower the barrier between developers and testers, giving everyone an equal opportunity to learn and contribute.

About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.