Improving quality while learning on the job
As described in one of our earlier articles, architecture is fundamental to your application landscape.
To review this category, we look at a range of questions. Is the application landscape set up in a modular way? Are references between modules logical, and can they easily be reused and extended? Is there correct naming and separation of modules?
An important tool in performing this analysis is OutSystems’ Architecture Dashboard. This dashboard provides us an overview of all best practices violations as well as their causes and impact.
While a solid architecture can dramatically increase the maintainability of an application landscape, it’s not all that counts. We also look at minimizing the effort that needs to be spend in the drive phase of a product as well as in subsequent development phases. Are validations and clear validation messages in place, to prevent errors and speed up error recovery? Are pieces of styling and logic reused instead of duplicated?
Finally, the readability of our (low) code also impacts the transferability and thereby maintainability of a product. Does logic have the right granularity? Is complex logic annotated with clear comments?
A major benefit of low code is that the application model itself is already one form of documentation. The visual page previews, logic flows and entity-relationship diagrams immediately show the mechanics of a module.
However, the rationale behind development decisions and the interconnections between functionality are two perspectives on documentation that are not directly covered by the visual representation of code. We therefore highly value having both functional and technical documentation.
Usability is a topic that — depending on the use case — could deserve its own isolated research project. Understanding whether the application adheres to usability heuristics and validating whether the experience fits the user’s needs are two important instruments to measure the effectiveness of an application.
Unfortunately, all low code projects come with limited time and budget. Not all budgets allow for extensive user research and user testing, and not all projects have a strong focus on this topic. All projects can benefit from an expert review, in which we compare the user interface and experience against general and our specific best practices.
Low code platforms come in many sizes and varieties. One important tradeoff decision that needs to be taken when selecting a platform is that between (further increased) speed of development and control of performance. We went for OutSystems, an enterprise-grade platform that allows us to completely control how and when data is loaded and processed, and thereby enables us to optimize performance for the tasks at hand.
This does mean that we need to review the performance of our applications. Have we set up efficient queries? Are the database roundtrips minimized? Is the data model optimized?
Last but not least, security. Luckily, this is a topic that’s highly simplified when using a low code platform. User management, session management, API authentication are all supported out-of-the-box and the configuration that needs to be done is minimal.
But, even minimal configuration can go wrong. We extensively check the configuration of roles, the (additional) encryption of data, and the protection from intercepting requests. These checks give us the comfort of having safe applications and allow us to easily communicate to our clients how we, and the platform — handle security.
There you have it, a look behind the scenes of our product reviews. Combined with our other quality assurance and knowledge management initiatives, these reviews really help us to stick to high quality standards while delivering a tailor-made solution to each of our clients.