Development

Agile Scrum Delivery Model

We leverage a fully extended agile scrum delivery model, complete with end-to-end QA integration and executive transparency reporting. The three ‘keys’ to successful implementation of agile scrum:

Sprint Planning / Planning Poker   – ensures unanimous agreement for the estimate of each story, greatly enhancing the probability of accuracy. Points are used instead of time to enhance the ability to ‘compare’ the relative difficulty of one story to another.

Wedge Team   – we provide all of the key, high-level roles that are not needed full time on the project but are essential to success. This team acts as a ‘startup’ team to ensure the project is foundationally sound – and the team continues on throughout the project, attending sprint planning and review sessions as they occur. This team includes: Architect, Engagement Manager, Scrummaster, and QA Manager.

Product Owner   – the single most important factor in the success of a project is the involvement of the Product Owner. This representative of the client is responsible for communicating and collaborating with the Swan team to ensure that the vision is implemented and the priorities are established.

DevOps

DevOps is about continuous collaboration between developers and operations throughout the entire process – Design | Development | Production.

DevOps eliminates the silos between development and operations and extends Agile principles beyond the boundaries of “the code” to the entire delivered service.

Agile software development prescribes close collaboration of customers, product management, developers, and QA to fill in the gaps and rapidly iterate toward a better product…DevOps adds service delivery – how the app and systems interact are a fundamental part of the value proposition to the client.

Our Best Practices for DevOps:  We are using Agile principles, Design and Planning, Executive Transparency Reporting, End-to-End Fully Integrated QA (including Black and White Box testing), Cloud Services Setup, Production Support and many others. We are using the best DevOps tools to accomplish our goal to deliver and support a quality product, such as BitBucket for Source Control Management, Jenkins for Continuous Integration, and TestRail for Test Documentation management. These tools all help us to be flexible to requirements changing, deliver software frequently, select the most effective methods and techniques within development, deployment and supporting of a product.

What does it mean for our Customers:

Source Code Management

Version Control System.  We are using Version Control Systems such as GIT or SVN for managing our development process. This allows tracking of any code changes and makes code review easier with pull requests. A key ‘best practice’ is that each user story is developed in a separate branch.

What does it mean for our Customers:

Quality Assurance

Quality Assurance. Our entire culture is built upon QA. Everyone in the company is part of our QA team, including our executive team. The QA process is tightly integrated throughout the entire engagement process, beginning with a test plan in the Design sprint and carrying through to delivery of the final product.

Test Plan.  The Architect and QA Manager collaborate during the design sprint to determine the Test Plan. This document determines Test processes which will be executed on a Project. It includes Guiding Principles, Quality and Test Objectives, Test Scope, Test Types needed, Test Environments. QA is assigned to the project and keeps this document up-to-date according to latest changes.

Acceptance Criteria. Creating user stories is a great first-step in a Feature Driven Development (FDD) process, but can still produce some ambiguity in the requirement. Our QA team will write the acceptance criteria for every story, using the industry standard “Given/When/Then” model. This process (combined with user stories and planning poker) contributes to creating requirements that have been thoroughly defined according to the client’s needs. This document is then
passed on to the client to be used for User Acceptance Testing.

TDD. We use Test Driven Development as our Best Practice Development approach, meaning that our developers write Unit Tests before developing the actual code. Developers applying the TDD approach are likely to write less complex code, more smaller units (methods and classes), more tests and achieve higher test coverage than they would write with a non-TDD approach.

Black Box and White Box Testing. We define Black Box testing as testing from the user perspective, and White Box testing as testing from a code perspective. Our QA team performs Black Box Testing based on Acceptance Criteria along with negative testing techniques on all supported environments. White Box testing includes such activities like Code review, Automated testing, and Unit Testing.

Continuous Integration. A critical component to our process is the continuous integration server (CI server), which is running Automated and Unit Tests on a daily basis. This eliminates a large amount of issues during the development process and minimizes the time needed for troubleshooting problems.

Code Review. This is performed by highly experienced developers (team leads) to minimize amount of code duplicates or memory leaks, and to keep code clean and smooth as well as fix any issues in the code. All code must pass review before being tested by our Black Box QA personnel.

End-to-End Quality Integration Process

Each User Story is written in the following way: As a [user] I want [feature] so that [benefit]. This is the best way for quickly obtaining our Client’s requirements, and understanding the real purpose and benefit of a Story.

Our Agile board was designed in a way that covers the overall process of development | testing | delivery and dramatically helps our Clients to be aware of all details, and to control and manage them on all phases.

TestRail is our best-of-breed test management tool. We create the Acceptance Criteria, manage test runs and coordinate the entire testing process. We can easily track and follow the status of individual tests, milestones and projects with dashboards and activity reports.

Bitbucket is one of the most advanced version control systems and improves development team collaboration and code management. It also makes code review more dynamic and flexible with pull requests. It helps the team to hold discussions quickly and easily right in the source code with inline comments. We use our own corporate Bitbucket account to store and grow all our Client’s projects code. This ensures the security, stability and overall integrity of your information.

Executive Transparency Reporting

A ‘pure’ agile scrum environment says that decisions will be made on a sprint-by-sprint basis, and executives are asked to ‘trust us and the process.” To that, the typical executive response is “you want me to give you carte blanche control over the budget and timeline? No thanks!” Swan addresses this area by providing a ‘Custom Project Dashboard’ containing three components that, when combined, provides a snapshot of the status of the project and the expected timeline to finish. This dashboard ‘fully extends’ the agile scrum delivery model to include Executive Transparency Reporting. These three components are:

Burn Down Chart.   This chart can reflect the current sprint or indicate the status of the entire project-to-date.

Resource Metrics Report.   This table indicates the velocity of each individual in the team as well as the team itself. The green/yellow/red dots indicate whether the velocity is as predicted, within 10% of expected, or outside the 10% range.

Progress Bar.   Shows the status of the project and the expected date of delivery.

Portfolio Dashboard

Used when running multiple concurrent projects. Each project is summarized in a thumbnail version on the Portfolio Dashboard. User has the ability to ‘deep dive’ on each project by clicking on that project’s thumbnail and being directed to its Project Dashboard.

Finding the right technology partner is fundamental for a business’s success. At Swan, we like to say that we succeed when our clients succeed. We’ve worked in many industries and created everything from complex solutions to high-quality websites.