Methodology
Creating software is a difficult task. The goals of a program can be hard to specify and can change as rapidly as your business. With shifting destinations and a myriad of possible implementations we have adopted some procedures and tools to keep the process on track and running smoothly.
As well as programmers, we are also consultants. We perform a thorough analysis of the goals and proposed benefits the program is supposed to provide in order to ensure the client will get the value they seek-- sometimes it turns out software isn't the answer. This analysis requires a lot of questions and answers, and is also used to determine effective communication channels early on.
We practice a variant of the Agile Methodology: try to get a working prototype early on, which is then used to guide further development.
- Consult with client to determine needs and generate a rough specification for what should be implemented.
- Break the spec into small work items and estimate each one. The aggregate estimate is then presented and while each item has lots of variability the sum provides a good guide for the cost of a project.
- Implement a prototype based on the work items. We use software configuration management tools to record every code change, link each change to a work item, and record time spent. This process builds up a database of useful information covering nearly all aspects of the project.
- Consult with the client to see how well this meets their needs. Cycle back around incorporating changes.
Change happens, we're prepared to help you meet it.