Design & Architecture
We’ve finalized the specs. Great.
Now comes the technical bit. We try to decide on the brains of the app and the system architecture.
Let’s put some questions
How we build the application and what technologies to use in the app? What framework to choose?
Where and how is the application going to be hosted? Any special requirements to do so? Typically an application is hosted on a computer on the cloud working full time running your application as a server. Its a virtual machine being either shared among other subscribers or dedicated to one user.
These virtual systems are available in all shapes and sizes to fit you. We select one depending on a typical usage of the app. Another beautiful feature of these servers is that you can add more as needed. check this out.
What data does the application need in order to do what it is expected.
Why is this necessary? – The way your application is built dictates how much you can get out of it. You don’t get see any of this backend design and architecture. But this is what you are paying for. This is the product you buy from us.
Remember – simply ‘a working application’ is no way of measuring an application. All that glitters is not gold. A poorly structured application is literally a poisoned chalice. You’d end up spending a lot of time and money fixing your product’s health.
Application design is all about having serviceable code. All applications have bugs when they are rolled out. Some more than others. Further more, throughout the application’s life cycle there are going to be feature improvements and additions.
Both of which require diving in to the code to either find and fix something or to improve an existing feature or add a new one. A well designed app lets us do that quickly and with confidence. Even by a new developer – needing little time to get to grips with how things are built. No other parts of the code would be affected by the changes – the code will be stable.
A poorly structured code will be a spaghetti code. Finding and fixing things is going to be quite a task. Add to that the code’s instability and a fix one place would break something at another.
A properly designed application segregates the code in to manageable and independent sections that still do interact with other parts of the app. It splits the application horizontally as well in to the data layer, the business logic layer and the UI layer.
The Data Layer is typically how the information is stored in the DB. This is a study about what database structure makes sense. Ideally we’d like to store all possible information with the highest degree of flexibility and be able to expand the data structure for future additions.
All of that with the best of data integrity and db performance.
The business logic is the brains of the application which implements the conditions, restrictions, operations, actions, presentations, etc your product needs to do. This is where bugs occur.
The strategy here again is to divide and rule. Separate the concerns, but still have them able to interact as needed and permitted. Each of such concerns are called modules.
The UI layer or the Front End is what you see as the face of the application. The specifications describe how the UI is to work in great detail. It now remains to make the app and its persona come alive with design, layout, and whole bunch of bells and whistles.
Get the web designer, Let the wire frames begin. Every thing from each of the screen layouts to icons, buttons, notifications, animations and ever so smaller details are designed.
This is where the look and feel of the app comes alive. Need to get this right. Failure of which will result again in you spending spending more time and money having redesign tweaks. For that reason this is an iterative process. We first come up with a design based on our interaction and the specs. We keep tweaking it or redesign it until you like it going on to love it and sign off the design.
The application development doesn’t begin till the design is done.
Seems we made some more progress on your idea.
We worked on the specifications to come up with a UI Design, sketched out a system architecture in detail and also sorted some technical questions.
We are good to go..