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.