About our process
It is a process that we have completed successfully time after time. A leading decision maker has an idea for an application. Sometimes the business is a large company, a Fortune 500 company, and the idea makes their business run more efficiently or allows them to track data that they never had access to. Other times the business is a start-up company, trying to build a company on a small bank account that had been funded by angel investors. In either situation, we deliver the custom software the same way. Here are the steps of our process:
Our team will be called in to meet with the business user with the idea. We will sit down and try and make the system visual so that it is easier for everyone involved to fully grasp the idea. A list of starting requirements will be documented to start the design process. The system will then be broken down into chunks of logic that can be delivered together. These chunks will become our phases that we use to deliver manageable sections of the application, usually delivered in 30 day intervals.
Following the initial meeting(s), a rough overview of the application will be created along with a detailed design for the first phase. The detailed design will contain full descriptions and page mockups. At this time it is also customary to provide an estimate for the project along with a more detailed estimate for the phase. Additional meetings may be required until the business user and the development team feel comfortable with the design.
Once the design is nailed down, development will start. Using the phased approach, most development is done in 30 day or less iterations. In cases where the iterations have to be longer, previews of the development can be deployed to enable the business to assure that the project is staying on target.
Throughout the development process, technical leads will conduct reviews of the application under development to assure that standards and processes are being followed. These reviews are another way to prevent the project from going in the wrong direction.
Testing plans and testing will be conducted by other members of the team to make sure that all of the requirements are met. Unit testing can also be created to enable faster, repetitive testing and allow for easier recursive testing in later phases and versions. Once it passes our testing, it will go through a User Acceptance Testing period where it is tested by the business users.
This is very straight-forward. Once the tests pass, the system is deployed and ready for use in production.
At the end of every phase, the product’s current state will be reviewed and the development process will start over. At the end of the project, the entire process will be reviewed and lessons learned will be documented to make the process better the next project.
What makes us so good
The foundation of any good service organization, especially in technology, is the use of good tools and exceptional standards. At nimblesoft, our focus from day one has been to build the best methodology, with the focus being on:
Operational Standards & Processes
Coding standards are important because they provide greater consistency and uniformity in writing code between programmers. This ultimately leads to code that is easier to understand and maintain which reduces the overall cost of the project and helps avoid introducing faults and misunderstanding.
Efficient Project Management
Using aspects from Agile, Rapid App Development (RAD), and lean manufacturing, we have built a methodology that allows our software systems to reach a point of utilization quicker than in a traditional waterfall process. This methodology is centered on the teamwork between nimblesoft and the partner while they adjust and refine the software to fit the partner’s needs. As the system is being developed, these refinements and added features are based on active feedback from the end business user.
Best Practices & Development Patterns
In conjunction with our standards, we invest heavily in staying up to date on best development practices. Additionally, we maximize code reuse through identifying and utilizing patterns across the different software solutions that we deliver.
Through our Knowledge Base and frequent Lunch ‘n Learn sessions, an emphasis is placed on keeping everyone informed. While increasing our employees’ aptitude, it also minimizes recurrence of difficult issues and allows employees to plug into active projects as needed.
Continuous Improvement (Kaizen)
Any process can always be made better or may need to be altered as our environment changes. By having a constant action and feedback loop, we ensure that tomorrow is better than today.
At the center of any effective methodology are great tools. Some of our most important tools include Atlassian OnDemand, Dropbox, and Google Apps. Additionally, showing our dedication to tools, nimblesoft created its own code generation tool, “creatively” named nimbleDeveloper. The code generator uses a database and schema to generate common patterns across a number of languages. Our partners’ benefit from the use of nimbleDeveloper with cost savings, consistency, and efficiency. All of these tools give our team the ability to concentrate more on the functionality that makes the application a success rather than the mundane aspects of development.
These focuses highlight our motto to “Do the right thing the right way” and applying it to all aspects of our development down to the granular detail level. The process also allows nimblesoft to work on delivering solutions instead of getting sidetracked with over-managing projects. This experience makes us the perfect partner to implement custom software applications that cut costs and increase performance.