Agile as a way of being
We believe that Agile development is the best way to build functional software meeting the needs of our clients.
At SpiderLogic, Agile is more than a methodology and set of beliefs and principles – it is a way of being. So much so that we say it is part of our organizational DNA.
Project success is a direct result of three key attributes of Agile – trust, value and reliable delivery. Ultimately, we want to work in a way that makes you feel the most comfortable, while still ensuring a productive and communicative project environment.
Iterative Development occurs when software is developed in small cycles that deliver a predefined amount of tested functionality to the users.
- Small batch – Iterations should be at least one week and at most one month
- Collaborative – We will collaborate closely with you to understand your needs and ensure we are building the right thing.
- Tested – The functionality developed should be high quality and include automated unit tests to ensure the developed software works as expected
- User Functionality – It has to work from the perspective of the user of the system
This process allows for timely identification of errors in specification, in development and in communication so that those problems can be addressed early in the process.
Visible signs of progress
The team will deliver working features at the end of every iteration ensuring progress is visible and not hidden in a percentages in a a spreadsheet. You will be able to try out the features built and provide feedback to the team.
Automation of our processes is important because it brings standardization. It is also important because it is a deliverable we can give to our clients when we hand-off a project. Your internal developers will be able to pick-up right where we left off.
Unit Testing is the practice of developing small tests for each unit of code as the code is developed. These tests get combined into an automated test suite that is run continuously throughout the lifecycle of the application. These tests are the basis for quality as they test the lowest level pieces of the application. The tests help prove to the team that the code does what it is expected to do so the team can have confidence in the project as a whole. Unit tests also help us to be Agile by allowing us to respond to changing requirements without fear of unknowingly breaking the system.
Continuous Integration is the process of having an on-going automated build, integration and testing process. Having immediate project status helps us walk the Agile walk in addition to talking the Agile talk.
The customer is an active participant in the project. They can and should make decisions about priorities and changes in functionality. This participation helps ensure the we are building the right thing. There should be no “big surprises” at the end of the project because the customer and users have been involved in the whole process.