Have you ever commissioned a custom software design project and after months of development, the software does not work? Or if it is completed, it does not meet key requirements or is not designed for expansion? Even worse, the developers designed the software "exactly" the way you specified it, even though you didn't consider that their limited understanding of your business made it difficult for them to create a system that could easily accept the new features that were needed in the coming months.
Many of our employees are veteran IBM software developers with years of experience in professional software development. The main quality that we bring to the table is integrity
. This means that our number one goal is to design a software system that helps a business owner reach their corporate goals, not to create more business for ourselves. This is a system that makes you look smart and refined, a genius to your peers. Our job is to understand your business as thoroughly as we can, then using your requirements, show you how a software system can help you reach your business goals. At the end of the day:
- the customer must be satified
- and the system must be on the way to achieving the stated Return on Investment
or we work on it for free until it does
Of course we can make this promise this because we follow a strict methodology when developing software systems, with clear specifications, milestones and deliverables, so that we do not end up in a "creeping" project that is never finished. Our development process is designed to result in a happy customer and a system that meets requirements. It is as follows:
- Initial Interview
We listen and learn about the solution that needs to be designed and collect initial information about the business goals, requirements, internal stakeholders and users of the software system.
- Business Process Analysis
The initial interview is followed up with a thorough analysis of how your business functions, modeling the flow of information into, through, and out of your business. We then examine the desired solution in light of your business processes to highlight any inefficiencies in your processes that could influrnce the success of the solution. The newly developed software system must enable your current business processes, however, in some cases, business processes may need to be transformed to take advantage of the solution.
- Object Oriented System Design
Object Oriented Design is a method of modeling the software system as well as the processes that utilize the system in static and dynamic settings. One aspect of the OO design method, generalization, allows us to take a model of your business problem and define generalized solutions that capture the real world variations that occur as a system is developed or matures. This allows us to design a system that accurately represents the problem at hand, yet is adaptable to future changes.
- Iterative Development Process
Once a high level design is completed, we can then break the design into logical components and organize the development process to develop testable subsections of the project over a short period of time. These iterations deliver system components that can be analyzed and can generate feedback into the rest of the development process. Customer signoff is required at each iteration point and development continues. The lower layer of the system is developed, then particular components are added to create a running but feature incomplete system. Additional features are then added over each iteration, according to the system model, and the testing and feedback loop continues.
- Continuous Testing
Testing your software system begins at the conceptual level by examining the system model in light if numerous "use cases", typical usage scenarios. An overall test plan can be created at the model level and refined as the components are created. Each component is tested to see how well it adheres to the behavior described in the model. If the model is correct and the actual software components adhere to the model then the system should function as designed. Real world test scenarios are applied to highlight performance issues sometimes show up after months of use.
- Integration Testing
Integration testing occurs on the customer site and helps to run customer business processes through the new system in a real world setting. We also can improve the links between the new system and other functional areas and systems in the organization.
- Training & Deployment
We produce detailed users manuals that provide step by step information both at the level of describing the screens and by describing how specific job functions can be accomplished through the new system. Hands on training, seminars, and online help is available to give users to the knowledge necessary to use the system successfully in their day to day work. Proactive monitoring of employee usage allows us to interact with users to smooth any bumps in system acceptance.
- Satisfied Customers, Guaranteed ROI
By being proactive in making sure that users are able to perform their job tasks successfully using the new system we increase the level of system acceptance. If there are any software adjustments that need to be made to improve usability, we will make reasonable improvements at no cost.