We can help you. Chordify and Travancore Analytics, our offshore development partner, have worked hand in hand with many of our customers to develop & scale their own software products. This includes mobile apps, web based products including AR/VR enabled apps.
Understanding The End User
Understanding the end user and his needs is the key in developing a successful product. Before starting any development, we conduct multiple brainstorming sessions with the customer to understand who the end users are and in what way the product helps them. This helps us in building the right use cases and suggesting highly intuitive user experience and designs.
Such initial discussions also help in identifying non-functional requirements like the size of user base, performance requirements, security requirements, end user licensing terms, etc. These will be separately captured and used as inputs while designing the architecture.
Conceiving a simple but intuitive UX is no small a challenge.
We have a team of highly skilled UI/UX designers who can create attractive and easy to use interfaces that suits every platform, whether it is web or mobile, perfectly. We use state of the art technologies like HTML5, CSS3, Bootstrap, etc. that provide responsive and smooth visual experience.
Considerable amount of thought has to be put in choosing the right architecture in the beginning itself. Various aspects as given below shall be considered while architect the product.
- Expected number of users
- Volume and processing of data required
- Supported Platforms
- Performance requirements
- Security requirements
- Offline/Online requirements
- Interfacing with third party applications
- Deployment options to be supported like On Premise, Cloud, Multi-tenant support, etc
- End User Licensing options
Choice Of Technology
The software industry is flooded with a plethora of technologies. The choice of the right technology depends on various factors. Some of the following options regularly come up:
- Server-side: Java, .Net, PHP, Nodejs or Python?
- Client-side : AngularJS, ReactJS, D3.js, etc
- Mobile App: Native (iOS/Android) or cross platform (Xamarin, React, Ionic, etc.)
- Database: Oracle, MS SQL, MySQL, NoSQL (MongoDB, Firebase, Cassandra, etc.)
- Desktop applications: Qt, Visual C++, C# Winforms, WPF, etc.
We mostly follow an agile process with multiple iterations for development. At the end of each iteration, we have an incremental version of the product that can be demonstrated. This ensures that we are always in sync with the customer.
Our team will be regularly in touch with the customer to give updates on the progress of development. This gives a high level of transparency and visibility in to the process.
QA And Testing
Our QA Center of Excellence, headed by a General Manager, ensures that the product is delivered with a high quality. Multiple levels of reviews (requirements, architecture, code) and audits are part of our process.
Testing is done at various levels like unit testing, developer testing and system testing. Performance testing and security testing are done as part of system testing when needed.
We use a well-defined procedure for testing and tracking defects. The QA team prepares test cases against the stated and implied requirements in advance. Defects are captured in tools like JIRA, Redmine, etc. for tracking and closure.
Automation of testing is done where the same set of functionalities are to be done repeatedly. This helps to avoid errors due to human fatigue and increases productivity. Tools like Selenium are quite powerful to do automated testing.
Deployment And Maintenance
There are various deployment options that can be supported like cloud, third party server, on-premise server, etc. Once deployed, the product moves in to maintenance and support. This will be handled according to the specific needs of each product.