Start right.  Stay local.

We will nurture your existing investment, foster and grow your dream, using local Vancouver Island developers.

Our Development Approach

We’ve been listening, understanding, building, enhancing, and supporting our clients’ custom software since 2002 at Mighty Oaks, and for decades throughout our careers. We employ seasoned local personnel to develop and support software applications, from requirements through to implementation. Each of our clients has an Application Specialist (aka developer) acting as their primary service provider for their work. Other personnel are assigned for backup coverage, technical review, and testing. 

For new custom software projects, we ensure that no viable commercially-off-the-shelf software exists, as generally existing software will be much less expensive and require less of a time commitment from the client. Once we know that a client absolutely needs new custom software, we will seek to understand our clients’ expectations, as well as their business need.

Mighty Oaks uses a client-customizable software development methodology, ensuring we are flexible to work with each potential client, be they a business or a non-profit, a small or a large corporation.   As we only use seasoned personnel as the primary service provider, we will provide consistent development results time after time.  Each of our people will bring in other team members as needed as part of their work (ex. project managers, peer reviews, testers, hosting specialists, security consultants, etc).  

With each client, we generally work with one main person who is the key-decision maker/application expert/trainer, as well as larger product stakeholder teams.  We find that training two users (primary/backup) as the clients’ application experts dramatically increases buy-in and also minimizes ongoing training costs (as we train the trainers).   We provide Telco-grade co-location systems for the production operation for some clients, while having the ability for test and training systems available for the long-term as well. 

We develop information systems through a multi-step software development process from investigation of initial requirements through analysis, design, implementation and maintenance. Some of our clients become intimately involved with their written custom software requirements, and some clients prefer a hands-off approach. This will mean that depending on the client we may:

  • detailed written requirements for clients that review, edit, and sign-off prior to design, or
  • develop rapid successive incremental visual and working prototypes for clients, or
  • create anything in between these two approaches...

The approach for most of our custom software projects have the following in common:

1. Requirements Analysis

The requirements gathering step is the most critical. This is completed through a series of discussions and meetings with the client in order to develop and clarify the vision of the end goal.  We will have a good-rough estimate of the overall cost at the end of this phase.

2. Technical Design

At this point the technical aspects of the project are addressed. Prototype screens and a database design is completed. This information is then presented to the client and refined as required. Once the client has accepted the overall design, a time-line and good cost estimated will be provided.

3. Development (potentially phased)

The development step is where the majority of the brute-force work takes place. The design is turned into a functional system. Each module is then presented to and tested by the client in order to ensure that the general functionality of the design is met. This step typically goes through a series of iterations.

4. Integration Testing

At this point a complete system is prepared where all the modules have been brought together into a single application.   We usually do our own form of unit and integration testing to ensure the system is ready for client-testing.  The client may see this phase, but only for beta-testing purposes.

5. Client Acceptance Testing

The complete system receives a full test by the client, and their end-users, to ensure that it meets the requirements detailed in the Requirements Analysis Phase.   The client will also ensure the data correction for any test data migrations.

6. Project Documentation and User Manuals

Requested documentation is prepared detailing both the technical and functional aspects of the application, as needed by the client.

7. Training

We train the trainers, who then train their end-users are trained in the use of the system.

8. Deployment

The completed system is installed, with any data migrations performed.  Operational support provided until all training and production issues are resolved.

9. Ongoing Support

Some of our clients have us host test systems, training systems, as well as their productions systems, where we do our changes in development until promoted to test, and finally production.  We provide support for the long-term, and are here for small changes, increments, and adhoc queries.

Next Steps

We are committed to connecting our clients with the best solutions and services to best fit and propel their business.  To discuss your custom software needs, contact us.