Andre Margono is based in Melbourne, Australia; he is a System Architect & Microsoft MVP (Business Applications)
In Power Chat I m interviewing Power App experts and share their practices and suggestions with community. These ideas can lead a project to success. Here are questions I asked Andre and his replies.
For the success of a D365 project, what are a few things (practices or steps) you do when kick-starting a new project?
- Know the scope very well, what we are trying to achieve and what the client actually needs
- Identify the risks upfront and prepare the mitigation plans
- Identify and work closely with the SMEs
- Have the right team with the right attitude
What delivery methodology you have found useful in projects?
It depends. I’ve worked in projects that used Waterfall, Agile and anything in between. Depending on the work style of the project team and the client that we are working with
What is one thing that can make a project successful or vice versa?
Teamwork and collective knowledge of the team
Give me two (or more) tips that will enhance the performance of my applications?
- Do load testing
- Do peer review
Tell us two things (or more) which will improve the quality of deliveries?
- Peer review
- Good QA team
In the context of D365 implementation, what does architecture means to you?
Understanding the business & technology needs, from there design the solution that is cost effective, scalable, extensible and robust. Plus setting up design principle of the solution.
What few things you consider when you are architecting or designing a solution?
- Current landscape of applications within the ecosystem
- Understanding the volume of the transaction/process
- What is the company’s roadmap (e.g. understanding their strategic IT direction)
- What system(s) that we need to integrate with and how to connect with them
- Understanding the data model
Tell us anything that you consider is/are the best practice(s) and everyone should follow?
- IMHO, there is no straight right/wrong for a solution/design
- Listen to the detail and ask the right questions.
- Put ourselves in the shoes of the end users.
- Always think on scalability, often I found some design is designed for a very specific issue/requirement, but not considering the bigger picture of the purpose of the functionality.
Share a tip of yours to boost productivity as a dev, consultant or architect?
- Focus on the tasks that you need to do
- Always learning
Tell us about a canvas app that you have built or seen which was awesome?
- I’ve built some simple canvas apps, one of them is to capture “lead” and run some promotion during my past company’s work
- The cool apps are made by Hiro Nagao (Japan Power Apps MVP). He uses maths in producing cool apps with just formulas
Have you seen an impressive AI application recently, preconfigured or custom which you want to mention?
If it is related to solutioning, I would give a kind of “rough” boundary, depending on the needs. If you are happy with the standard purpose-built and templated AI functionality that gives no or basic functionality: use OOTB AI features like Sales Insight, etc If you would start embracing the AI-based solution to solve specific business problem based on a predefined algorithm/AI model: use AI Builder if you have data science team that understand how to model AI: use Azure ML.
So far, I haven’t seen any solution that matures enough to go beyond the basics. Apart from the usage of chatbots, basic AI prediction, sales insight, I haven’t seen anything super sophisticated (keen to see one though)
How you analyse and build security in projects ? Any tips ?
Analyse: use tools like XrmToolBox or use paid tool like SnapShot! Build: usually I gave an excel template for the business to fill in after I gave them the explanation on the level of access (user, child bu, parent child bu, organisation), usually BU conforms with the org structure and prepare the roles based on the team structure. if it is a different kind of security (e.g software security for integrations), usually we have auditors & specialist team that are doing penetration testing.
While doing configurations do you follow some rules or practices?
Nothing in particular, just using common senses. eg: use the right publisher, give a meaningful name to the field/view/dashboard/rule, I usually name workflow/actions with a number prefix, for easy documentation and search (e.g: for an action: “a001/actionname”). Also probably segregate the solutions based on the process (usually driven by the ALM strategy).
Managed or Unmanaged?
Depends… This is a never ending debate. I was coming from an ISV background, so I accustomed with Managed solution and all its intricacies to work with. Working in consulting, depending on client’s maturity and discipline in maintaining things in source control, managed solution could be overkill for them. My only hope is in the near future with the whole investment in ALM for PowerApps, the pain points of Managed solution can be addressed (looking at solution dependency-hell) and the tooling to support non-technical/developer to set the ALM process (this is the biggest drawback when we are implementing a simple solution that doesn’t need to write any codes. And the team that work on it doesn’t have developer within).
Early bound or late bound?
Each to its own game. Early bound is good for compile type safety (I usually use this). Late bound is better for performance (only load the necessary attributes).
LINQ, FetchXML or QueryExpression?
FetchXML for performance.
No code/ low code or hardcore development?
Each have its own niche. Depending on the requirements, go with the right tool.
In your kingdom, what sort of testing is mandatory (add more value) and which are optional?
- Basic unit testing
- Integration testing
- Regression testing
- (Grey area) load testing
- Penetration testing
Generally for Integration which technology and pattern is your choice?
- IF API-based option is available, I’ll choose API-based approach (can be vary depending on the existing technology landscape)
- IF not available and only database level access, I’ll use SSIS/ADF.
Realtime vs batch
That question is when you are doing requirement gathering. Typical questions to interrogate: does it need to be processed right when it is requested? If not, what is the turn around time for the request to be processed? How big is the volume?
Any open-source, community development, toolbox plugin that you want someone to develop?
More PCF controls!
If you have all the resources to improve one thing in D365 what that would be?
What is one thing in model apps you consider people are not utilizing its full potential?
Alternative Key.. very rare that I see solutions with integration is using this. This feature is really good in maintaining the ID/key integrity
If you are selling D365 just by one feature, what that feature is?
The ease of creating data model & form -> which is now sold as Power Apps Model Driven/CDS for apps.
What will you suggest to someone who wants to be a D365 professional?
- Learn from others
- Network in local UG
- Do hands-on, spin up trial. Now you can sign up for Power Apps dev edition as well
What advice will you give your younger self who is already working as a D365 professional?
- More focus on less things, than trying to learn too much
What are a few things you do to be efficient in working?
- Keep reminder for myself on what I need to do, and do it straight away, don’t wait.
What is the best way to keep up with technological advancements and changes?
- Subscribe to the right channels (twitter, linkedin, etc)
- Read the right articles
- Keep hands-on with some technologies that you want to focus