We iterate to stay on track, adapt to change and always incorporate new ideas.


Small iterations help to fine-tune the original plan and make your product shine.




Plan


Before you even hire us, we’ll sit down with you and perform a free pre-project consultation. We’ll give you feedback on your idea, your plan and your budget. You’ll learn about us and we’ll learn about you, and decide whether we are a good fit.


If we decide that we’re a good fit, we’ll begin the requirements analysis process; we’ll work with you to describe your custom requirements, establish a basis for the creation of a software design and define a set of requirements that can be validated once the software is built.

The most crucial part of successful project delivery is planning and architecting the most appropriate solution based on your time and budget constraints. We'll prioritize product features, set milestones, create an estimated task backlog and review the budget. We’ll consider any risks and set realistic deadlines based on the scope. Even though we set a road map, we’ll be in constant communication with you to perpetually review your current priorities, plan for business need changes and iteratively adjust course.



Write


Focused on doing product design right, we'll help you bring your ideas from concept to production. We don't just write code based on the design outlined in the previous phase. We use an iterative, agile process with small cycles of creation and refinement; we review and continuously adjust throughout.


We use a combination of modern programming techniques and methodologies in an intelligent manner to translate the design into a quality product. This ensures that your deliverable is forward leaning from a technological standpoint.

This phase, or rather the implementation phase, where we code, debug, integrate new code into an already existing solution, and perform maintenance on existing code is just one small part of the software development lifecycle. We produce the deliverable in a non-linear iterative process to reduce inherent project risk. This provides higher ease-of-change flexibility during the development process.



Test


Testing is not debugging. Software testing allows us to ensure that all your product’s design requirements are sufficiently met, that each feature works as intended and that all the pieces work together. In part, this means writing more code to create automated unit, system and integration tests.


Tests play several pivotal roles during the software development process. They unambiguously communicate how things are supposed to work, provide feedback on whether the system works the way it’s supposed to. Writing tests early on and concurrently with the deliverable allows us, to make changes to your production system in a safer and more confident manner later down the line.

We feel strongly that including software testing early in the process lowers long-term costs. However, this does require a slight increase in the per-feature budget. Even though this requires us to perform more short-term work, you should not think of testing as overhead.



Review


Between iterations, we assess the changes and discuss any difficulties or new ideas. We look at how the latest changes progress us towards the next milestone and the project’s end goals. We also review where we stand on the budget.


Part of our design process is to ensure that your product’s entire lifecycle is taken into consideration during review. Each development phase is not performed in isolation; concurrent development enables the design of your product to emerge throughout the development process.

Performing reviews and improving a design during the development process is most certainly not rework; it is good design practice.



Deploy


Depending on your app model, we’ll work with you to deploy your product to the appropriate location. E.g. to the app store, the cloud host or your web server, or create an installation package for desktop based line-of-business products.


For mobile apps

We’ll work with you to get your app certified for inclusion into the app store. We’ll also configure any mobile services required for your app, such as push notifications or social media end-user authentication.


For web apps and other line-of-business software

No matter whether you have your own server, use a hosting service, or the cloud. We’ve got you covered. We’ll help you deploy your app, setup the appropriate database solution, and configure most common protocols (e.g. SSL or SMTP support) to work with your solution.



Maintain


Even though your software solution is deployed and running in production, you’ll eventually want to make changes or even small tweaks. This is also the point where you’ll want to get feedback from end-users such as comments on features and functions, ease of use, reliability and any other characteristics that are appropriate.


During the maintenance phase, your support regime should be enforced. We’ll help you plan and establish the appropriate support material before the software is delivered. You’ll want to provide the appropriate instructional materials to end-users. Training aids, and trouble-shooting guidelines.

Then you'll want to collect, log and assess this user feedback. This is also the phase where you’ll want to start planning for the future.






Still not convinced we're the right choice?



Take a tour of our process. Then send us a message or give us a call and let's talk!

Let's talk