The Role Of Configuration Management In An Agile Environment

CM in Agile Environment

Configuration management is defined as an engineering discipline that deals with procedures as well as methods imperative to recognize and regulate items. This makes sure about integrity as well as quality of the commodity under expansion. The four major principles that CM deals with include audit, report and control (Schonwalder, Bjorklund & Shafer, 2010). The major role that is played by CM is enabling development groups to recognize the costs that create an application. In order to meet the pace of agile development it is imperative to tailor the CM. The report will provide an overview based on a case study that will reflect on the real-life examples of CM in agile environment.

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper

Figure 1: Configuration Management

(Source: Schonwalder, Bjorklund & Shafer, 2010)

The research report will aim on the role that is played by configuration management in agile environment.

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper

The objective of the research is to illustrate how CM should make sure about the veracity of the value stream, by eradicating waste and being inclined while allowing control of the changes.

Based upon the framed research aim and objectives, the primary research question associated with this paper is:

What is the role of configuration management in agile environment?

Adjusting CM for agile environment

According to Highsmith (2009), it is imperative to make sure that implementing CM will be adjusted to the agile principles. This requires to remain intact without harming any of the CM aspects. It requires to be kept in mind that recognizing, scheming, inspecting and reporting are CM values that are atheist to the development methodology applied. However, CM could be applied in diverse ways given that the CM principles remain intact.  Most of the case, CM finds itself in a company that deals with hybrid possessing some parallel phases rather than an organization that is agile. As a result, with introduction to agile, the implementation of CM requires to be accustomed to fit the requirement of agile growth methodology.

Figure 2: Adjusting CM for agile environment

(Source: Ambler & Lines, 2012)

According to Cobb (2011), management of competent software configuration illustrates a real life example that states software configuration is decisive for creating successful agile projects. It is imperative to comprehend about agile SCM by identifying the aspects that will lead towards a successful agile environment without breaking agility. SCM procedures require to embody the agile principles in order to accomplish the aspects of agile development. It is imperative for companies keep up with rapid change in mechanisms due to increased speed of agile procedures.

Challenges of using CM in Agile Environment

According to Moreira (2010), the major aspect of an agile environment is to think small in terms of increments as well as iterations at work. As a result, CM requires to have support the aptitude to deal with smaller increase of work along with rise in the change rate. CM for agile is not negligible CM, however CM that can deal with quick recognition and have power over maintaining the elevated rapidity of change. While simultaneously, it will also diminish the effort in organizing the change.

Figure 3: Thinking Small

(Source: Whyte, Stasis and Lindkvist, 2016)

It is decisive for CM to remain ready to deal with smaller work chunks as an agile environment mostly involves product management. This in turn indicates that there are additional incremental deliveries that are both external and internal. This is accompanied with the implication of higher requirement for adjustments as well as automation in branching. As opined by Whyte, Stasis and Lindkvist (2016), individuals belonging to CM requires to work in collaboration to accomplish a shared goal. This goal will help to meet business of a project successfully. CM is also measured as a shared responsibility that is a part of daily activities carried out by team associates.

The company that involves an agile environment requires to have their individual workspace. However in case of pair programming, the requirement for shared workspaces increases. This makes it easier for two individuals to share the workspace along with the changes. They will be able to work jointly however at times they require to work separately. The agile project decides about the number of branches that will be required and the way by which it will integrate with other projects. According to Aiello and Sachs (2010), if the agile project is not large as well as independent of other projects, it becomes decisive to have a private workspace however not off the mainline. On the other hand with larger team the requirement to deal with a different layer of integration between mainline and personal workspace are highly required. However, in order to reduce integration effort, an individual requires to attempt to keep a small team.The probable requirement for automated merging also takes place with the increased pace of agile.  At present, most of the CM tools come with this feature however; it without this it requires an up gradation. This turns out to be more of a requirement when the agile project is large or when more individuals requires to touch the similar code units.

Synergies between CM principles and Agile Development

If an organization proposes to deploy an agile environment in a big way, it is required to involve a CM co-op environment. This will make it quick to bring agile projects online along with immediate use of CM. In a more traditional methodology, it is required to have an agile environment until the growth stage to get the CM environment up and running. The Cm environment requires to be ready right with an agile methodology (Mohan, Ramesh & Sugumaran, 2010). This requires to be ready immediately after iteration proposal that takes place much before the development phase in regards to a more traditional method. This point, it becomes decisive to regard a CM co-op service model. This will help to bring projects rapidly into using CM environment. This will in turn prove to be beneficial for a company that has been trying to bring multiple online agile projects within a particular time. The CM co-op gets rid of the requirement for setting up the CM tools as well as introducing the infrastructure along with establishing the procedures.

The research method is very important in case of all research works. In this particular research the importance and the role played by configuration management in an agile environment is analysed, evaluated and conclusions have been drawn based on complete secondary research. There are many secondary sources available for research purposes. The most effective and reliable sources need to be identified and further applied for the research work. The articles, journals and research papers, which had been written before and have used reliable and authentic data must be consulted for the research. The research methodology will also include case study analysis that will provide an in-depth analysis. In many papers it has been researched and seen that there are many metrics of configuration management which can be applied in agile environment and can be very effective as well. The research is mainly concentrated on the success of the application of the configuration management in an agile environment. The CM is playing a very important role here as the short releases are supported by it as stated by Alba, et.al, (2014).The CM is also supporting the workspaces, the merging and their branching, the building process, which is continuous.

Figure 4: Secondary Method

(Source: Boehm&Turner, 2005)

Automation to metrics and roles of CM all are supportive towards the application of CM in an agile environment and also gets certain benefits from it. Boehm&Turner, (2005) states that there are many challenges which are faced by the management when they apply the configuration management to their processes. The organizations which have a traditional development process face more problems regarding this application of CM. The agile development of the software in the traditional settings leads to the contradictions and the conflicts. The managers of these traditional development organizations and the developers give their views and their issues regarding the problem which they face while practicing CM in agile environment. There are two types of views regarding the application of the CM in such agile environment. As stated by Sellers, et.al, (2014) some are of the opinion that in case of the standalone and small projects the application of configuration management leads to less problems and the burden of its application is lesser. The CM is more synced and tuned in the small projects with the requirements of the software development organization and the industry at a large (Lindkvist, Stasis & Whyte, 2013). The development is taking place rapidly and to maintain the pace the CM is applied in such settings. There are many changes taking place with which the CM is able to adjust and cope up very fast. The needs of the software industry are also very high which is again managed by the CM. However, many other developers and managers are of the opinion that the approach of configuration management in the agile situation leads to many problems. According to Fuggettaand Di Nitto (2014) the hindrances of application of CM arise in case of scale and also in scope for larger organizations. There are many issues which need prompt resolution. There are several conflicts in development process, issues regarding business process and also conflicts or clashes with people. In larger organizations, the problem is faced regarding the application of CM as they create a burden on the developers and managers.

Research Methodology

The research philosophy which has been applied here is that of interpretivism. In case of secondary research it is believed that interpretivism philosophy is most effective as experience fetches more reliable data for research. The research is mainly based on the perception of the researcher.

Figure 5: Research Philosophy

(Source: Lindkvist, Stasis & Whyte, 2013)

In this research, the approach is of deductive method. In deductive approach the main advantage is that it gives a generalized interpretation first while gradually moving towards the case specific outcome and interpretations.

The research type is very important as the source of the data is impacted by this. In this case as we conduct only secondary research the research type is significant for choice of the source.

The technique of data collection in this research is surfing the internet and finding online sources. The articles and journals have been reviewed and researched. The secondary research and its conclusion is completely dependent on the papers and the data used and so the researcher needs to be very careful during the selection of sources.

In this research it has been found that the CM plays a vital role in the comparing between the major requirements and the final deliverables (Koppenjan,Veeneman, Van der Voort, Ten Heuvelhof&Leijten, 2011). The inventory and the requirements of the projects are compared by CM. There are many extra characteristics which are made a part of the projects but are not always identified. The application of CM under such circumstances is very effective. The additional features or the alterations to the value chain are investigated and found by the CM (Abrahamsson, Salo, Ronkainen&Warsta, 2017). The building is done continuously but there are times when there are defects in the process. In such cases the buildings are broken and the recovery needs some time. This time that has been taken in the recovery of the builds that are also into consideration in case of the configuration management. There are many builds which occur continuously and the track of the exact number of builds is taken care of by the CM. At times extra processing is done in case of building which is kept a track of byconfiguration management. The migration path and the processing is monitored and identified by CM (Whyte, Stasis &Lindkvist, 2016). The downstream process is also facilitated by the CM application in the agile environments.

The section will provide a real life example of configuration management that has been applied on system life cycle. According to Kaariainen (2007), product development is defined as a procedure that helps to transform the description of an abstract system to a concrete commodity. The stages through which systems pass are represented with the help of the system life cycle. In this case, configuration management acts as the support procedure to initiate product development. It helps to detain as well as manage the artefacts that are created and applied during the product development procedure. The case study reflects on the fact that it has become imperative to comprehend how CM maps with the software development life cycle stages to comprehend its association with the software development activities. Kaariainen (2007) stated that SCM has emerged as a different discipline during the 1970s. The outdated commodities that has been composed on the basis of mechanical entities includes additional software. Software development as a part of an engineering activity has turned out to be very complicated. Kaariainen (2007) reflected on a real-life example that illustrates about that is related with adapting CM for development of a software project. The development has been regarded as a part of a larger project that deals with software. In real life the characteristics of hardware and software co-design is both iterative as well as experimental. The software development includes multiple types of components rather than just product documents. The radio stations witness issues related to their maintenance, as they possess enduring duration. The configuration types of products that have been created possess diverse types of components that include text documents, source as well as diagrams. In order to help the proposal of CM, it is imperative for a company to include existing templates as well as procedures that includes pre-installed CM tool.

According to Kaariainen (2007), in real-life CM is used for small projects that makes us of agile development guidelines to create a software system. This helps to manage the research data as well as documents. The software development has mostly been organised around a single project that works physically in a sole location. Software has been developed by the project that has been followed by an agile-based development technique. However, this led to challenges in terms of rapid-paced as well as iterative development. The aspect of the case study method restricts the generalization of consequences. The aspects of the case study has been however valuable while looking for configuration management solutions for projects functioning with an identical contexts. Practical CM solutions have stressed for agile projects puts focus on automation as well as simplicity in order to provide support to the rapid-paced development.  () stated that projects makes use of diverse types of third party software that includes tools, compilers as well as software elements. While using the third party software multiple challenges takes place that gets related to the versions of these entities. In real-life it is imperative to make sure that all development teams gets access to the right versions of the elements to get rid of problems in integration. The CM activities that are simpler, comprises of a system that deals with a single customer. On the other hand, the CM activity that involves multiple environments examines a contemporary observable fact within its real-life scenario. In the real-life the major responsibilities as well as procedures that are put forward by the CM planning has been mostly described in the plan document of the CM. A generic template of the CM has mostly turned out to be a broadly accepted basis for proposing the original CM procedures. Initially the CM planning as become a part of the development of the complicated systems that has been usually segmented into multiple interconnected projects (Kaariainen, 2007). The companies that did not possess an existing policies for the CM, however the CM templates are known to provide a pre-defined basis for the initial proposal activity. The formality of the CM in the agile environment also differs both in large as well as small projects. In other words, in case of the small project the CM procedures are usually less formal. The change in the operational environment of the project necessitates the requirement for tools in order to adopt the CM practices as well as tools that will support on the fly. A general CM template more often than not has been referenced in literature is IEEE Std-828 (1998). In case of the small projects, less formal practices are required where only an individual will be responsible for the coordination of the CM activities. However, in all situations the principles of CM remain the same. In case of a traditional environment the application of CM is different while in an agile environment it is being adjusted so that developmental pace is maintained. The management of interfaces in the real life deals with unmanaged interfaces that mostly leads to difficulties in the integration stage.

Conclusion

The success of any methodology of software development is dependent or at least to quite an extent impacted by configuration management. The principles of the configuration management as applied under an agile environment make it certain that the product, which is under the process of development, will be integrated. The configuration management may find other ways of implementation under such an environment. The value stream is integrated by the apt application of the CM under the agile environment. Thus it can be said that the CM application in agile environment is effective in the smaller projects while in larger projects they need more adjustments. In a small project, less formal practices and a simple CM tool are passable. In a large project, procedure and clear household tasks for the CM activities are required. The basic CM activities require to be proposed for the identical projects.

References

Abrahamsson, P., Salo, O., Ronkainen, J., &Warsta, J. (2017). Agile software development methods: Review and analysis. New Jersey, United States: McGraw Hill

Aiello, B., & Sachs, L. (2010). Configuration Management Best Practices: Practical Methods that Work in the Real World. New Jersey, United States: Pearson Education.

Alba, A., Alatorre, G., Bolik, C., Corrao, A., Clark, T., Gopisetty, S., … & Noll, D. (2014). Efficient and agile storage management in software defined environments. IBM Journal of Research and Development, 58(3), 5-1.

Ambler, S. W., & Lines, M. (2012). Disciplined agile delivery: A practitioner’s guide to agile software delivery in the enterprise. New Jersey, United States: IBM Press.

Boehm, B., & Turner, R. (2005). Management challenges to implementing agile processes in traditional development organizations. IEEE software, 22(5), 30-39.

Cobb, C. G. (2011). Making sense of agile project management: Balancing control and agility.New Jersey, United States: John Wiley & Sons.

Fuggetta, A., & Di Nitto, E. (2014, May). In Proceedings of the on Future of Software Engineering. London: United Kingdom: ACM.

Highsmith, J. R. (2009). Agile project management: creating innovative products. London, United Kingdom: Pearson Education.

Kaariainen, J. (2007). Practical Adaptation of Configuration Management: Three Case Studies. Finland, UK: VTT publications.  

Koppenjan, J., Veeneman, W., Van der Voort, H., Ten Heuvelhof, E., &Leijten, M. (2011). Competing management approaches in large engineering projects: The Dutch RandstadRail project. International Journal of Project Management, 29(6), 740-750.

Lindkvist, C., Stasis, A., & Whyte, J. (2013). Configuration management in complex engineering projects. Procedia CIRP, 11(5), 173-176.

Mohan, K., Ramesh, B., &Sugumaran, V. (2010). Integrating software product line engineering and agile development. IEEE software, 27(3), 48-55.

Moreira, M. E. (2010). Adapting Configuration Management for Agile Teams: Balancing Sustainability and Speed. New Jersey, United States: John Wiley & Sons.

Schonwalder, J., Bjorklund, M., & Shafer, P. (2010). Network configuration management using Netconf and Yang. IEEE communications magazine, 48(9), 98-110.

Sellers, R. E., Guillot, J., Carter, G. H., Atkins, N. W., Pausback, N. J., Engle, M. R., … & Ballard, W. H. (2014). U.S. Patent No. 8,725,853. Washington, DC: U.S. Patent and Trademark Office.

Whyte, J., Stasis, A., &Lindkvist, C. (2016). Managing change in the delivery of complex projects: Configuration management, asset information and ‘big data’. International Journal of Project Management, 34(2), 339-351.