We have about 10 applications in one Monolith that need to be refactored into Microservices.
Following an Agile approach, we would like to split work into vertical slices where each slice would be useful to the User. Each slice would include a persistence layer, a service, and a user interface. However, we are not sure how to handle the UI layer. Should we tie our new microservices into the old UI, or create a new UI that would be available to a few users?
The first option would require a lot of work to wire the microservice into the old UI. Further, we would eventually have to tie the services into a new UI. Hence, twice the work. The second option would require two UI’s running in parallel and would certainly get less traffic until the project is finished. Since, it will likely have a subset of users that may not use it often I question, how useful it would be. The second option seems to make sense to me, but we have been toying with another option.
The other option would be to simply create the service layer only and add a new UI as a separate epic. Testing of the service could be done through an API testing tool, e.g., Postman. This approach seems simpler at first, but it has issues. First, it seems to fly against an Agile approach and follows more of a Waterfall methodology. Thus, we don’t get true incremental feedback from the User since they really won’t see anything usable until the UI is done.
So, I’m sure there are many ways to approach this problem, but wondering if there is a typical way of solving it.