To complete the development process of any project, there has to be some engagement model. Masymbol also follows some specific process to get all its projects completed in the best possible way.
We design the product as per the user need. We involve users/stakeholders so that the output turns exactly what people want – not something we think suitable. All the useful starting points are taken care of to get the best output.
Understanding – Before we start designing your product, we make sure that we understand what your probable users/customer need from this product. Until we understand what your end users need, we do not start.
Prototype – On the basis of our understanding we create a first model to let you know what is probably/possibly you are going to get. If prototype is not suitable in look and feel, again changes are done.
Test & learn - The next step is to test the development by real users. Unlike usability test users are asked some specific question about the product to match the development. Then learning on those things changes are made.
We have understood what problems users are facing with the prototype development. We try to find out a development platform which would be suitable to resolve those issues without getting into trouble of using technology we do not know.
Mobile Apps - It is all about the users when it comes to Mobile apps development. We have to think what users want at different modes of using the device. Then comes the usability – responsive design structure, native applications and HTML5 for interactive content rendition.
Programming Language - Choice of proper programming language is very essential to end up with successful development. In web applications we prefer Ruby. However in other cases or client preferences we can use PHP, Python and others.
Framework - A choice of right framework (a library) makes performing a particular task in a programming language easier. Some of the frameworks that we prefer are Ruby on Rails, jQuery, Angular.js, Ember.js and the likes.
Database - If your business deals with huge information, then you have to create proper database. We use PostgreSQL, MySQL and other reliable ones. It gives any development reliable storage of data to deliver information as per user calls or demands.
In all sorts of development, the work flow must be having a planning. Here one thing has to be kept in mind that the way proper planning is required, it also needs to stick to a plan until satisfactory output comes. Frequent change of plan can harm the development (disturbs work flow as developers become frustrated).
Daily stand up – To see the progress, there has to be daily standup meets. It ensures that the entire team knows what work has been completed assigned previous day and what has to be done for the day. A scrum master comes in great help in this process.
Task - All the tasks has to be divided among the team in such a way that there is no burden on developers. At the same time the right task needs to reach the right people. In task management we use Trello. It responds well to changing the structure of the process "on the fly."
Weekly planning - While daily standup and task management help in progress, without weekly plan result would not be visible. On start of every week we meet for planning for the week. The meeting can be a standup or through Google Hangout or Skype. We celebrate success and identify hindrances.
Altering process - We divide the task in ‘current’ board and regular ones like the ‘bugs’, ‘product design’ and ‘engineering.’ As per the criticality tasks are pull up to ‘current’ board. ‘Product Design’ board where user flows, usability tests, user research, or the designer's feel are kept or ‘engineering’ board which is refactoring, necessary alteration also done there to reduce bugs or to improve the user experience.
Designing is one section that needs to be given proper attention or the first impression to the users can become dull. A thoughtful and attractive design for a product or service website always helps in getting the desired results. We work with Photoshop and other design tools to prepare better design structures.
Sketch – Before finalizing on the interfaces, we prepare sketches for the probable design output. Not just one designer, quite a few of designers are asked to sketch and the best of sketches are sent for client approval.
Wireframe – Depending on the selected sketches, designers start preparing wireframe in HTML and CSS. It helps the developers to add features in the wireframe. At this development stage we keep in mind usability, user experience, and overall flows of the structure.
User Interface – In simple words interface is the mediator between human and computer. User interface are the individual views that help in completing any goal. We keep in mind that our user interfaces are affordances, congruent and consistent for interaction.
Interaction design – We always keep in mind that interaction gives users option to change the canvas, to directly manipulate interface as per his or her desire. So at the time of designing interactions we keep in mind the human nature of communication so that those make our designs alive. It is interactions that guide a user to complete a task.
Visual design – We know that visual representation is the style with which a design comes to a user. So our visual representation always follows proper alignment, emphasis, consistency and whitespace management. It ensures our representations are highly soothing and acceptable to users.
Usability – It is nothing but the ease of a user to reach an application the way he or she wants. In initial development stage, we follow a method of correcting wrong steps. But in later stage it is all about testing how users are taking things. In the later the stage, it is purely usability testing to know the effectiveness of the development.
The development process is very much important and we follow some efficient techniques to get desired output. Every step of our development is highly effective and interrelated.
Acceptance test – These tests are code created from user stories we get. This code is run against the different applications. Every first time the test result is a failure, but the developers write application codes until those passes in the tests.
Style guide – Our codes are written in consistent style. Those are clean and entire team knows how to work on them if modification needed. We follow specific guidelines for development.
Refactoring – This is a process of improving the design of existing code without altering its external behavior. There are there steps in development ‘red – green – refactor’. While others may ignore the third step, we properly follow them all.
Version control – In our work we always use source code control. It's like a time machine that can give us flexibility of moving from one to another code. It is parallel universes of source code where we can go for experimenting with codes without having to lose work. Roll back is possible when something wrong happens.
Test driven development – It is one the most important extreme programming. This process add more value to development, it is faster, and adaptable to changes. At the same time we can produce readable specs & code, clean public interfaces and decoupled modules. It also give regression safety and fearless refactoring.
Code reviews – Through proper git protocol we review our codes. Right from creating local feature branch based of master to submitting a GitHub pull request and finally deleting local feature branch – everything is done with utmost care to get flawless output.
Continuous integration – In the development process there is continuous integration. Through test suits developers commit their codes to shared version control repository. After running tests again integration is done with code from other developers. We also run CI test which are triggered by GitHub post-receive hooks.
It is the final and vital point to consider. We follow some steps that ensure that our clients get the best and desired output. Every product that goes out of our production house is pure and without any flaw.
Check list – We strictly adhere to some check lists that ensure our products are up to the mark of expectation. We provide these list to our developers to reduce time and flaws.
SSL certificate – If we buy the certificate then only integration is needed. But the time client does the same we do check its validity and integrate after everything is fine.
Performance monitoring – We have specific performance monitoring applications. Through error tracking and other processes we make it sure that all the functionalities are working perfectly.
Hosting – We provide hosting to the clients. Again client can provide the hosting details. We work in either of the case and successfully host the development and check if everything is right or not.
Payment processing – If the there is any transaction processing, we then need to work on payment gateways. We can provide our clients with the best suggesting gateways. On the other hand, client can provide the same and we integrate the gateway and check if that is properly working or not.