Agile software development is an emerging force in the world of software development designed to face the challenges of an increasingly volatile marketplace. Changing requirements and shorter deadlines have led to an increased deviation from the practices of traditional, heavyweight processes to the adoption of practices which foster a more lightweight development environment. In general, Agile methodologies value a flexible process receptive to change rather than a rigorous process encumbered by a predefined rules and limitations. More information about our research in Agile Software Development can be fund here here.
Publications related to Agile Development can be found here.
What it is ?
Agile methodology manifests fast availability of software changes and new features to the end user. Continuous deployment (CD) is an Agile software engineering practice that aims to minimize the time difference between development of software changes, and making those changes available to the end user.
What we are doing ?
Effectiveness of continuous deployment as a successful software engineering practice remains unknown due to lack of academic research in this field. Our objective is to categorize practices in the domain of continuous deployment that will aid software engineering practitioners in achieving more efficacy in their continuous deployment practices.
What we have done so far
As the first step of our investigation we are exploring and investigating technical presentations, blog posts, and other online resources to identify the existing deployment practices of companies who have adopted continuous deployment. So far we have studied the practices of 20 adopting companies or adoptees, which include Netflix, IMVU, Etsy, Github, and Facebook. These 20 companies have reported what they have adopted continuous deployment practices. We categorized the type of business in the following bar chart:
As the chart shows six of the adoptees deploy e-commerce websites as their product, six of the adoptees deploy social networking websites as their product. The Other category includes cooking websites, surveying websites, background services, and media streaming. We used several internet resources as our knowledge base to identify these practices and categorize them accordingly. We also have maintained a list of references that indexes the internet resources that we have used for our research. As we see in the following chart, blog posts have dominated as references, implying the importance of blog posts as a tool for today’s software professionals to spread their knowledge and experience.
What more to do ?
We plan to ask practitioners about their practices in details and discover, and analyze the unknown practices. We also plan to study the practices of more continuous deployment adoptees leveraging internet resources.
Continuous Deployment Practices
We investigated the practices related to continuous deployment of these 20 adoptees and categorized them as following: