At Insercorp our Software Development Teams take a high-level approach to developing custom web applications, including various web technologies, infrastructure, and practices.
Software Development Process
The following list details the development process we follow, which consists of an adapted “Agile” methodology. We integrate changes quickly and continuously, iterating our features based on feedback and evolving requirements, and code is deployed continuously to the Development environment for integration testing and review, in addition to management of version control through Git Repositories.
We follow an adapted Agile methodology consisting of features broken down into specific discrete tasks and assigned to developers. Those tasks are organized into 2-week sprints based on feasibility and team availability. Tasks not included in each sprint will be put into a backlog to be incorporated into future sprints or accomplished by developers as time allows. We have developer team meetings at the beginning of each sprint to identify and assign tasks and coordinate efforts and feedback with our clients.
We use milestones for goals that will not be associated with specific dates, but to identify a level of completion we want to be able to reach to deliver one or more features to Production for the client on an on-going basis.
We set up or integrate with a client-facing progress tracking system (such as Basecamp) for high-level tasks and milestones.
We use Github for source control, branch management, and tasking. Tasks are created in Github as issues and assigned to developers who are able to associate their code commits with those issues to mark progress.
For branch management we follow a variation of the Github Flow workflow in which developers create feature branches for the tasks they’re working on, keep those branches in sync with the primary development (or milestone) branch, and create pull requests to merge changes with the primary development branch. Pull requests are assigned to and reviewed by another member of the development team who pulls the code, runs all tests and linters, and performs a code review, providing feedback and tips as needed to ensure code quality and consistently. Once satisfied, the reviewing developer will merge the feature branch into the primary branch.
We also use continuous integration and delivery using an automation system such as Jenkins to monitor code and perform on-going builds as changes are merged into branches associated with each environment.
Since our developers often work remotely and at various schedules and timezones, we maintain continuous and active communication within the team using Slack for team and individual discussions, and through comments in Github issues. We coordinate our development teams from our Operations Center at our corporate office in Franklin, Virginia.
We follow our usual development best practices to ensure we adhere to all relevant web standards, accessibility, security, performance, and writing clean, readable code that’s easy to maintain.