SharePoint has always been known as a platform which you use to build something on, but over the past little while this paradigm seems to have been shifting a lot. What's going on and where is this going?
Individual hosting versus Shared hosting
Environment where SharePoint takes it's roots is all about hosting an instance of a product just for your organization. In this case you can almost turn it into anything you like as long as you can support it and deal with regular updates. If you break something, you don't necessarily need to fix it.
It's like owning a house
In cloud hosted environment, you no longer have a dedicated copy of a product to play with. You can only have bits and pieces which can't harm other tenants. It's like owning an apartment.
It's only natural for someone who lived in a house for 15 years having trouble adjusting to live in an apartment. Same goes for moving from a completely dedicated environment to the cloud.
As a technology folks, we always have to watch out what are the trends out there. Here are some guiding principles on what types of customization are cloud friendly now and going forward.
Look and Feel
Customizing look and feel involves 2 aspects: structural customization and color scheme. Structural customization, such as modifying positioning of out-of-the-box navigation elements and headers is acceptable but discouraged. Mainly because Microsoft updates these elements on a regular basis and your chances are going to collide with theirs one day. Additive changes are less risky, for example adding a footer to the site. Of course, there is no guarantee that Microsoft will not release a footer control one day and you're going to end up with two footers on the site but it's lesser of a risk than you making changes to part of the site already in place.
Color scheme customization is acceptable through Themes which have been supported in the framework for quite some time. You can also wire custom CSS to your site using out-of-the-box tools and make granular changes to how elements on the site are colored.
This area has suffered a big shift, so to speak. Where you could build entire applications and custom pages (and some customers still do) now you can barely embed a script on the page.
It all boils down to this:
Process related functionality
Try Flow, Power Apps, and just apps. If you haven't looked at Flow yet - really take a look at what it has to offer. It's got more than you can see on the surface. You can build functionality for which you used to have to use custom Timer Jobs and Workflows. You can integrate with external APIs with no code. Of course there are limits but the tool is growing and we can expect more investment in this area from Microsoft and partners. PowerApps is growing too but very slowly. In several customer scenarios we had to defer PowerApps due to lack of functionality but it's likely going to change so keep an eye on that.
Use third party tools. There are some really great tools out there such as Zapier which can integrate SharePoint with Salesforce for example, or Slack. Nintex can attend to all of your complex workflow needs. Don't be afraid to use these microservices in your solutionas long as you don't stretch beyond original intended use - you can save valuable time and budget.
Build Add-Ins. Add-ins are tiny blocks of functionality on your pages. It will require some initial kick start to get your feet wet. The power behind an add-in is that you can connect them to Azure or other services out there, to offload some work. Naturally, this approach will make your architecture a bit distributed but it'll depend on the scenario to determine whether it's worth or not.
What are the types of customization you're seeing out there?