How We Deliver
Foresight Data Systems has worked with clients in both remote and on-site capacities over the years. In that time, we’ve developed a process for managing the projects we engage with our clients, that has worked extremely well across both scenarios. This process is designed to manage not only the development and deployment concerns of project deliverables, but also to strike the right balance of communication and oversight where clients are kept apprised of project status, without overwhelming them with details. The goal of our process is to ensure clients have enough visibility to know the project is progressing according to plan, while affording sufficient feedback checkpoints to ensure course corrections, when necessary, are dealt with early and efficiently. To learn more about each stage of our process, click on the diagram below.
Before we can begin work on your project, we take the time to truly understand the problem from your perspective. Starting with a workshop to explore your business domain and understand the strategy and success metrics you have in mind for the software solution you are seeking to build or improve upon. At this stage, success metrics will often be contingent upon unknown variables or inputs that will need to be designed in or data-mined by the target system. Our goal during discovery will be to identify specifically what success looks like, how it will eventually be measured and what features, data flows and processes will need to be engineered to deliver upon that vision. Armed with this shared understanding, we will then produce a business requirements document that puts our joint discovery conclusions in writing and ensures that we have a shared understanding of the new system’s scope, with inputs, outputs, processes and data-mining goals clearly defined.
With the vision and project scope agreed, our team of software architects and engineers will design a solution that fits those requirements and meets our agreed upon success metrics. Our team will then select the open source tools and frameworks most appropriate for your project and delivering the greatest degree of cost and scope savings. Design choices will include what type of cloud platform we will be targeting, e.g. simple EC2, Kubernetes with or without service mesh, block chain etc. We will also map out the user experience we are targeting, including visual mockups and mapping out user workflows. Other factors we will consider during the design stage include security, data aggregation and analytics, standards compliance, disaster recovery and performance metrics. The design stage will conclude with a design document and build roadmap for the system to be constructed, including potentially dividing the effort into multiple iterations to reach market sooner. Once our client has signed off on these documents, we will proceed to the build stage.
Many projects will spend a higher percentage of the overall project lifetime within the build stage of the IT consulting process. To ensure the project stays on track, we break the build phase into the 4 sub-stages of plan, develop, test and checkpoint. These sub-stages comprise an Agile software development process, where the build sub-stages are completed in 2 to 3 week sprints. At the end of each sprint, a checkpoint is engaged with our client to demonstrate progress and surface any issues or dependencies that have arisen since the last checkpoint. From there, the next build cycle begins again, with a new plan that incorporates any feedback or course corrections our client may have interjected at the checkpoint. When the final checkpoint is reached, and the client agrees the project is ready for deployment, our team then proceeds to the deployment stage.
Foresight Data Systems engineers its software to be rapidly and automatically deployed using the latest open source cloud provisioning tools. Our deployment tooling can work with cloud, on-premise and third-party providers. Or we can supply fully-managed, worry-free hosting environments ourselves. Our deployment environments are fully managed and employ a range of security features as standard. For large-scale deployments with high throughput and high-availability requirements, we provide multi-site and high availability services with CDN integration, load balancing and scalability.
With the product operational, the work of supporting your customers and maintaining the software infrastructure must begin. Foresight Data Systems can support you in a variety of capacities at this stage as well. If you have an in-house development team, we can assist as needed with support and maintenance functions. Alternatively, we can support you in a full-service fashion, where support and maintenance are fully outsourced to us. In the latter scenario, we can setup dedicated monitoring of your systems to ensure proper operations, and put our people on call should any alerts need attention. We perform regular disaster recovery checkpoints, including recovery simulations to validate data backup integrity. We also monitor for cyber intrusions, and ensure that any such incidents are shutdown and alerted.
Many of our clients are eager to get a minimum viable product ready for market as quickly as possible, with a plan to iterate on the initial version thereafter. During the discovery and design stages, we work with our clients to understand their timeline and feature set goals. From there, we can lay out a single iteration that reaches market all at once, with all features you wish to target. Or we can setup multiple iterations, where the eventual feature set is arrived at over time, through multiple iterations and versions of your product. Since customer feedback will often drive products in new directions, the multiple iteration approach is generally preferred when competitive pressures don’t preclude it.