For application development projects, our typical methodology is to divide each project into a set of phases. In the first phase we develop a functional specification that outlines the desired functionality of the application, tool, or feature. Subsequent project phases involve programming, implementing, testing, and training as required to meet the demands of the functional specification.
Software development projects at Wadeware typically consist of the following major project phases.
Discovery
Our software developers collaborate with each client to develop a functional specification that meets the customer’s requirements during this phase of the project. Product research and baseline requirements for the client’s environment are typically defined during this phase. The team then submits the initial draft of the specification to the client for approval.
A proper development model is also determined during this phase, based on client requirements. Wadeware prefers to use one of two models:
- In the Waterfall model of software development, the project plan follows a development lifecycle during which the project team works according to a series of scheduled milestones. Typically, these milestones mark the beginning and end of the discovery, design, implementation, test, and maintenance phases. Our programmers use best practice guidance during each phase of the lifecycle and listen carefully to customer feedback and needs.
- In the Agile model of software development, shorter code development and feedback cycles are used during which the developers and project managers perform intensive research with the client to complete weekly development “sprints” to achieve specific code development goals. This development method allows the team to regularly demonstrate the latest progress to the client and also allows the project team to change course more quickly between sprints as necessary to address change requirements and complete the project in a timely manner.
When deciding which of the above models to use, Wadeware considers the following programming methods:
- Object-oriented programming (OOP) uses objects to encapsulate data and its state, and allows programmers to perform operations on the data. Nearly all Wadeware programming engagements use the OOP method because it facilitates rapid development and because of its associated low maintenance costs. Wadeware programming projects that use this method typically employ the following languages: C#, ASP.NET, Java, JavaScript, and Visual Basic Scripting Edition (VBScript).
- Structured programming is an older programming method. Projects that require this method might have interoperability requirements between older and newer programming languages, such as C and C++ libraries that rely on dynamic-link library (.dll) files. Achieving interoperability can require using .NET Platform Invoke (PInvoke) functionality, which allows programmers to find, edit, and add PInvoke signatures, user-defined types, and other information related to calling Win32 and other unmanaged application programming interfaces (APIs) from managed code written in languages such as C# or VB.NET. Projects that require structured programming are generally more time-consuming and challenging to maintain.
- Functional programming does not require programmers to maintain state while developing code. SQL is the most widely used functional programming method. Wadeware programmers use this method to develop SQL queries for Access, SQL Server, and MySQL. Our programmers also use this method sometimes to develop scripting based on other object-oriented languages, such as C#.
Documentation
Based on the approved initial draft of the functional specification, the development team then evaluates and refines the project deliverables document and adds this information to the functional specification to obtain customer approval. Researched configuration requirements are documented at this point and the architecture is finalized.
Implementation Planning
After the client approves the software requirements in the functional specification, our developers start programming the desired functionality into an Alpha version of the project deliverable(s) for review. Plans for deploying the deliverable(s) to meet client requirements are also defined and documented as needed during this project phase. Typically, this phase usually involves a handoff process and tight testing/feedback loop for signoff.
If the project requires a specific programming language or interoperability with other programs, our team develops a solution to meet these project objectives as described in the functional specification.
Lab / Pilot
The development team incorporates the feedback from the Alpha review cycle and any other required functionality to release a Beta version of the project deliverable(s) for client review. The Beta version might consist of a lab or pilot version of the software. The feedback-revision cycle is repeated, and tests are performed to troubleshoot the software and its deployment plan. All team members and the client provide input during these review phases of the project to ensure the final deliverable addresses client requirements.
Training
Training materials may be developed during this phase of the project as required by the client to facilitate a smooth handoff of the final deliverable(s). If documentation or hands-on training is required, Wadeware technical writers, editors, and instructional designers are brought in to develop the appropriate training material.
Deployment
After all parties approve the tested functionality of the final deliverable it is delivered to the client for deployment, which typically marks completion of the project.






