Our Software Engineering Process
Our proven engineering process using Scrum methodologies and attention to detail is what makes our team stand out amongst other consulting firms. Having worked for years on projects with defense contractors and commercial entities, we have found that many are skilled in a wide variety of areas, but few have solid systems engineering and project management expertise in the software arena. Our project teams actively employ a proven process and associated tools based upon 'best practices' as advocated by the Software Engineering Institute's Capability Maturity Model.
Over the past
ten years, DSoft Technology has continuously improved its
object-oriented methodology and management processes. DSoft
Technology uses our success-proven systems engineering and earned
value management processes to control and guide custom software
development. Managing diverse technologies and clients requires a
disciplined technical approach to produce applications and support
service on time and within our Client's available budget and
resources.
DSoft Technology follows a proven iterative engineering approach
to architecting, developing, enhancing, and maintaining IT systems.
It applies collaborative and continuous improvement concepts to
software development, emphasizing close collaboration between
development teams and clients, frequent delivery of deployable
code, face-to-face communication with clients, small teams, and
identification of self-improvement activities. Our approach
conforms to best practices used in the industry. These "best
practices", championed and instituted by world-class IT firms,
include: (1) Develop Iteratively, (2) Manage Requirements, (3) Use
Component Architectures, (4) Model Visually, (5) Verify Quality,
and (6) Control Changes.
One of software development's bitter truths is, like it or not,
requirements change. Traditional waterfall techniques ignore this
fact and the result is a system that does not fulfill all the
user's expectations. Our iterative approach allows for requirements
to be factored into the design, even at later stages of the
development cycle, resulting in higher quality applications. We
expect to receive feedback -- and actively seek it -- about our
work, and are prepared to incorporate that feedback into the
requirements repository. Trying to baseline requirements too early
in the life of a software development project simply guarantees
less than optimal project delivery.
Our Agile approach stresses 1) a common understanding of all
requirements between the client's software project staff and
ourselves, 2) development of expert knowledge of the system's
functionality, and 3) system documentation in SyRIS for reference,
testing and maintenance.

1) Requirements and Fusion. DSoft Technology engineers work with our Client's staff to review and refine the business objectives, business rules, and detailed requirements. As the components are defined, preliminary drafts are reviewed with the Client to validate our approach and identify potential issues. This is an iterative process maximizing Client input into the process. The documents produced for the detail requirements package are reviewed with the Client while in progress to identify and resolve potential issues. Preliminary reviews of work in progress are held frequently to validate our approach and to identify/resolve potential issues early on. The real product of this process is the expert knowledge gained and documentation from which the system will be built. Using a requirements traceability matrix coupled with a testing process, we ensure 100 percent of the requirements are implemented in the delivered product.

2) Analysis and Design. Based on the above requirements and fusion process, dialog flow diagrams and prototyped conceptual screen mock-up images are developed to "play back" the typical usage scenarios to the users. In true use case fashion, we prototype a series of user screens to represent the project's business critical functions. Feedback from Client review is used to further refine the requirements.

3) Development. This step provides for the actual code development. DSoft Technology will develop software according to best commercial coding practices. We also encourage a rapid prototyping approach to deploy components to a test/staging server as new functionality is made available. We proactively encourage incremental reviews of our work-in-progress by our Clients to validate the product is meeting all expectations.

4) Test and Evaluation. We understand operational software products, having developed operational systems for the government and commercial clients that have to work 24x7. We dedicate significant time to implement the entire test processes including: planning and control, analysis and design, implementation and execution, exit criteria and reporting and closure activities. We also test the software using a Multi-Tiered Testing Strategy including appropriate time for: component testing, integration testing, system testing, user acceptance testing, operational testing, contract and regulation acceptance testing, alpha and beta (field) testing, and build and deployment testing. Testing will be performed in a test/staging environment specifically designed for testing and staging software into the production system. Although we perform informal unit testing in the development environment, formal testing is based on test cases developed against the final requirements set. We conduct SQA audits, formal technical reviews and inspections on all components of our software to ensure technical validity, and quality of our work.

5) Deployment, Integration, and Optimization. This stage involves final integration configuration and deployment to run properly in the Client's production environment. Working with Client project staff, we assist in loading the software to the server and configuring it to run properly. Once integration has been completed, Client acceptance testing is initiated upon acceptance of the operational test report and approval of the acceptance test plan from the previous phase. DSoft Technology also provides assistance with operations, upgrades and optimization of the solution as new requirements emerge. Depending on the contract, the DSoft Technology warranty and maintenance periods start.