What areas and aspects do you need to cover if you wanted to build a scalable and robust platform?
Security – one of the most important factor. Covering security for your overall operation. Multi-factor authentication, single sign-on, policies such as passwords and pentests.
Accessibility – how accessible is your platform? Assessments and improvements are good but building a platform with accessibility in mind from the beginning makes it much easier.
Observability – knowing what happens in your application and how to reproduce and eventually fix these issues that are most likely happening in your production environment is paramount to deliver a better and ever improving experience. Also showing a blank screen or a confusing error message should be avoided.
Scalability – this is a very old aspect and important too. Your availability, uptime and success will be depending on this as you grow gradually. Today’s cloud services can provide you with on demand resource allocation but your architecture and budget must be ready for this. The keywords here are things like Docker, Kubernetes, AWS and similar tools.
Methodology – about working practices and about how do you ship your code. Do you follow Agile? Which framework, Kanban or Scrum, perhaps something else that works for you and your team. Do you have (peer) code reviews? E2E testing? Linting? Static type analysis? Some coding guidelines and preferences that agreed widely in your team? Do you have a pipeline and continuous integration to be able to catch up with ever changing requirements of the digital world and it challenges to adopt and respond quickly as possible?
Workflow management and communication – how do you manage your sprints and the communication during the sprint? There are good tools out there and surely all sound familiar: Trello, Jira, Slack, Zoom, Google Meet / Hangouts.
ADR – how do you log your architecture related decisions?
Well, there could be more aspects but these are above the most important of those I can think of right now.