Building Great Software requires a great
Software Development Process
Discover-Ideate-Develop-Iterate
Our proprietary process called DIDI (for Discovery, Ideation, Development and Iteration) is SCRUM/Agile on steroids and comes with concrete deliverables at each stage of the process making Custom Software Development easy.
How To Build Great Software?
One of the most important aspect of building high quality Software is the ability to control scope, minimize budget and maximize functionality.
It is our primary objective to assist customers in making the right decisions for the products we build. With careful planning combined with meticulous execution, building great software is not a distant reality. We do it again and again and again.
Whether you are looking for Web Applications for a Startup, or Custom Software Development for an Enterprise, our DIDI process can be adapted to your needs.
Discover
In this step, we take the customer through a journey of discovering the product we are about to build for them.
Tell Us About Your Product
This is where we understand your product goals, your timelines, and the problem you are about to solve. We identify the exact problem you are trying to solve and help you build Software that will uniquely solve this problem.
Tell Us About Your Users
We also help you in building User Profiles for the Users that will use this product. A product being built for Super Moms is very different from one being built for Financial Wizards. Everything matters!
Let's Build Use Case Scenarios
Now that we understand your product and your users, we start identifying all of the Use Cases for the product. We build careful scenarios identifying core use cases, alternate flows, exception scenarios and build story cards for each such case.
Identify a Minimum Viable Product
Let’s identify an MVP that we can run with. Something that will allow customers to use your product and accomplish some of their most painful objectives with ease.
Ideate
In this step, we start laying down the foundation for building high quality Software. We start brainstorming ideas, start building wireframes, prototype technologies, build basic proof-of-concepts, establish Solution Architectures and more or less the technology stack to be used.
Wireframes
This is where we start identifying wireframes and flows for our Software. We build mockups that will assist you in understanding the various functional screens and the User Interactions.
Proof-of-Concept Technology
In this step, we POC any technologies, and establish general Software Architectures, Data Models etc. for the system. Our System Architects, Database Architects will sit together and establish models to ensure your product can be built on the technology stack identified.
Software Architecture
We establish some of the base Architecture required for building Software. Important items like Security Architecture, Data Storage Architecture, Distributed Systems Architecture, Performance Measurement, Quality Assurance metrics etc. are all identified in this phase.
High Level Project Milestones
We identify high level project milestones in this phase. We collaborate with you to establish basic high level timelines and proposed resource allocation.
Develop
The actual development process begins in this phase. Our Test Driven Development approach allows us to build high quality software with 90% or higher test coverage.
Agile Development with 2 or 4 week sprints
Depending on the phase and complexity of the project, we approach development work in 2 or 4 week agile sprints. We also take a break every 3 sprints to focus on quality control and eliminating Technical Debt (often seen as the highest contributor to Software expenses).
Test Driven Development (TDD)
We use Test Driven Development and build our test cases using the Use Case Scenarios identified in the Discovery and Ideation phase. While we aim to obtain maximum code coverage, sometimes it may not be possible to achieve TDD due to the nature of the engagement or the budgetary constraints. We do not recommend bypassing the TDD and have reluctantly agreed to sacrifice quality for an interim basis to meet mission-critical objectives.
Pair Programming/Peer Code Reviews
How do we make sure our code is clean? We often perform Pair Programming and perform peer code reviews to ensure highest quality in both Software Construction and Development.
Free Hosting During Development
One of our biggest advantages is that we offer free hosting during web development for majority of our customers. While this may not be possible for some Cloud-based Solution Architectures we develop, there are still significant cost savings of having free Web Application hosting on our servers.
Free Source Code Management
We offer free Source Control Management using a Distributed Source Control System (Kiln/Mercurial). An average GitHub hosting costs $7/month per developer.
Iterate
Now that you’ve launched, our next step involves making sure that we continuously refine your product. The general saying is, Software is never done.
Refine UI and Call-to-Actions (CTAs)
We refine call to actions and other basic UI flows depending on User feedback and from any other 3rd party tracking software that we have integrated.
Review Analytics
We often use 3rd party services like Google Analytics, CrazyEgg and KissMetrics to identify and capture user behavior. Our UI/UX review team usually identifies revisions based on the feedback received using these systems.
Performance Improvements
As more and more users are onboarded, the system architecture needs to evolve from the original needs. Many times infrastructural changes are needed to account for the growing user base. Congratulations! Your product is now officially loved by many. Time to start making investments to grow your offering.
Add New Features
We start adding new features. Addition of new features could lead us back into Discovery, then Ideation, then Development and more iteration. The power of our DIDI process becomes obvious due to its iterative nature.