Artisan is working with modern practices and systems. Our system development methodology is based on the Scrum method and we use Microsoft Team Foundation Server as a technical support tool to assist us in the development of new solutions. We have also developed a Coding Standard to deliver high quality in a cost effective manner.
Scrum is an Agile methodology for system development. Scrum is an iterative, incremental framework for the development of a product or project. Scrums' aim is for a team to create potential deliverable products after each iteration. Each iteration increases the value of the product and offers it new features and improvements which can be delivered to the customer. This methodology has the ability to respond to rapidly changing requirements. In the development process a cross-functional team works cooperatively to complete products.
Scrum is a method that has been designed specifically for managing software projects. The process is structured by rules and predefined roles. These roles include a "Scrum Master", a product owner, and several people in a "Team". The basic idea is that the method creates stimulated, motivated and responsible project members.
At the start of a project driven by a Scrum process, a "Product Backlog" is created together with the product owner, in which several small objects within the project is stacked up and prioritized. Throughout the project the product owner is responsible for the "Product Backlog" being prioritised, even though objects might be added or removed from it.
The basic principles of the method are:
- The project team organises and plans its own work
- Focus on business benefits - all requirements are prioritised based on business benefits
- An available and decisive orderer - the product owner is part of the project team
- Continuous prioritisation - the product owner is constantly working on the requirement
- Common workspace - the whole group share a room
- Liable project members - The project team demonstrates the system for the product owner
Team Foundation Server (TFS)
Artisan have chosen to work with Microsoft Team Foundation Server (TFS). The system provides a collaborative environment for all team members regardless of their individual roles. The system connects participants in a project, both architects and developers as well as testers and project managers. The roles, activities and work processes of the development team, allows for the source code and processes to interact in a very flexible way. All information that the various roles need to share is synchronised automatically.
TFS includes, among other things, a version control of source code, "Work Item Tracking" to support the management of operations and the tracking of software errors, synchronisation of the sources, compilation of programs, etc. TFS also creates new opportunities to communicate, which means that different development projects can work better together. In TFS, all participants use the same system and you do not have to alternate between the development environment, the source code manager, bug reporting, project management, etc.
Artisan use several of the options for testing that the TFS provides. Various automated unit tests and Web tests can be scheduled and several different kinds of reports can be produced after their execution. These test systems enable Artisan to deliver products of high quality and availability.
At Artisan we have developed a Coding Standard that all of our developers follow. The Coding Standard provides guidance on how to structure the code and how to name different objects as well as "best practices" advice to avoid errors in the programmes. Since all developers follow the guidelines, we get high quality systems that work smoothly. Programming also becomes much more effective when everyone can easily understand each other's code.