Stefano Tempesta is based in Melbourne, Australia. He is a CTO, digital advisor, Speaker, Author, and Blockchain & AI expert. Stefano is Microsoft Regional Director and MVP in three categories (AI, Azure and Business Applications). He is one of founder members of D365 Saturday
This week in “Power Chat” I asked my questions to Stefano, I was particularly looking for him because he has versatile rich experience which is not just around D365 and Power Platform. Here are my questions and Stefano’s answers, hope you will like it 🙂
For the success of a D365 project, what are a few things (practices or steps) you do when kick-starting a new project?
Always focus on the value that your project is bringing. There is no one size fits all in business applications, but rather a combination of factors, ideas, approaches that make the final solution. This can be in Dynamics 365 or it may not be, so always keep an open mind on what can be done and how, and consider all options before choosing the one that brings more value to your customer.
What delivery methodology you have found useful in projects?
Definitely agile. Many people talk about doing agile but still many fail because they see agile as a way to cut time or cost. Agile is none of this, agile is about continuous delivery and improvement. It’s not about taking shortcuts but it’s about delivering incremental value.
What is one thing that can make a project successful or vice versa?
People make projects successful, nothing else does. So choose the right team for your project. But also, choose the right projects and customers. You can’t deliver any type of projects, as well as not all customers have a problem that you can resolve. Pick the ones that you are confident you can deliver successfully.
Give me two (or more) tips that will enhance the performance of my applications?
Clean up your data always before using it inside your application. This is even more relevant to a system like Dynamics 365, which is based on entities and relationships stored in a relational database. Then, use the right tool for the right problem. There are multiple ways to obtains a result, don’t assume that what worked in a case or for someone else would work again in another project.
Tell us two things (or more) which will improve the quality of deliveries?
Be clear on what you are delivering, write down any assumption you make and a list of open questions. Don’t improvise if you don’t know, do your own research or ask for help. Design the big picture and focus on the details. In this way you deliver a solid product and also have a view on the business value that it brings to your customers.
In the context of D365 implementation, what does architecture means to you?
Architecture means a lot of things, so I’ll focus on a “solution architecture” in the context of Dynamics 365. This is about having a clear picture of how the final solution looks like: what are the modules enabled, who can and how to access them, what’s the data model like, data input and output flows, system integration, strategy for business continuity and other non-functional requirements like accessibility, mobility and internationalization.
What few things you consider when you are architecting or designing a solution?
Who is going to use this system? What are they trying to achieve with it? How is my solution going to bring more value to my customer? In which way am I improving their business? Will the system be secure, scalable and available as necessary?
Tell us anything that you consider is/are the best practice(s) and everyone should follow?
A common “best practice” that I follow, if I can call it that way, is not to reinvent the wheel every time. I mean, software solutions have been developed for years, I’m pretty sure someone has already found a solution for that requirement that you are trying to address. Look out first, before bogging your head down into custom development. And the second best practice that I follow is to not over engineer a solution. It’s very likely you are not building the next Space Shuttle to go to the Moon using Dynamics 365 or the Power Platform 🙂 – unless you are! – so keep it simple, deliver to requirements, and design for incremental value, not absolute design. Practically, just to give an example, this means that you don’t really need to capture all possible nuances and differences of your entities upfront before starting with the implementation of your solution. Keep your data model fluid and allow it to grow and evolve. Systems that are not designed to evolve, will extinguish soon. You can call this approach the “dinosaur guideline” 🙂
Share a tip of yours to boost productivity as a dev, consultant or architect?
Stay focussed. Jugglers are for the circus. Unless you work in sales, which is what I said (re the circus). People are not meant to work on multiple tasks at the same time, the context switch is too expensive in terms of brain power. Stay on the topic and deliver it without distractions. Then, move to the next one.
Tell us about a canvas app that you have built or seen which was awesome?
All my apps are awesome 🙂 Rather than pointing you to an app in particular, I’ll tell you my criteria for building an awesome app. It has to do with the same principles that I follow in building software applications, I design services that are intuitive to use, get the job done and do one thing only but do it very well. No frills apps are the best apps. Simple and quick to use.
Have you seen an impressive AI application recently, preconfigured or custom which you want to mention?
“Virtual Eye” is a project that uses AI technology such as vision and speech cognitive services to help the visually impaired to understand the environment around them and make them able to recognize people and objects. For example, an application of this technology is for business meetings, where hard-sighted people will wear smart glasses that can recognise people around the table and describe them verbally.
How you analyse and build security in projects? Any tips?
I follow the Microsoft SDL (Security Development Lifecyle) framework, a collection of tools and best practices for software architects and developers to build highly secure solutions and address security compliance requirements.
While doing configurations do you follow some rules or practices?
You know, I don’t really do many configurations. If I had to, I’d follow the recommendation of the experts. As a rule of thumb, I’d say to be consistent, especially around terminology: names of entities, fields, forms, etc. I don’t like mess 🙂
Managed or Unmanaged?
It depends 🙂
Early bound or late bound?
It depends 🙂
LINQ, FetchXML or QueryExpression?
It depends 🙂
No code/ low code or hardcore development?
Low code. No code is for basic apps, hardcode is for big troubles. Wisdom is in the middle.
Realtime vs batch?
Realtime whenever possible. There are tools and technologies to make it happen now, 24-hour stale data is so old-fashioned. Platforms like Azure Event Grid can scale easily and deliver (near) real-time data sync.
In your kingdom, what sort of testing is mandatory (add more value) and which are optional?
All testing is optional… until you have a problem. So you’d better test your solution beforehand to avoid getting into troubles. The only testing that counts, at the end, is UAT. Your unit tests, system tests, integration tests, performance tests etc can all pass, but if your solution doesn’t pass the final user acceptance, it’s not a solution yet.
Generally for Integration which technology and pattern is your choice?
API-based endpoints and asynchronous services, all in communication among them via a service bus and an API management platform. This pattern of integration scales and is secure.
Any open-source, community development, toolbox plugin that you want someone to develop in the future?
I would love to see an open source tool for event management using the capabilities of Power Platform, for calls for content, agendas, registrations, etc. And community events around the world contributing to its development and adoption by running their own events on it. Hey, but maybe I can start developing it! 😉
If you have all the resources to improve one thing in D365 what that would be?
I don’t need all the resources; I need the right resources necessary to improve its overall performance and scalability. Competitive platforms are slicker and more usable, respond better to increasing load and, overall, give a feeling of being more robust. This is still lacking in some components of Dynamics 365.
What is one thing in model apps you consider people are not utilizing its full potential?
Model-driven apps have been part of Dynamics 365 for long, even before Power Apps, although they were not technically called that way. I believe organisations are using apps to their best; however, I still see some areas of improvement around security. For example, it is possible to configure specific security roles to use within an app to grant or restrict access to specific capabilities. This is often overlooked and default permissions are assigned to any app user.
If you are selling D365 just by one feature, what that feature is?
Its ecosystem of products and integrated cloud services is the richest in the market. Dynamics 365 is not only about its core capability for CRM and ERP, but it’s also about the strong integration with other Azure services, such as data analytics, AI, IoT and even blockchain.
What will you suggest to someone who wants to be a D365 professional?
Pick an area of specialisation within the Dynamics family, it’s too big to know everything. Become the best in that area, get certified and then share your know-how with the community, especially at 365 Saturday events!
What advice will you give your younger self who is already working as a D365 professional?
See the previous answer! That is what I would tell myself. Instead, my younger me was too keen on learning everything, so I did not invest enough time on certifications or community. I actually got my first certification only in 2013, and my first public speaking in 2014, way too late since I started my professional career.
What are a few things you do to be efficient in working?
“Mens sana in corpore sano” said the ancient Romans. Your mind is sound if your body is healthy. Find your balance in life, stay focussed and healthy, and enjoy what you do. If you don’t like it, or if it stresses you out, why are you doing it?
What is the best way to keep up with technological advancements and changes?
Attend 365 Saturday events. For more information, go to 365portal.org 🙂
Let’s Connect 🙂