We prefer to provide clients with references of past clients rather than displaying online companies we have worked with.
There are several reasons we think this is a better way to establish trust;
Our clients use our firm due to the quality of our work and our process in developing well aligned software.
1)Displaying links to software products or names of companies wouldn’t prove that we created a quality product, or that our process led to the desired results
2)Our clients own their software, while many of them continue to develop and maintain their software through us, we do not know who else has touched the code3)Without understanding what the client was looking for, it’s impossible to determine if the result is ‘good’ Confidentiality agreements limit what and how much information we can share about past clients
We follow the agile process of development we are able to perfectly step in and help.
Because agile development involves constantly reviewing work done, and optimizing/changing whatever is necessary, therefore stepping into a project midway through, or after the bulk of the work is done, fits in perfectly with our process.
In fact, most of our clients work with us on an ongoing basis, long after the product was released for use, to improve their product and fix bugs.
We believe is solving the client’s problem in the best way possible while at the same time using the budget in the most fiscally responsible way.
Almost always this includes using open source frameworks and libraries to reduce the need to build everything from the ground up.
But we will never limit ourselves to the constraints of an existing tool if it will detract from solving the problem.
The initial stages of product planning as well as the ongoing requirement prioritization, testing and technical writing we can always assist with.
The project management angle of the project, ie controlling budget and timeline as well as the quality of the code is somewhat beyond our control when working with other developers.
As you may have guessed it is impossible to say considering how different the requirements can be from one project to the next.
Generally, if we are starting a project from the ground up ie not fixing a bug or adding enhancements to an existing product, our projects will start in the $7000 range.
In order for a project to be successful we need adequate budget to go through our process, if we cannot compete our process we won’t take on the project as we don’t feel confident in the results.
Just the problem you are trying to solve. Before we begin planning a solution from a functional or technical standpoint we’ll start with root cause analysis of the problem and understanding who it affects.
Only then will we begin brainstorming a solution.
The reason we do this is to ensure the solution is well aligned to the problem.
Our initial conversation is designed to give our potential clients a good understanding of our process in developing software.
Many clients who come to us have limited experience or negative experiences with other firms and we like to explain our process and how it reduces risk.
Additionally, we want to establish if we are a good fit based on clients budget, timeframe and goals.
And of course we take the opportunity to answer any questions a potential client may have.
Our projects are what we refer to as ‘Fixed Budget, Flexible Scope’.
What this means is, after understanding the problem you are trying to solve, a solution is then planned that will solve the problem, with the most important requirements being addressed first and then working down the list towards features which aren’t as mission critical but still good enhancers to the product.
That way, taking things step by step, we can ensure that the most important features get taken care of right away, while ensuring we don’t work on the less important features if they will cause you to go over budget.
Our clients stay informed every step of the way through both formal and informal methods.
Formal methods include regular interval meetings to review past iteration of development and plan for the next one as well as our project management system. Informal methods include product manager communication via email and phone.
While we understand our clients are busy, there is no way we can solve the problem without their input.
In order for a project to be successful, we need the ability to have a person in a decision making capacity at the business available for regular meetings as well as advising on any questions that may arise in the middle of a development iteration.
Every project will involve at a minimum a product manager, QA tester and developer.
The product manager’s role is to understand the problem and act as a liaison between the client and the development team as well as ensuring the project stays on budget and on time.
Beyond having one or more developers, many projects also include UI/UX designers, cloud ops and a technical writer.
It all depends on the clients needs.
Unlike some development firms which have long gaps in how often the client see results, our process involves continuous releases on either a weekly, bi-weekly or monthly basis (depending on project size).
Aside from this process keeping the client more at rest, seeing and testing the results, it also leads to a better product.
As the client interacts with the software requirement changes are quickly identified and worked into the project plan as opposed to only discovering them months later.
Glad you asked.
That’s why we develop in iterations and phases.
Before we begin an iteration we review each requirement to ensure it still aligns well with the business needs. Phases are made up of multiple iterations.
The result is that requirements are flexible up until they’ve been planned for development in the upcoming iteration. Even after development everything can be changed if the need changes but our goal at this point is to ensure that the current need is being served.
The product is constantly tested, way before launch and by both our QA team and the client.
At the end of each iteration of development a set of predefined tests are run to test both individual functionality as well as how the new code interacts with the product at large.
At each delivery the client is also able to interact with the software and test based on either our predefined tests or however else they please.
Testing is a consistent part of our development process.
We test both the individual functionality as well as how it interacts with the product as a whole at each iteration of development. Additionally, when needed we conduct usability testing to ensure the product not only functions properly but that the users will know how to use it.
After a phase is complete the latest product is released for use.
Depending on what number release it is as well as the specifics of the project, often at this point resources are reduced and a period of time is spent gathering feedback and fixing and bugs that pop up.