Retrologic Software Consulting Process
Retrologic Systems' Contracting and Development Methodology
Our goal is to provide high quality custom software and accommodate
change within a clearly defined development process.
Client Benefits:
- Immediate progress on your critical project: finding, hiring, and
orienting a new employee can take months and is very expensive.
Retrologic Systems is ready to apply our expertise to your project
today.
- Accountability: you will deal with a single point of contact who is
directly responsible for your project.
- Accommodating change: our clearly-defined software development process allows
the implications of change on schedule and cost to be made clear, enabling
the client to make well-informed decisions about project changes at any
point in the development cycle.
- A fresh perspective: even if you decide to develop your project internally,
consider consulting us early in the design phase. Our experience and
external perspective could make all the difference in the quality and
success of your internal project.
Contracting process:
- [1-2 days] Initial contact with client, and discussion of project
and its requirements.
- [1 week] Preparation of contract and the project-specific contract appendix,
briefly stating the project requirements, proposing a schedule, and
proposing a cost estimate. Billing is on an hourly time-&-materials basis,
with a renegotiable project cap.
- [1-4 weeks] Specification milestone: Develop a detailed functional
specification for the project, prototyping as necessary to minimize
technical unknowns.
- [project dependent timeframe] Code development milestones: Detailed design and implementation of the
software resulting in a scheduled deliverable. The development should be
broken into milestones of around a month, so that the client has
regular deliveries of the software and can provide feedback and request
changes during the process.
- [4-6 weeks] Follow-up period: After each code delivery, and for a period
after the code development is complete, provide follow-up with the client
to ensure any bugs are fixed and change requests can be scheduled.
Development Principles:
- Use languages and technologies that are suited to the project, while
considering the client's staff skill-set so that they can maintain
the software effectively upon delivery.
- Design the software to be:
- configurable - the software's behavior and appearance can be
customized using configuration scripts and stylesheets;
- extensible - through the provision of documented software interfaces,
the software can be extended by the client's staff.
- Issue regular status reports to the client.
- Provide software documentation using the appropriate standard
("pod" for Perl, "javadoc" for Java, etc.). To the greatest extent
possible, the code will be self-documenting through careful choice of
function and variable identifiers.
- Develop unit tests for each software module, to be run and tested for
success automatically. Also provide integration and system tests that
exercise groups of modules and the software as a whole. The enables
defects to be found and fixed early in the development process.
- Track change requests and bug reports in a defect-tracking database,
so that issues are never overlooked. Verified bugs will have test-cases
developed so that, once fixed, any recurrence of the problem will
be immediately identified.
|