Keywords

1 Introduction

Agile methods widely accepted by the software organization in reaction of heavyweight software development processes. Agile software development(ASD) respond to the changes, people collaboration and working software instead of emphasizing on bureaucratic and upfront planning [1]. Many classical software development activities can align with agile software development such as requirements, architecting, coding, testing and deployment. However, researcher have doubt that practitioners do not pay the sufficient attention to architectural activities in agile software development [2, 3]. Software architecture and agile related research reports two extreme views [4]: First, upfront design and SA evaluation are highly time and effort consuming activities therefore you don’t need to go with architecture centric activities, refactoring would help to resolve most of structural problems [2, 5]. Second, the proponent of SA is sure that the sound architectural practices (SA analysis, design, description or documentation) cannot be followed completely in agile software development, which may effects on the project quality. Naturally, a question arises then what happen with architecture in agile software development?

In recent years, a good number of studies have investigated the architectural related challenges and solutions in agile software development [59]. These studies focus on different perspective of software architecture for example a study of Boehm identify the organizational and technical challenges that involved in integrating the traditional and agile software development process [8, 10]. Acuna et al. reports agile methods do not pay sufficient attention to the architecture centric activities as compares to traditional process so that’s we could not found the significant guidance on SA activities in agile context [11]. MA Baber identifies the architecture related challenges and issues which agile teams could face. It has been observe that, architects should have the sound skills and knowledge about implementation domain [12]. Boehm argues for hybrid approach for agile architecting and development. According to him, combine the necessary characteristics from agile and plan driven development for projects implementation.

The aim of this research is to empirically investigate: how software architecture and agile used in combination and how architecture emerge and evolve in agile software development.

2 Problem Statement and Motivation

Software evolution may analyze through different ways; for example releases histories, source code analysis and architecture analysis. This proposes research plan focus on architecting activities evolution and emergence in agile software development. First, software architecture provides the base to software system [13]. Second, the architecture of software system presents the high level structure and behaviors of the system which are expected to evolve with passage of time [14] and provide bases for evolution [15]. Thirdly, it is supposed to be agile and software architecture is proponent to each other. For example, if teams spend too much time on software architecture it may possible working software may delay. If teams pay little time to SA then the team may face high risk of system failure (how much upfront). Fourth, SA and agile combination received the significant consideration in recent years for research but there are very less number of studies that consider the architecting activities emerge and evolve [16]. Therefore, we decided to come up with following problem statement.

Problem statement: “How does architecting activities emerge and evolve in agile software development?”

Software architecture consists of numbers of activities that explain the process and stages of software architecture. We have select following activities from systematic mapping study [16] and formulated in a questions for our proposed research.

RQ 1: :

How does an architectural significant requirement are identified and maintain in agile software development?

RQ 2: :

How does architectural solutions are be provided for ASRs in agile software development?

RQ 3: :

How does scenario base architectural evaluation (AE) is conducted in agile software development?

RQ 4: :

How much detailed design is enough in agile software development?

RQ5: :

How does architecture emerge and evolve in agile software development?

RQ6: :

How does architecture maintain in agile software development?

RQ7: :

What are the possible benefits of architectural recovery (AR) in agile software development in term of quality time and cost?

RQ8: :

What are most useful architectural views are being used in agile software development and why?

RQ9: :

How does Architectural Understanding (AU) is used to comprehend the architectural elements (e.g. architectural decisions) and their relationships in an architecture design for agile software development?

RQ10: :

Does Architectural Impact Analysis (AIA) really have worth in agile software development?

RQ11: :

How does existing architectural reusable components such as architecture frameworks, decisions, and patterns are used in agile software development

RQ12: :

How does Architectural Refactoring (ARf) is happen in agile software development?

3 Description of Proposed Research Methodologies

Architecture is very much depended on architect and teams so we need to investigate the people and there interactions over the process (architecting in agile). We are covering major architecting activities in agile software development that may identify by using different research method. So we have decided to use qualitative and quantitative research (where required) method for evaluating our research questions. We will design the case studies, survey and semi structure interview for exploring the practitioners experience about architecture evolution in agile software development. We may also use the experiments for particular architecting activities such as in architecture evaluation.

3.1 Survey

Considering the objectives of our research and available resources, we could go with survey research method to understand the architectural and agile practices from architecting activities perspective. A survey research method is considered suitable for gathering self-reported quantitative and qualitative data from a large number of respondents [17]. Our survey design will be a cross-sectional. Survey research can use one or a combination of several data gathering techniques such as interviews, self-administered questionnaires and others [18]. Our possible method will be questionnaire as a data collection instrument because we want to obtain the information from a relatively large number of practitioners, many of whom we would not be able to contact personally. Our proposed survey may consist on following activities.

  • Instrument construction and evaluation

  • Instrument deployment

  • Target population identification

  • Instrument deployment

  • Sampling techniques selection and invitation mechanism

  • Data validation and data analysis

3.2 Case Studies

Our proposed research questions may answer through ‘Multiple Embedded Case studies’ from industry and practitioner. Following are the generic outline that may follow for achieving our research goal(s).

  • Devising unit of analysis

  • Deciding case selection criteria

  • Data collection technique and process

  • Setting up population

  • External validity

  • Reporting study limitation

  • Scheduling and

  • Reporting

We are interested to apply both Primary and secondary data collection techniques on collected data. Our data may consist of on field notes, audio recordings of meetings and discussions, photographs and copies of artifacts. We will apply the triangulation approach to incorporate multiple vantage points. We can achieve this diversity by using different data sources and types, and by engaging multiple observers. Additionally, we are interested to discuss our findings with the respective teams for initial verification.

3.3 Semi Structure Interviews

Architecture is very much depended on architect and teams so we need to investigate the people and there interactions over the process (architecting in agile). Semi structure interview is good technique when depth is required for particular phenomena. Interview question will be design before taking the interview from participant(s). It would not be not necessarily to ask questions in same order as they are listed. So we would ask the questions according to situation. Further, semi structure interview allow ‘improvisation and exploration’ in study subject. During the interview session, we will record the participant response in audio/video format and we will take the notes where things need to write. Our focus would be, how individuals/team qualitatively and quantitatively experience about architecting activities.

Our potential participant would be experienced architect, senior developer, team leads and those who have significant development experiences in agile way.

4 Data Analysis Method

Data analysis methods are different for qualitative and quantitative data. Our collected data may consist of large amount of qualitative data, so we are decided to analyze this data through constant comparison method that originally presented by Glaser and Strauss [19], it has been practically explained by the some other [20]. We will use the guide lines that has been presented in [20] for constant comparison method. Steps involved for our data analysis are

  • Preformed coding field notes periodically

  • Grouping into patterns according to code

  • Writing of field notes

For quantitative data, analysis may include descriptive statistic (mean values, standard deviations, histograms, scatter plots etc.), correlation analysis, development of predictive models, and hypothesis testing [21].

5 Future Agenda

This research study could provide information on the issues of agile architecture co-existence including how architectural analysis and description change over the time? Further, this study would also be exploring architectural models evolution on different level, particularly on system level. This could be beneficial for analyzing traceability between changing requirements, features and architectural model to improve the evolution process. Furthermore, this study would also be analyzed the architectural and design pattern evolution, this would expectedly heighten the awareness about different kind of design and architectural practices and there possible threats in agile software development. To the future researchers, The result of this research can provide the baseline information for architecting activities frameworks for agile software development, expected evolvable dimensions of the software system, methods that may help for minimizing the architectural and agile co-existence issues and architectural technical debt in agile software development.