In today's rapidly evolving technological landscape, leveraging best practices for developing Power Platform solutions can significantly enhance their quality, reliability, and performance. Adhering to these practices ensures security, compliance, and cost efficiency, while also optimising user experience and maintainability.
This blog explores on my recipe for best practices recipe for building efficient and future-proof Power Platform solutions.
Why Best Practices Matter
Quality and reliability
Implementing best practices leads to consistent results and reduces bugs and issues, ensuring high-quality and reliable solutions. Consistency reduces variability, making it easier to predict outcomes and maintain high quality.
Performance optimisation
Efficient use of resources and scalable solutions are one of the most important aspects of building any solutions, including Power Platform as well. Optimising performance ensures that the applications can handle increasing loads and provide a smooth user experience. Use of the out of the box components and low code/no code approach with minimum or no bespoke development positively contribute to the performance optimisation. On the other hand, over-customisation and over-load with custom components might significantly impact the application loading time.
Security and compliance
Protecting data and controlling access are crucial. Ensuring that solutions comply with regulations and internal policies safeguards sensitive information. Appropriate use of the security roles or components like column-level security in the model-driven apps are essential in building secure and compliant solutions.
Cost efficiency
Well-designed solutions reduce development time, lower maintenance costs, and improve usability, leading to significant cost savings. Adherence to the standards also reduces risk of potential re-work, which ensure appropriate use of the project budget.
User experience
A consistent user interface enhances usability, making it easier for users to navigate and complete their tasks efficiently. Adherence to the UX best practices also improves user adoption and satisfaction, which can also lead to increased productivity.
Future-proofing
High-quality solutions minimise the risk of issues and create a stable foundation for future development and enhancements. Future-proof solutions can seamlessly integrate with new technologies and evolving requirements, ensuring long-term viability.
Best practices in practice
I believe that knowing and applying the best practices is responsibility of the individuals like you and me, but also the project teams and the company's you're working for .
Individual level
Quality work
Always apply continuous improvement and seek feedback to enhance your skills.
Learning & mentoring
Aim to stay updated with the latest trends and best practices, and mentor others to foster a culture of learning and development.
Project level
Guidelines and reviews
Ensure that the project team establishes clear guidelines for everyone and conduct regular quality assurance reviews.
Documentation
Maintain comprehensive documentation for your solutions, including designs, dependencies, deployment procedures, and customisations. Documentation should always contain a set of pre-agreed best practices that every team member should conform with.
Company level
Quality standards
Every company that works with Power Platform solutions should promote awareness and adherence to established quality standards and best practices.
Any new starts should be make aware of the company quality standards as they might have different experiences and backgrounds.
Continuous improvement
Companies should regularly check and update their best practices to align with new developments and opportunities for learning. Also, it is crucial for any organisation to recognise the importance of granting their employees the time and opportunities to learn and develop new skills. That also leads to positive improvements of the Power Platform best practices.
Best practices
Coding and development
Low code/no code approach
Following the Microsoft's best practices for low code/no code solutions is also the key in building the Power Platform solutions. However, sometimes we need to deliver customer's requirements when a bespoke development is necessary. In situation like this, it's key document and approve any exceptions and provide full rationale of the decision.
Out-of-the-box configuration
Prioritising the OOTB configuration over custom development to minimise complexity and maintenance should also be applied.
Avoid over-automation
As a good practice, any solution should provide guidance and information to support users in their day-to-day job without excessive over-automation of their tasks.
Company-specific boundaries
Each solution design should also to take into account the company's-specific boundaries. There also consider and apply the below rules and standards.
Strategic alignment
Ensure solutions support the company's strategic goals and contribute to its mission and vision.
Data policies
Adhere to data security, privacy, and quality management policies.
Internal policies
Comply with internal IT policies, including change management and incident management.
Collaboration and project setup
Teams collaboration
Separate channels
Create separate Teams channels for internal and external collaboration, including stakeholders.
Documentation
Store all the documentation in an accessible for everyone location - that ensures access to all the necessary information and improves teams' collaboration. Make sure to create and use checklists - that includes any configuration tasks and go-live checklists.
Email integration
Utilise the unique email addresses for each Teams channel to streamline communication.
Browser profiles and other tools
Chrome profiles
Set up separate Chrome profiles for each customer project to keep the work separate and also add any necessary extensions.
XrmToolBox
Configure the XrmToolBox utility to streamline development and administration tasks. Do it at the early stages to make sure that once the development will start, you do not have to worry about basic admin tasks.
Solution creation and management
Custom publisher and components
Custom publisher
Always start from checking what publishers already exist. If there is not one that you can use, create a custom publisher specific to the organisation and match it's prefixes accordingly. Never use the default publisher - that can cause issues in the future, specially around deployments.
Minimum components
Include only the required components in solutions to keep them focused and manageable.
Solution segmentation
I always found it helpful to segment all the solutions as it helps with the deployment - it minimises the risk of any deployment issues and helps with troubleshooting. For example, separate metadata and automation components.
Metadata
Include all necessary tables, fields, views, forms, and other metadata components.
Automation
Separate solutions for workflows, plugins, Power Automate flows, and web resources.
Naming conventions and table settings
Consistency in naming
Naming conventions
Use consistent naming conventions like PascalCase, camelCase, kebab-case, and snake_case across all customized components.
I personally tend to use the lower case for the schema names. In the past, I worked alongside lots of developers and they always recommended that approach.
Column schema
Follow specific naming formats for different field types to enhance readability and maintainability.
Table settings
Ownership and relationships
Configure table ownership and relationships thoughtfully, considering cascade rules and visibility.
Field limits
Be mindful of the maximum number of fields in a Dataverse table and choose field types carefully.
Form Layout and UX
Form layout best practices
Tabs and sections
Organise information logically using tabs and sections to enhance navigation and usability.
Header
Display important information prominently in the header for easy access - include record status and the owner.
App separation and navigation
Separate apps
Create separate apps for different functional areas and choose descriptive names that reflect their purpose.
Navigation structure
Organise areas, groups, and subareas logically to facilitate user navigation.
Security and notifications
Security roles
Early development
Work on security roles in parallel with other development tasks to avoid post-go-live issues.
Comprehensive and continuous
Define and update security roles comprehensively, covering all necessary privileges and testing solutions using all roles as opposed to limiting it only the testing using an admin role.
Email notifications
Understand the problem
In nearly every project I've worked on, customers often request the implementation of email notifications. However, I don't consider this the best practice because users tend to ignore system messages, especially when there are high volumes. Email notifications are just one solution. It's important to understand the underlying problem the business is trying to solve. Is the goal to ensure prompt action from individuals or to keep someone informed of progress?
Find the solution
Depending on the actual need, discuss alternatives with your customers, such as Teams notifications or in-app alerts, to reduce email overload. In many cases, dashboards can be an effective way to track progress and highlight records that need attention.
Conclusion
Adhering to best practices in Power Platform development ensures the creation of high-quality, reliable, and efficient solutions. By focusing on performance, security, cost efficiency, and user experience, developers can build adaptable and maintainable applications that align with organizational goals and contribute to project success. Continuous improvement and collaboration at individual, project, and company levels further enhance the effectiveness of these best practices, ensuring long-term benefits and stakeholder confidence.