TRYTN develops our products at a very accelerated pace. It’s not uncommon for us to release code to production several times a day. We’re able to accomplish this because we’re operating on an agile software methodology. This means that unlike some tour and activity software companies we can pivot quickly.
Most tour and activity software companies utilize a software methodology called “waterfall.” With waterfall a team of developers, testers, product owners, and others sit down and perform a software development practice called Sprint Planning. In sprint planning the development backlog (a prioritized list of all the development tasks and features to be released) and for several hours discuss how many user stories can be completed in the sprint.
A user story is pointed out based on how many hours and how many developers it will take to complete that story. Say a user story will take 8 business hours to develop, another 4 for testing, and then 2 for stakeholder sign-off. That means that user story will probably be set to 3 points. Given teams have to maintain a certain velocity (measure of how many user stories are completed in a given sprint) so if a typical team can only complete 10 points per sprint they can only take on user stories that are not more than 7 points.
Once the workload for the coming sprint is completed the work is locked and for those two weeks and those user stories are what developers work on for those two weeks. Many companies will restrict development to a single week of the sprint and testing for the second half. Once the two week sprint is completed they can release what is completed or move to the next sprint without a release.
With waterfall and set intervals you at most release code 26 times a year. As a business owner if an issue comes up that needs to be fixed you may have to wait several weeks for that issue to be resolved because of this.
Does TRYTN use waterfall?
Proudly we do not. We are a true agile practice. Because we don’t have sprints as soon as a developer is finished with a feature they can select the next most important item on the board. A key difference is the use of a prioritized board versus a prioritized table with agile. So, in the same example as above a developer with TRYTN can pick up a defect reported within a few days and have that released within short order (typically the same day) instead of the several week turnaround time with other providers.
How do you ensure quality releases moving so fast?
In order to release code to production several times a day we have to have certain processes in place to help ensure the release is of a certain quality. One way we do this is with automated unit and integration tests. When we release code it automatically runs thousands of tests to check the code base. If the new code being released is faulty there’s a high probability these tests will find it. More importantly if a change affected another area of code the tests will likely find it.
We do still have to do some manual testing but that manual testing is reduced to a few hours instead of several days.
We also automatically check to make sure certain code standards are met no matter the developer. This enables any developer to code the same way on all parts of the application. We have similar standards for documentation and technical specifications.