The client is a Software company who provides a HR (Human Resources) system to some very large tier-one/plc and UK Public Sector clients. The system itself is functionally rich but has been around for a while and in terms of technology it was using 20 year old VB technology and architecture. The client had procured more work for a national project for a Public Sector client which required the application to work on mobile devices of all shapes and sizes. So the problem was that the current system as it stands could not cope with this and also the architecture was not really created to accommodate either a mobile web app or native app front end.
The new mobile web application needed to work on all mobile devices, web browser types and needed to support tens of thousands of business users and be designed in a very intuitive way so either none or very limited training and support was required by its users who on the whole were temporary staff just hired for one major project and use of this software.
The client itself didn't have the resources in terms of people or the skills to handle the project. It required a team who could work with both the old and new technologies to design and product a solution. So that was the challenge!
The options for a solution were limited to two directions only which was a complete rewrite, which would be a massive undertaking in terms of the time available and also the cost. The other direction, which is the one we took, was to produce a hybrid system which utilised a modern front end which could work on mobile devices but also still work with the older VB on the back-end.
The application had never really been built with a mobile front end in mind and has it pre-dated the mobile age then that was no surprise, but it also pre-dated a lot of more modern thinking in the way we layer and architect systems these days. So the up shot was that the code for the User Interface - which is what we needed to replace - was very tightly coupled to the business logic and data access. In a modern system these would be decoupled to maximise reuse and maintainability and lower costs..
Once we had designed and built the user interface we plugged it into a temporary PHP web service and database so we could test the User Interface out and let the clients take a look and make sure it fitted the specifications.
The next challenge was plugging it in the existing VB back-end code. As I said the back-end had been built in a way that both the business logic and data access code had been mixed up with the user interface code and it was tightly coupled with a VB user interface. so practically the code was unusable. So what we did was to create a new set of reusable code classes from the existing code which could be used by the new user interface but also a native mobile app if they ever wanted to build one. It also then allowed for the existing web screens to be refactored to use the new reusable code.
The new designs, user interface and mobile web application was accepted by our client and their end client and the project is now ongoing working on other areas of their business.