Pleasure in the job puts perfection in the work.
Aristotle
At 8th Light we believe business stages are NOT separate from development stages—software is only as good as the business it serves. Our business stages are intended to blend in with the development stages in order to create a single flow of value and a practical product. However, for the sake of a detailed explanation, they will be described separately.
Project Management
At 8th Light, we develop software through a process of iterations, which are small increments of time in which a certain amount of features are completed. This allows the project to adapt to a moving target, as business moves at the fastest pace it can sustain, constantly changing and evolving to stay ahead of competitors. Iterations proved a time frame in which to change the focus if desired.
During each iteration, business value is produced, and there is no such thing as “partial credit” for a story. We believe that if the story doesn’t create the business value it was assigned, it is not complete. Our process was designed with the currency of business value—as again, software is only as good as the business value it produces.
Iteration Meetings
Iteration meetings are the heart of an 8th Light project, introducing new stories into the process on a set schedule. There are three stages to an iteration meeting: demonstrations, estimations, and the planning game.
Demonstrations are the developer’s moment in the spotlight: the lights are dimmed, and the customer is able to see the intricate and illuminated features of a project. Often stakeholders of the project who are not involved in the day-to-day execution will want to attend for an update of where the project stands.
The estimation process is where the developer makes a thoughtful assessment of the effort it will take to complete the feature of the story. The estimation is realized in a point system, where the value of a point is an arbitrary, but related to its difficulty in comparison to other stories. If story A is one point and story B is twice as hard to complete as story A, its value becomes two. This number is the estimated amount of effort it will take to complete the story. They are not perfect, but it provides the customers an opportunity to weigh out stories based on their value and the amount of effort it will take to complete.
The planning game is the final piece of the iteration meeting. The developers will give the customer a budget of points (based on how many points were completed last iteration) as well as any mitigating factors. Then, the customer fills the iteration with stories adding up to the allotted number of points. This is when the iteration begins.
Acceptance Tests
Acceptance tests are intended for the benefit of both the developers and the customer. They serve as an opportunity for dialogue between the stakeholders of the system. Where the mock-ups demonstrate the visual expectations for a project, the acceptance tests demonstrate the behavioral expectations.
First, the acceptance test allows the customer to define a domain’s specific language. Although this process begins naturally in iteration meetings and conversation with the customer, it is important to ensure that everyone has the same definitions of the words and vocabulary used in a project. Over time, many technical words have developed multiple meanings and subtleties, becoming ambiguous and unclear—this is why it is necessary to agree on definitions with the customer.
Another reason for acceptance tests are to provide a regression suite for the application, insuring the continued integrity of all features implemented as the tests specify. In each iteration meeting, part of the acceptance of any story is the all tests in the regression test suite pass. As the software evolves, no features should decompose, as the regression tests keep them fresh.
Acceptance tests are a crucial method of sharing ideas with the customer. The completion of a story is determined when the customer is satisfied with the acceptance test passing, as well as the demonstration.
Reverse Staff Augmentation
Any 8th Light customer is free to place a member (or members) on the team developing the software. This gives the customer the opportunity to retain the project knowledge and details in-house. It also provides an occasion for developers to be trained or mentored by our experienced software craftsmen. Maintenance is of course required of every successful software application, and we believe that training the customer in the principles and disciplines of the project makes the transition to extended maintenance easier for all.
Glossary
Test Drive: a practice formally known as “Test Driven Development,” where the tests or specifications are written before the production code.
