Promises and Challenges of Microservices: an Exploratory Study

Interview Study

Data Analysis Process

For open coding, two of the authors of the paper independently read the transcripts line by line and identified concepts - key ideas contained in data. When looking for concepts, we searched for the best phrase that describes conceptually what we believe is indicated by the raw data. On a weekly basis, all the authors met to discuss the identified concepts and to refine and merge them if needed. That was done using card sorting: each card represented a quote labeled with the concepts, and we grouped the quotes and refined the concepts, as needed.

Categories Identified in Interview Study

drawing

Survey Study

Survey Questions

The survey consisted of 13 groups of questions and a total of 38 questions of mixed types. Most of the questions were single or multiple choices, numeric range choices, yes/no options, and open-ended text entries.

In addition to the microservice background and demographic information, we asked questions related to architectural concepts, infrastructure, and code management. In each question, participants had a chance to either agree or disagree with best practices identified during the interview study, or identify their solution for a particular challenge. We also asked participants to distinguish between the solution they apply in practice (what they do) and their perception (what they think they should do).

Here is the list of survey questions:


Q1: How long have you been developing microservices? [Number entry]

Q2: In your most significant microservice-based development project, how long has the team been developing microservices? [Number entry]

Q3: How many members are there in the team? [Number entry]

Q4: How many microservices does the team develop and maintain? [Numeric range choices]

Q5: How many microservices do you typically work on? [Numeric range choices]

Q6: Are you working on commercial or open source project? [Single choice]

Robust logging and monitoring systems are critical for efficient microservice-based development.

Q7: To what extent do you agree with the above statement in general? [Single choice]

Q8: In the context of your project, when did you set up logging and monitoring? [Single choice]

Q9: In the context of your project, what information is being logged? [Multiple choice]

Q10: In the context of your project, what is the logged information used for? [Multiple choice]

Distributed tracing is critical for microservice-based application development and maintenance.

Q11: To what extent do you agree with the above statement in general? [Single choice]

Q12: In the context of your project, when did you set up distributed tracing? [Single choice]

Automating the microservice setup process (e.g., automatically generating a microservice skeleton and plugging it into the entire product) is critical to save development time and costs.

Q13: To what extent do you agree with the above statement in general? [Single choice]

Q14: In the context of your project, when did you automate the microservice setup? [Single choice]

Q15: In the context of your project, how did you define the granularity of microservices? [Multiple choice]

Each microservice can be developed using its own programming language.

Q16: To what extent do you agree with the above statement in general? [Single choice]

Q17: In the context of your project, do you regulate the use of programming languages? [Single choice]

Each microservice should be owned by a specific person or team.

Q18: To what extent do you agree with the above statement in general? [Single choice]

Q19: In the context of your project, do you identify microservice owners? [Single choice]

Q20: If you specify service owners, what are their responsibilities? [Multiple choice]

In microservice-based development, some code is shared by multiple microservices, e.g., the code of authentication, logging, and monitoring.

Q21: How should one manage such common code? [Single choice]

Q22: In the context of your project, how do you manage common code? [Single choice]

Different customers might get a different variant of the developed product.

Q23: How should one implement such variants? [Single choice]

Q24: In the context of your project, how do you implement variants? [Single choice]

Q25: In the context of your project, how do you manage API changes? [Multiple choice]

There are currently more than 200 free and commercial tools in the Cloud Native Interactive Landscape website for supporting microservice-based engineering. Moreover, new tools are frequently developed and become available.

Q26: In the context of your project, are you actively evaluating new tools or plan to do so in the future? [Single choice]

Q27: What is the next big challenge for microservices? [Text entry]

Q28: Any additional comments / suggestions you want to share with us? [Text entry]

Q29: Did you participate in our earlier interview study? [Yes/no option]

Q30-Q37: The following questions are intended to collect demographic information about the survey participant. The questions are fully optional but your answers will be highly appreciated.

1) How long have you been working in industry? [Number entry]

2) Which company do you work at? [Text entry]

3) How long have you been working at the company? [Number entry]

4) What is your job title? [Text entry]

5) What type of application are you developing? [Text entry]

6) What is your age? [Number entry]

7) What is your gender? [Single choice]

8) What is the highest degree that you have received? [Single choice]

Q38: If you would like to receive the results of the study, please fill out your contact information. This information will only be used to contact you with the results. It will not be associated with your other input during data aggregation.

Name : [Text entry]

Email : [Text entry]

Thank you very much for taking the time filling in the survey, we sincerely appreciate your help!


Survey Results

We received a total of 185 responses; 61 of them were complete (completion rate: 33%) and 37 satisfied the same participant selection criteria we applied for interview study: at least two years of microservice development experience.

Mapping Concepts to Quotes

Concepts that discuss problems, practices, or concerns around same topics were grouped together to form categories. Our mapping of number of quotes -> concepts -> subcategories -> categories is below. We only include concepts that were mentioned by at least three interview or survey participants. In the mindmap, concepts reaching the threshold of 3 participants after the analysis of the survey results are marked in blue.

Digial version can be downloaded here.