BLOGS / Bringing Low Code Development Into Existing Software Development Practices

Bringing Low Code Development Into Existing Software Development Practices

Written By:

Sam Linehan

With the rapid growth in interest and adoption of low code technologies, such as Microsoft’s Power Apps and the Power Platform, it’s only natural to consider if what is deemed as "traditional coding" will start to fade. The short answer is no, however as low code technologies gain traction as part of the technical stacks of software development teams, it will be crucial for these teams to understand how low code and traditional coding will coexist. As we know in software development, there’s rarely a one solution for all approach, however what I’ll share in this blog is what our team at TribalScale has learned and implemented to bring low code development into traditional software development practices. While low code platforms have the same goal in mind, each platform has its own feature set that influences how it is selected to be used by a technical team. In this blog post I'll solely be focusing on Microsoft’s Power Apps, let's jump into it! ⤵️

AI generated image created with Bing's Image Creator

AI generated image created with Bing's Image Creator

Power Apps Capabilities To Note

In TribalScale’s initial assessment of Power Apps, we noticed that the platform is more robust than we had previously assumed. We had assumptions that Power Apps was solely for low code developers, had little extensibility for traditional developers for more customization, and was not capable of supporting larger, more complex solutions. Some of the platform’s capabilities that caught our attention as promising were:

  • Component libraries: Being able to build reusable components helps create a unified interface and reduces development time, which falls in line with traditional coding best practices.

  • Power Apps Component Framework (PCF): Provides the ability for traditional developers to use traditional coding tools (JavaScript, HTML, CSS, React) to create more customized interfaces that Power Apps doesn’t provide out of the box.

  • Robust integrations with Microsoft Azure: Through the use of a variety of Power Apps connectors, we can develop on the Power Apps platform knowing that we can make use of backend and middleware services as part of a larger, more complex solution.

With these learned capabilities, our team felt we had the confidence to approach building applications using both the Power Apps platform as-is, while not having to compromise traditional software development principles and best practices.

How Power Apps Fit With Our Development Cadences

In addition to assessing the technical capabilities that Power Apps provides, allowing for both low code and traditional software development, our team at TribalScale needed to know how the platform was going to fit into our existing software development cadences. The following is a list of some of our most important cadences and how the Power Apps platform either enabled us to follow or provided us with difficulty:

Pair Programming

In short, pair programming is an approach to software development where two developers work on the same problem and both have the ability to make code edits at the same time, in a controlled and civilized manner of course. Unfortunately, the edit mode in Power Apps does not provide the ability for multiple people to make changes at the same time which makes following pair programming difficult. However, if your Power App is making use of PCF, developers can code in a pair programming environment. By no means do I advocate using PCF for the sole purpose of being able to follow pair programming but if your solutions use PCF (and in our case they do) it can allow for pair programming to be followed.

Test Driven Development (TDD)

TDD is an approach to software development where a developer writes their test cases first before writing their implementation code, which results in a better understanding of functional requirements, writing only enough code to make a test pass, and a suite of test cases to aid in preventing code regressions. Power Apps does have a testing framework that allows for automated UI tests to be created, however it was not as robust as we had hoped for. Similar to pair programming above, if your solution uses PCF components that results in traditional coding to take place, test driven development can easily be applied.

Code Reviews

Code reviews allow for team members to review another’s implementation to make sure that it achieves the agreed upon functional requirements and the implementation follows set coding patterns by the team. Even though Power Apps is low code and the “code” that is generated is difficult to read, Microsoft does provide a code review tool that can assess an app against a checklist of best practices.

Continuous Integration and Continuous Deployment (CI & CD)

If using Azure DevOps, pipelines can be created that automatically bundle a Power App into a solution and deploy it to a specified environment while allowing for additional best practices to be followed such as application versioning and using environment variables.

Multiple Environments

Having multiple environments with each having its own purpose enables a more iterative software development cycle, isolated testing, and stable behavior for end users. The Power Apps platform allows for multiple environments where applications can be promoted when deemed ready by the team.

Challenges With Power Apps

Although we have found plenty of positive areas where low code development and traditional development can coexist, there are a number of drawbacks that our team has had to work with:

Power Apps edit mode—As mentioned above in the pair programming assessment, edit mode in Power Apps only allows for one person to be making changes within an app at a time. If you have a team of multiple developers working on the same app, that will cause wait times to integrate changes and slow down the development process. We have also found that the edit mode and the process behind saving changes is sometimes flakey, meaning that work can be lost or hard to recover which only adds to a slower development process.

Assessing Power Apps out of the box versus PCF—While it is great knowing that there is flexibility to build Power Apps features with traditional coding methods, teams will need to spend time assessing what can be built out of the box with Power Apps components or if they will need to create a PCF component.

Final Thoughts

In conclusion, there’s a lot to be excited about with low code platforms becoming a part of the technical stacks of software development teams. The technical capabilities of certain low code solutions can coexist with existing best practices of traditional coding and fit into some of the software development cadences we follow here at TribalScale and shared by many other development teams. However, when considering low code platforms it's critically important to note that these platforms aren’t silver bullet solutions to build robust applications and services.

TribalScale is a digital transformation expert with in-house Microsoft Power Platform developers. With Microsoft Power Apps, we empower businesses to streamline their processes, create custom solutions, and enhance user experiences without the need for extensive coding. Through our expertise in low-code development, we deliver scalable and cost-effective solutions that drive innovation and digital transformation for organizations of all sizes.

Looking to unlock the full potential of Microsoft Power Apps? Click here to chat with one of our experts.

Logo

Sam is an Engineering Manager at TribalScale who enjoys leading a group of developers, helping teams operate with more agility, and occasionally getting his hands dirty with code. Outside of work, Sam loves cooking for his family and close friends and also exploring the many great neighbourhoods of Chicago.