DEFINE AND DESIGN PHASE
Define requirements. Our clients define the high-level functional business requirements to outline the project scope. This step defines the user, functional and system requirements, transaction workflow, usability requirements, performance metrics and other objectives as defined by our client.
Design specification. We then take the business model defined by the client to design a technical solution around those requirements, including client inputs, such as:
Presentation Design: User interface, navigation flow, wireframes, page layout and constraints defined, etc.
Business Design: Back-office integration, business metrics to target, business rules to follow.
Infrastructure Design: Overall topology solution will be asked to perform in (h/w, s/w, network).
Project Plan. We dissect a project into milestones, modules and tasks, which are further refined into categories of difficulty and assigned a weighted time estimate. Tasks are grouped together to form a module with an expected start and end date with one or more modules making up a milestone. Milestones are released periodically as miniature software projects. By breaking a project into small manageable milestone, we are able to reduce overall project risks.
BUILD OR DEVELOPMENT PHASE
Build process. We begin to develop source code based on the technical design documentation followed by business and presentation code, which is then unit-tested locally and then migrated to the quality assurance or staging server for testing by our client. During this phase, internal code reviews are conducted to validate that best practices were followed, using Eclipse IDE development tools to speed up the process. A combination of open source, vendor and NetSphere Strategies tools are used to generate system builds for test and production.
Configuration Management. Imbedded within this step is version and change control.
Version Control. To track and manage source code to create a production release, we use CVS, Subversion (open source) and Rational ClearCase (IBM) tools.
Change Control. Imbedded within this step are project plan changes, which are initiated via a change order request process.
Deploy. During each milestone of the project, code is migrated from the development to the quality-assurance/staging environment for comprehensive testing.
Documentation. This is an ongoing effort throughout the software development life cycle process. Upon request and within a few weeks from the launch date, documentation is presented to our client, which documents custom code, configuration changes and the application topology.
TEST PLAN AND DEPLOY PHASE
The team at NetSphere Strategies is responsible for unit testing within our development environment using open source and internal test tools. When milestones in the project plan have been completed in the development environment, we will migrate the code and data from development to a quality-assurance environment. Then, our client will allocate resources and execution of the test plan for final pass/fail validation of the entire test suite, including overall system, integration, stress, user interface and UAT.
To accommodate the testing of new features and functionality, there are weekly development-to-quality assurance deployments where our client will notify us of uncovered bugs for defect resolution. Once the test plan has passed, we will deploy the fully tested solution into production.
STATUS MEETING AGENDA
To facilitate consistent communication between all parties, we use a default agenda for weekly project status meetings. The basic highlights discussed during these meetings includes: (1) what was accomplished from the previous status meeting; (2) what is expected to be accomplished before the next meeting; (3) what is holding up progress on any particular phase; (4) project plan summary: track actual hours/costs against the plan, percentage of project completed, are we still on time and budget; if not, what is the new timeframe and dollar estimate (in the case of approved change order requests).
With the help of standard tools, such as project plans, project milestones, weekly status meetings, timesheets and web-based collaboration tools, we centrally store project documents and facilitate project collaboration to keep our clients informed on the project’s status.
During the course of an engagement, we provide informal mentoring opportunities to our clients. Typically, mentoring sessions are accomplished at the end of a weekly status meeting as a Q&A exchange or periodically throughout the project as long as these Q&A exchanges don’t negatively impact the project deadlines. We view these opportunities as a learning mechanism to pass on knowledge and transfer skills to our clients.
Through past experiences, we have discovered that the best results occur if our clients’ personnel are utilized throughout the project as opposed to waiting until the project comes to a close. This is especially true when there is much information to schedule into a limited time frame of a few days.