A proven process is vital to achieving amazing results.
Let us present to you
No matter which process or methodology your organization is utilizing (Traditional or Agile), Optimax will adapt and fit into your culture and structure.
Discovery | Development | Delivery
Every client engagement starts with a free, no-obligation initial conversation, sometimes face-to-face, but typically over the phone. This initial conversation is an early discovery call and attempts to establish the initial understanding of what the upcoming project is all about. The conversation typically takes about 30 minutes to an hour, and results in scheduling a more in-depth discovery conference — which starts the Analysis phase — at a mutually convenient time and place.
Analysis (Business & Technical)
The process of business analysis and initial discovery may be as short as a few hours, or it may take months, depending on the scope of the project, and the methodology that our Client prefers. In an agile framework, the initial discovery is shorter and the process quickly proceeds to frequent iterations of Discovery and Planning, Development and Testing, and Release and Deployment. With the more traditional predictive approach, more time and effort is spent up front on discovery and planning and carefully establishing the scope of the subsequent development effort.
Scope Assessment and Contract Negotiation
The scope negotiation stage of the project is concerned with the development of project boundaries and the negotiation of the contract. It may take anywhere from a few hours to months of negotiations and back-and-forth, but the net result is the signing of a mutually-binding contract whose terms will govern the subsequent steps.
Development is an iterative step, repeated in regular intervals of anywhere between 2 weeks and up to a full year, depending on the methodology in use. We generally recommend shorter intervals that provide ample opportunity for feedback and course correction. It comprises the following steps, that are performed during each iteration interval:
Once the overall project scope is established, more detailed planning activities take place. The project is broken down into manageable chunks known as tasks and subtasks (in agile methodologies called epics, stories, and tasks). Depending on the methodology in use, due dates are established as well as the cadence of iteration if the project warrants multiple iterations of the development phase.
Architecture & Design
Architecture of the overall system is an ongoing concern, affecting the detailed design of its pieces. Alternative approaches, technologies, and tools are researched, evaluated, and selected, and a myriad of detailed technical choices is made, often with the help of prototyping, or experimental development. The system evolves throughout the process and progressively gets closer to the desired end-state.
Coding & Testing
Coding and testing are performed in near parallel fashion to ensure that the quality of the system does not deviate from the expected norms throughout the iteration. This is easily the most recognizable phase of any project development, as this is the phase in the overall process where the actual code is being written, and then immediately tested and validated against client requirements. Working code that can be deployed in production and executed (run) is the ultimate end-goal of all software development.
Release & Deployment
Once the code has been created and tested, it is deployed to higher-level Quality Assurance environments and — after it has been subjected to further testing — is eventually officially released from Development and finds its way into Production. Deployment into each successive environment, culminating with the deployment into Production, may itself be quite complicated, involving multiple steps and complex dependencies.
Once the development of a product reaches completion, after having gone through possibly many iterations of the Development phase, the project nears completion.
A project is considered complete once all of its development objectives have been achieved and it is successfully deployed into Production.
After the completion of all development, there may be additional work required to ensure the continued success of the end product. In particular, emphasis must be placed on user training and acceptance. Software without active and engaged users is a waste of valuable resources. Optimax will at this stage assist the Client with transitioning into production and the Client's operational readiness in taking over product ownership.
Maintenance & Support
Many products, once developed, require regular support and maintenance — and by that we don't just mean bug-fixing.
Even though Optimax places a very strong emphasis on the quality of the developed product, errors are inevitable, just by the nature of software development. Aside from dealing with bugs, many systems require regular tuning and maintenance during their normal operation.
Furthermore, if Optimax is hosting the end-product, it continues monitoring and fine-tuning the system in question. Databases need to be backed up and their indexes rebalanced; communication systems need to be re-configured in response to infrastructure changes and security threats; underlying operating systems and environments undergo continuous upgrades and may affect the operation of the end-product. Depending on the agreement with the Client, Optimax may remain actively involved in the support and maintenance of the final system for a long time.
The choice is clear:
You'll be glad you did!