TeraCode is an Agile development company. Our process includes:
- Minimal documentation (Wiki or similar)
- Domain Driven design
- User stories and Wireframes
- Weekly code releases
- Continuous Integration
- On-going refactoring
We work in a rapidly changing environment. Products must be flexible, adaptable - Agile. Our documentation process is designed to support the fast integration and assimilation of information to get a project started quickly and correctly. We require a minimal amount of documentation - which is collected through written specs, chats, emails and dialogue. The goal is to build a domain model along with use cases and wireframes. These documents, though simple, are the foundation for product development and quality assurance.
Domain drive design is based on using common language to describe the business problem being solved by software. When a client uses language such as "Client" or "Order Form" or "Creative" - we model those same terms in the domain model. This enables us to map complex issues and problems in a model diagram that accurately describes system requirements. Both the business people and the developers can use the model to discuss functionality and features without the burden of technology stacks, development environments and so on that usually create a barrier between the business and development teams.
Use cases or user stories are very powerful tools for developing software. And, they also serve as the foundation for test cases. Ultimately, an application and its quality are perceived by the users experience. Backend functionality can be tested with a high degree of automation, but the use cases enable us to ensure proper coding and testing of user facing functionality.
Weekly (or bi-weekly) releases allow us to push out code to test servers regularly and enable the client to see on-going progress, give feedback and get early testing cycles started. The regular release and feedback process is critical to the process to ensure the project doesn't go off-track. We work closely with clients to plan each release and this has the advantage of allowing our clients to change priorities from week to week as well.
Continuous Integration is a part of the Agile process and helps increase the speed with which we deliver builds. It relies upon a common code repository, automated builds, self-testing builds (through unit testing), daily code commits, daily builds, and automated deployment.
On-going Refactoring means that we support a steady stream of changes to the system requirements and can manage these changes with minimal interruption to the schedule.
The demand to be flexible and agile is increasing. We believe that every project needs to support the ability to change, adapt and scale with minimal effort, time and cost. Each project is started under the assumption we will be making on-going changes, have new challenges presented, and shrinking timelines. We are your best partner when we anticipate your needs and are capable of delivering.
TeraCode maintains offices in Boston, London and Argentina. All development services are actually performed in Argentina. Boston and London are staffed with...