Skip to content

Collaborative Workflow

matjames007 edited this page Mar 12, 2015 · 1 revision

Collaborative workflow - bringing it all together

This section hopes to amalgamate all the various processes outlined in the document, providing a more streamlined workflow. All work done at the SlashRoots Labs is based on a Collaborative effort ensuring success and high quality products and services.

"Alone we can do so little; together we can do so much" - Helen Keller

Based on the project’s requirements a senior engineer/architect will communicate the system’s design to the team. This design gets broken down into smaller components that get assigned to the engineering team.

The tasks details for each developer is housed in Asana in order to manage the team in collaborating on projects. As tasks are completed the engineer is required to enter the status of the task and/or any issues that he/she has encountered. This is important as Asana collects the throughput of all developers involved in the project and will be considered a part of the engineer’s performance on the project(s).

During the development phase of the project, engineers working on the project are required to ensure their functionality developed is inline with the requirement developed for the component. The development of a suite of test scripts is necessary during the evolution of the project. The test suite will be used to aid in the continuous integration efforts at the SlashRoots Labs. If tests are failed in the project this could mean that the service/product being delivered does not meet the functionality described by the requirements document or by user-based research.

There are times that there are changes that are necessary to the project. These changes are managed by an elected change review board (typically the project leads). These changes are usually major changes to the described functionality in the requirements. Accepted changes to functionality must be documented clearly and the necessary modifications done to design/specification documents.

Continuous Integration tools such as Travis ensure that commits being pushed to the repository is of high quality ensuring that the checks against functionality of the project are done. This prevents bad-programmatic efforts from being staged into the project repository. This also prevents bad/malicious code from making it’s way into the production environments.

Communication is important during research, designing, dissemination and development of the project. Tools such as Slack can minimize the times spent drafting emails giving project updates or sending documents while increasing the efficiency of the organization - by making communication and information accessibility easier. Slack has dedicated channels for the organization allow for information to be categorized and relevant to the consumer. It allows a user to subscribe to these channels allowing the user to be a part of a discussion where information is shared.

Reminder: We are a firm believer in the Agile Development approach to development of software, but without communication the approach can lead to poorly designed systems. Documentation is an important part of the communication process. As decisions are made during the development/design process it must be incorporated into the relevant documents for the systems and/or stakeholder updates.

Throughout the lifecycle of the project, ensure that the project tasks are completed and updated in order to accurately track the progress of the project/developer.

As a final test of the system we seek to put the system through its paces by running a thorough performance test to establish a set of measurable statistics that can be used by the SlashRoots Legal team in the formulation of a Service-Level Agreeement (SLA). This test must be made on an infrastructure that matches that of the production infrastructure.

Clone this wiki locally