A lot can be said about designing for cloud-first. Async as default, for example. Chatty DB issues of systems designed with an implicit view that data is instantly available (on-prem DB, for example). However cloud DB suffer from latency causing issues.
A good starting point is to to recognise that different physics is at play in the cloud.
Category: design
A lot of developers talk about microservices. Microservices at an outset appear anti-agile as separation has to be tackled early on which is not easy as most of the time deeper understanding is required in order to decide how to brake up components. Build MVP and decompose when you learn….
Great design shouldn’t be reserved only for the mass market products. Your colleagues will use the business apps that you build every day.
Design them to be usable and also to look modern and tidy. Nothing worst then using the app that you know could look much better. Get a template from Theme Forest. If in doubt select one of the best sellers for your use case and you will be 80% there.
If you end up concluding that DB as service (Azure SQL) is better compared to virtualised DB (VM with SQL Server) be prepared to tackle performance issues when migrating from on premises DB.
Build models based on historic data but be ready to place bets to increase potential IRR. Track budget IRR vs current IRR and have visibility of the spend as an absolute measure what assets can move the needle.
Making software useable makes it harder to be used while making it easy to be used makes it less usable (across other software).
Search for The Learning CTO, a friend’s blog covering enterprise architecture.
Ok. So you believe in micro services and shadow IT. You add a task management tool, e-payslips, HR app, case management and more. They all make sense since they address a specific need. And then at some point you feel a need to link them first via a single sign on (with a service like Okta) and later as a coordinated work flow. Don’t do this since you will be adding complexity and removing optionality to use the best service for the job since you will be embedding the tools that you selected because they are easily replaceable.
Two-speed IT
Makes sense to go for “two-speed IT”, in which you separate fast-moving and more innovative IT (data-crunching, say) from more basic services (payroll processing, for instance).
Testing the initial appeal and actual usage of a potential new product by simulating its core experience with the smallest possible investment of time and money.
Cheaply test your thinking “build it, and they will come.” Learn from it as fast as possible. Think 1 PowerPoint slide, single page website, $100 AdWords campaign, product packiging/logo… search Pretotyping for examples.
I think of pretotyping as minimum-viable MPV ie MVMVP. Does sound like an acronym hell but you what I mean.
As the teams work in different locations, MockFlow lets you easily share wireframes online. We use PrtScr tool to capture and annotate changes to designs to feedback cutting the comms loop super short.