So I am in charge of setting up a database in Dataverse. Over the last several weeks I have been researching, migrating data to Dataverse, and configuring the database. I have learnt lots through this time but I have some high-level questions that I have not been able to find answers too (mainly because my questions are situation specific) and I need advice. If you have any input on any of the following questions it would be greatly appreciated.
Context: I am working for a small engineering firm whose primary purpose in converting to Dataverse is to use the quick low-code features in Power Apps to quickly create applications that can speed up the current paper processes. I am in a Computer Science Intern position and will be leaving the company for school in early August. I want to leave the company with a good frame work for them to build from where I left off (there will not be someone replacing my position and I will be training co-workers before I leave who do not have a background in software development). I will be making a high-level and company specific "software development manual" so co-workers can refer to it if they need help.
Questions:
1. Application lifecycle management (ALM). Within Dataverse there is environment and solution strategies to initiate a ALM system. Is this overkill to start with? I don't think the company would need ALM for the next 12 months but I don't want to start Dataverse on the wrong foot and be a pain down the road to have to switch everything to work with ALM. Currently I have decided to set-up a single environment with a basic app in a single solution and not initiate a ALM system.
2. Common Data Model (CDM). Is it worth using CDM in Dataverse, from research I personally don't have much excitement for CDM. I think this is because I don't know much about it and the benefits it could bring. It personally doesn't sound like it is overly useful compared to creating custom tables. I like knowing about the data model of my entities and the CDM is confusing but maybe it is worth investing time to understand it? Currently I have decided to not use and CDM tables.
3. Multi-application integration. My company currently uses SharePoint for many of its file storage. We see the benefits of SharePoint for being a useful collaboration tool but were concerned about its security and scalability; hence the transition to Dataverse. However from research it seems like it may be useful to use SharePoint and Dataverse together as a team. Currently I don't have a concrete plan but was thinking that we would have photo/file storage on SharePoint and table/number storage on Dataverse. This is because from some research it seems that Dataverse storage is expensive and does not support photo/file storage as good as SharePoint. Is this a good idea? I am open to recommendations for how I should delegate what data gets stored where, or if we should eventually remove any use of SharePoint.
4. Where is data validation in Dataverse. One question that has been a headache to figure out and still don't feel like I know the answer too. So to my understanding, Dataverse has some basic data validation for each table using Business rules and then has better data validation for Model-Driven and Canvas apps. What I don't understand is why there isn't more focus on table validation, because if you have multiple apps with different developers using the same table, then data could be inconsistent in the table because each developer for their app could have different methods for data validation. Is there a reason for why there is better validation at the app level? ... because I don't understand why.
5. Invest in a full-time software/database developer? When I leave at the end of summer there will be no one who is tasked to develop the software/database for the company. It would be a shared effort between the co-workers who are not real developers. My biased opinion would be to pressure them in finding someone to replace me as soon as I leave. Nevertheless I must be cognizant that companies must make smart business decisions. So I am wondering how important it would be to have someone working full-time as a skilled software/database developer and how soon the company hire that person. Could a Dataverse system be administrated by a bunch of "citizen developers" or is that a recipe for disaster?
Thank you in advance, I truly appreciate any opinions or advice. I understand that this post doesn't give nearly enough answers to questions that would be raised while reading. I am more than willing to respond to additional questions in the comments below.
All the best,
Jason