The develop phase is where the action happens. The SSP team will begin to construct the software and integrations that were laid out in the design phase based upon the approved design documentation.
SSP will typically begin development by creating a dedicated virtual server environment matching the specifications provided by the client at SSP offices in Englewood, Colorado. SSP utilizes VMWare in our back office which allows us to easily spin up dedicated virtual servers where we can isolate the development and testing for each client. The server software may include a centralized geodatabase using SQL Server or Oracle as well as any required server software such as ArcSDE, ArcGIS Server, ArcFM™ Server™, ArcFM™ Replication, Responder™, etc. SSP has the ability to model both 32 bit and 64 bit environments using the latest and greatest software available from our partners.
Next SSP will create a dedicated base developer machine with the applicable versions of Visual Studio, ArcGIS Desktop, ArcFM™, and any other required software. SSP also virtualizes our developer machines which allows us to uniquely support each client's versions of the core product software along with any customized modules. We maintain a catalog of base developer machines which allows us to establish these environments very quickly which adds significant value to the project without much added cost.
The development of any custom software or systems integration points will usually include a team of SSP principal consultants and software developers. The team will work together to build any custom modules required to meet the requirements laid out in the design documentation. Rest assured that all code developed at SSP is managed centrally and backed up in source control using Microsoft Team Foundation Server. This allows us to manage versions of the code as they are modified, branch code bases for various product versions, and to maintain a structured approach to our development initiatives.
At various points in the software development phase, SSP will begin to create software deployment packages or installers which allow us to systematically install, validate, and test the software both internally and at the client site. We believe this is a very important point and we take great strides to make this an organized part of our business. Instead of delivering small, one-off installers or even exe's or dll's, SSP will always deliver a comprehensive installer with a specified version label. This allows us to track the changes to the software as they evolve throughout the development phase and beyond into production. When testing the software it will allow both SSP and the client to always know which version of the software package they are running. We spend so much time validating the core product versions we are working with (including service packs, patches, etc) and we believe the same care should be taken with your custom software delivery.
The SSP staff will fully unit test all custom software deliveries to the full extent possible. This can sometimes be limited in the case of systems integration projects where we may not have the full external system available to us in house. Once unit testing is complete, SSP will work with the client to establish a test environment at the client site that utilizes the correct versions of the core products and of the custom software. Depending on the project an SSP principal consultant may work directly with the client's IT department to establish the a proposed server architecture diagram. SSP will usually rely on the IT department to build any servers including the operating system but can then assist with any database or application work as needed. The custom software modules will then be loaded and validated to ensure they are working as expected.
At this point in the development phase, the client team will being their testing of the software. The test cases should conform to the design documentation that was established in the design phase. Any bugs, issues or enhancements should be logged using SSP's change control management procedures. SSP will work with the client to resolve any outstanding issues and will redeploy the custom software as needed. At the completion of the testing the client will be asked to accept the software as ready for deployment. Depending on the scope of the project, SSP may also deliver turnover or implementation documentation detailing out the procedures that will be taken to install, configure and deploy the custom software.
At this point in the software process, the project will advance to the deploy phase.
The specifics of your project may differ in the exact development procedures but the above description should provide you a solid overview of how SSP conducts this phase of the project.