The project overview is where you tell us your ideas about the project. What are your goals? What obstacles will come into play? We create a wish list of features/functionality you would like. Are there third-party products (either software or hardware) that your project needs to interact with? During this phase, we seek to understand your needs by asking questions.
Objectives
- Consult with client on overview of project
Deliverables
- Project recommendations--A plan for going forward with your project including priorities of features/functionality and a very rough estimate to make sure you understand the time involved in taking on the project.
During the analysis phase we begin by trying to better understand your business processes. We will often ask to "shadow" those involved in the day-to-day work that the project is concerned with. This ensures that we create software that fits your processes. During this phase, we identify the various users and processes the software must account for.
Objectives
- Review existing business process and infrastructure
- Research supporting technologies
Deliverables
- Project Analysis Report
Once Analysis is complete, we begin a process of designing the user interface for the software. This goes beyond how the interface "looks". This process shows users how the software will function. . User Interface Design is a highly iterative process. The user is shown the interface and is asked for feedback. A new iteration of the interface is created and once again the user is asked for feedback. This process continues until:
- users tell us that what we've shown them is accurate and complete, and
- we are assured that we know everything we need to create the complete software package Typical development methodologies keep the user interface hidden from the user until delivery-when it's too late to make changes. The greatest reason (by far) for failed software projects is that the software delivered does not do what users need. By creating the user interface first in conjunction with actual users, we drive out the risk of project failure.
Objectives
- Define application structure
- Create application design
- Design user interface
Deliverables
- Completed User Interface software
Having created a User Interface first makes back-end coding far easier, faster, and less expensive than traditional development methodologies, since the business rules and system requirements have been firmly established. While some shops may specialize in a particular programming language, the language and database should be chosen to best fit the type of project you envision. Further, all code should be fully tested to ensure that deployed software will be free of dangerous "bugs".
Objectives
- Code system components
- Perform unit testing
- Perform load testing
Deliverables
- Beta version of your application deployed to testing server
During the coding phase, developers do their best to build robust code. During the Beta Testing phase, dedicated testers do their best to break that code. Too many times beta testing is left as an exercise for the user. Testers work with coders to ensure that possibly costly bugs are discovered before the software is launched. At the end of the Beta Testing phase, acceptance testing should be performed. An acceptance test is a formal review in which you agree that the system has been fully and accurately implemented.
Objectives
- Beta testing to find and fix any bugs
- Conduct acceptance testing
Deliverables
- Deployment-ready software
At this point the deployment of your project should be a straight-forward process. It may be as simple as moving the fully tested and accepted software into a live environment.
Objectives
- Deploy code to production environment
Deliverables
- Production code and documentation
