Ruby On Rails Development Workflow
Information Gathering
Our project discussion methodology includes gathering all the requirements from the client through different means depending on the client expertise. These can be in form of questionnaire, use cases, agile story boards, wire frames etc.
Tools – Customized templates, Questionnaires, Agile story board, Use cases
01
Business Analysis
Next, we analyze the requirements and provide process/product improvement suggestions and comments. Our experience and expertise helps us to innovate in this phase as this defines the success and architectural foundation of the product. The customer is a part of entire process till project delivery.
Tools – User cases, Agile Story Boards, Business research and analysis document
02
Project Planning
This phase sets up the expectations with the client. The different parts of project execution including what to expect and when, are handled in this phase. It also lists out the processes, tools and techniques we will be following. Normally, the design and development process goes hand in hand, so we plan them accordingly.
Tools – Sprint Docs, Backlog Docs, Redmine, Pivotal tracker, Basecamp
03
Project View
Once the planning is done the actual implementation starts. Project Development plan, technical specification docs to developers and unit test cases with validations are prepared here.
Tools – Redmine, Pivotal tracker, Basecamp
04
Database Design and Architecture
First we go ahead and prepare a robust and scalable architecture of the application keeping in mind the future requirements. This phase also covers the database design using which we will start the development process. The ERD is shared with the client for approval.
Tools – MS Visio, DB design tools
05
Design Process
This process decides how exactly the application will look and the output of this process will be wireframes, PSD, CSS/HTML which is W3C compliant and is tested on all browsers. Usability guidelines, design philosophy of the application based on the users are taken into consideration here.
Tools – Photoshop, Dreamweaver, Illustrator, MS Visio
06
Development Process
This process follows pure SCRUM methodologies and product gets evolved in iterations or sprints. We focus on continuous deployment and regular code commits at the end of every sprint so that customer can be in touch with the evolution of the application over different stages. The aim would be to take the product to market as soon as possible reducing time to market and generating end user feedback in parallel for product improvement.
Tools – Photoshop, Dreamweaver, Illustrator, MS Visio
07
Testing
Continuous testing is a must as the builds are pushed to server on sprint basis. We promote Test Driven and Behavior Driven Development and follow all standard test processes – unit, functional and integration tests. For larger applications, we also do load and performance assessments.
Tools –Rspec, Cucumber, Selenium, Whitebox and blackbox testing
08
Deployment
This is an important phase where we have to judge the best platform for deployment; infrastructure related decisions are taken here. We advise to deploy the application on cloud because of scalability, uptime, cost effectiveness and many other factors. We are experts in deployment on cloud, be it Heroku, Rackspace or AWS.
Tools – Capistrano, Apache, Passanger, Heroku, GIT/SVN
09
Post Deployment
Once the application is live there is always a need to support the application so that end user will have a delightful experience. We take up AMC for the applications we develop, and engage resources to take care of new feature enhancements, bug fixes as well as 24×7 server maintenance. In short, we thereby guarantee that the application we develop is also managed and maintained well!
Tools – BugZilla, Redmine, Pivotal Tracker, Helpdesks, Kayako Support Suite
10