We begin our analysis by providing a comprehensive discussion on the background of our respondents. Next, we present an analysis of the quantitative data followed by an analysis of the qualitative data from the interviews.
4.3 Interview Results
After exploring the quantitative results, the interviews aimed to provide additional insights on how agile practices contribute to project success linked to their responses on the survey. Five participants agreed to interviews in addition to completing the survey. A summary of interviewee demographics is found in Table
6.
4.3.1 Suitability.
All interviewees could share positive examples of applying agile methods in IoT development, and as such, there was consensus among them that agile methods can be suitable for IoT development. According to participant A, practitioners usually adapt agile practices and processes to their own needs. Participant B also commented that agile practices are generally adjusted to specific projects, and that additional explanations are often required, as the broader scope of the IoT domain requires people to be knowledgeable about hardware and networking as well as software. Participant B found agile methods to be easier to apply to the software side than the hardware side, because of lead times for hardware, especially when ordering from external parties. Once the hardware design has been created and the prototype is outsourced, there will be waiting times that can be unpredictable. In such cases, an agile approach can still be suitable because Sprints can be swapped in order to continue development even though the hardware isn’t ready. Participant A stressed that IoT development brings an additional level of uncertainty because it is a newer field, and that agile methods can add a lot of value to IoT development by avoiding overinvestment in any one area (e.g., hardware, software, networking).
Participant D had several comments on the suitability of agile methods for IoT development. They commented that when building something new in a new market, agile methods are “perfect,” allowing the development team to be efficient with time and money. Since the project determines if an agile approach is the right way forward, the scope, intake, context, and team should be carefully considered beforehand, especially in more conservative and conventional cultures. The team is an important factor, because when not everyone is convinced of the utility of an agile approach, some people may struggle or retreat, which may be detrimental for the outcomes of the project.
4.3.2 Agile Practices.
Planning and Roadmapping. Participant A, co-founder of an IoT startup in the agriculture industry, commented that sprint planning and release planning reflect the importance of having a plan altogether. Planning may be even more important for IoT development in some aspects because IoT is still new and somewhat undefined, and therefore perhaps riskier. Even the process of creating a plan can be helpful, as it forces clarifying thinking about the required steps and dependencies, which is helpful for organizing where one needs and wants to go. Also, dedicated research ahead of time could help identify some of the problematic aspects of a solution that is being developed, while there is still time to go in a slightly different direction. At the same time, taking some risks is inherent to the IoT market, as trying to develop a differentiating product in the market can be the key to success, especially for startups.
Participant B, overseeing an IoT project in the industrial industry, found the product roadmap to be especially helpful when there are dependencies on external suppliers for hardware and related modules. When developing a new sensor that should be able to operate under extreme conditions, such as vibrations or very high temperatures, the project involves more than creating a performant sensor, because also an external party would have to be involved to complete the validation part. Thus, adding a step involving the certification of a new type of communication protocol or a new type of sensor. In addition, the product roadmap may need to require the customer receiving sales training in order to be prepared for technical questions and end users may need product training. Since these activities can take a couple of months, and product development cannot be pushed forward until the sensor is ready, it is important to have a good product roadmap for planning ahead of time. The usage of a product roadmap may be more important in larger organizations than in startups, where the salesperson, developer, and someone from operations are co-located, and all understand the product well enough to sell it. In particular, participant B noted “In larger organizations, innovative IoT teams should be more predictable, because more people are involved in the product launch and training.” A product roadmap also makes it possible to describe which features the product will have in the first version, and which features will be added to later versions. This adds some flexibility to the exact design and implementation of the product, allowing more input later, and to react to unexpected situations that arise within the team or because of changes in technology.
A product roadmap can also be helpful in managing the scope of the project and the expectations of the customer, participant E explained. For instance, in heavy industry sectors a customer may want to see the online status of all devices, even though this was not included in the contract. Therefore, it is important to be clear about definitions as well, to prevent situations where a customer may take a lot of features for granted under the name of “fleet management,” On the other hand, participant D started making less use of a product roadmap, because the future cannot always be predicted and therefore this is not a silver bullet. Nevertheless, the notion was that there is still value in making use of it to define how the envisioned results will be used, and to motivate stakeholders to work with these results. To come up with a useful product roadmap, good domain knowledge is required to anticipate what a customer or stakeholder may understand under certain IoT terminology.
Commonality in Team and Structures. Participants reported on different aspects of the importance of common baselines in team, spaces, and code. Participant E also pointed out that a single team working on an IoT project, rather than multiple teams, is extremely important to have. When working with microservices, it is often essential to have one very good developer in the backend, one very good developer in the frontend, perhaps an additional full-stack developer, and someone who does not develop but takes care of DevOps on the same team. They continue with “because trying to build a team in which everyone is an expert at everything will not work, it is important to find team members who each add some additional value to the overall team.”
Participant D found having a common work area to be an important practice, as it shows what is being worked on and what should be achieved. Although tools supporting working online can be very good, visualizing what is being worked on to make it more tangible and visible can have a lot of value.
Within a startup environment, it became apparent to participant A that the importance of collective code ownership is shown by not having to rely on any single individual to finish a task, because special knowledge is no longer kept in the brain of one individual. Participant C, active in a larger organization, shared that collective code ownership proves its value by ensuring that the code is peer-reviewed and mistakes can be corrected before releases.
Continuous Integration and Continuous Deployment. One to two people worked on participant A’s project simultaneously. They found using and refining development techniques provides value both during and after the project finished, which played an important role. Some of these techniques are included in the continuous integration practice. They found this practice helped build skills in a toolset that would carry over into future projects such as automated build and deployment processes. Participant D found continuous integration to especially help the environment when working in smaller teams, similarly to Participant A. Moreover, Participant A viewed the automation aspects of continuous integration and continuous deployment as a force multiplier that is helpful especially for smaller companies with limited resources, as the time spent on automation will pay benefits over and over again.
Participant E shared a practical example of how continuous integration adds value to IoT development involving Software-as-a-Service such as Microsoft Azure or similar services. Software-as-a-Service means some functionality is already available. In such a case, single unit tests are often insufficient because it could mean only a single function is tested that calls an individual microservice. Instead, continuous integration includes integration tests across the application. This helps testers understand the bigger picture of what has already been implemented, which can make delivery faster.
Participant C considered continuous deployment to be one of the most important agile practices because it enables constant visibility of how healthy the code base is. This can also create awareness of the system performance and possible performance gaps, so that the quality of the system does not get jeopardized. A comprehensive software test suite within the agile code base can help to accomplish this and to deliver the product.
Unit Testing. Participant A believes in automated unit testing as part of the whole continuous integration process. In particular, with the thought in mind that the sooner a bug is caught, the less costly it is to fix it and the least impact it has. Participant B considered unit testing to be very important, even though a lot of time needs to be spent on it. For extremely complex project chains, unit testing, continuous delivery, deploying and designing infrastructure are essential.
Aligning the Sprint to the Task. Participant E valued sprint planning and pointed out that it is much more than working with tools that enable agile ways of working. People should be educated on how to do it appropriately, and it should focus on the sprint only. Participants C and E both agreed that it is important to look at the requirements and to align on what needs to be delivered after each sprint, since many people work on different parts of the project. Since sprints are iterative, the sprint reviews form a very important and continuous aspect. Participant D found short iterations to work well in IoT environments, both technically and functionally, and considered it to be the modern way of combining software development and product development.
4.3.3 Advantages and Success Dimensions.
As would reasonably be expected from professionals practicing agile development in IoT, there was enthusiasm about the interactions between agile development and success dimensions. One respondent also mentioned that all agile practices are equally important for teams to be productive, while another respondent stated that the mindset and agile way of working in general contribute to reaching budget and time goals. Participant B mentioned that most of the agile practices are equally important because there will be more significant progress when all areas of agile practices are improved upon. Participant D mentioned that agile practices most significantly impacted the time dimension, because of quickly learning what adds value and what does not add value throughout the project; in turn this helps to deliver a result quickly.
Though the agile practices work in concert, some agile practices have a larger impact on success dimensions than others, argues participant B. This is due to team productivity. The productivity of a team could drop very quickly without having a good product roadmap, not having a dedicated customer, or not conducting a good retrospective after a demo of the product. By choosing to do product development physically alongside the people, they know who they are working with and can give immediate feedback, which is also important for productivity.
Participant C, active in the healthcare industry, found agile practices related to software craftsmanship to have a larger impact on quality than management-related agile practices and agile ways of working, such as planning poker. For example, collective code ownership, pair programming, continuous integration, and continuous deployment should all have a positive impact on the quality of what will be delivered. The agile ways of working, such as daily standup, sprint reviews, and sprint planning, may positively impact team satisfaction, because it increases communication between one another. Collective code ownership requires more collaboration between people, while it can also make it more enjoyable for those involved when both people enjoy working in the same environment. This aligns with the results in Table
10 and Table
11 where communication and collaboration are both ranked high.
Participant E made a clear distinction between customer/stakeholder satisfaction, and end user satisfaction, referring to a project where the customer was not really satisfied while the end user found it to be a brilliant platform. Since the requirements are gathered by engineers but the platform is used by the end user, there can be a discrepancy between perspectives of project success, i.e., mechanical/technical functionality versus usability.
4.3.4 Difficulties and Lessons Learned.
Though our interviewees were broadly positive about the use of agile methods in IoT development, they recognized and reported on challenges from their perspectives and experiences.
Participants E, B, and D noted the difficulties in aligning differences in norms across organizational cultures. Participant E remarked on their experience with long-established industrial companies with a waterfall mindset, and the individuals in those companies not being open to making use of agile methods. This can create a mismatch between the agile development team and the customer that leads to friction, especially when a customer does not understand the agile mindset, does not have a product owner, and does not respond to tickets in a timely manner. In such a case, the reality will become a de facto agile waterfall, where the first step is analyzing, the second step is implementing, and the third step is testing. Participant B from the heavy industry sector commented that production is often very traditional and used to waterfall planning. As this often means the team is not allowed to start building before the design has been finished completely, it is recommended to plan building hardware up front. It is also important that the stakeholders understand technical terms as it is often difficult to describe an IoT solution on paper, and stakeholders better understand a solution when they physically see how a sensor works and the data it generates. To allow for some hands-on experience, customers can also be empowered to work with a portion of the data in order to come up with some first ideas of what the solution should entail. Further, stakeholder involvement in demos can help by letting stakeholders understand the complexity of the project, which in turn can lead to collaboration, thinking along in finding alternatives, and setting realistic expectations. Participant D experienced difficulties applying an agile approach in the public services industry when working with legacy systems. This can lead to negative forces, especially if there is a mismatch in cultures when people are used to working with other approaches, such as waterfall methods. In such cases, it is essential that people on a team actually want to work using agile practices, in order not to create any friction within the team.
In line with the survey responses, participant D reiterated the importance of communication. Continuously discussing what has been achieved, should be achieved, and if there are any obstacles, is important, because otherwise topics may be parked and could be put on hold. Participant D experienced how working on a project where all operational people work in the field made it difficult to utilize the daily standup, as not everyone could participate from different locations. Therefore, the focus on the dedicated customer increased, because continuously hearing the voice of the customer and end user was valued even more. Losing momentum here can be a large threat if there is no financial or time urgency, because then older projects will not be resumed. Due to the rapid technological developments with the platforms, sensors, and analytics tools that are being used, short-term changes can lead to struggles with politics and budgets. To ensure that IoT projects do not “slowly come to an end,” after which they may end up being resumed in a similar way but with newer technology, communicating about the opportunities is essential. From these experiences we also see that having a dedicated customer is essential in order to successfully develop an IoT product within an agile system.
Participant B detailed another situation that can arise in the field of IoT: the introduction of newly available sensors that could be researched and tested out. Since techniques, platforms, and architectural principles advance very quickly in the field of IoT, flexibility in terms of the end product is required. If this is done as a side activity, it could be at the expense of completing items that were planned in a sprint. Rather than forbidding these kinds of activities, participant B recommends structurally freeing some time in a sprint for unplanned items. Delivering business value should not be forgotten, however. Although both the customer and engineers may already be somewhat satisfied when something works in the first place, teams should first ask themselves what they are going to build, and how is it going to create revenue, or save costs. This is something that has to be engrained in the team, to ensure that they are working toward reaching a shared goal in the next half a year or year, rather than working on something that may be exciting and interesting but not value-adding. Participant C reiterated that some engineers have a tendency to spend too much time on technical features of a project, such as implementing total custom libraries where the actual added input is not as important. Although this may be seen as important from an engineering perspective, from a business point of view it is not, and so to keep everyone aligned, engineers and the business need to be on the same page regarding project priorities.
Regarding business partner and stakeholder involvement and project architecture, participant B advocated that even if only a small portion of the automated provisioning of a sensor can be completed, achieving a first success can help ask for flexibility on the customer and stakeholder side. It can be beneficial to inform customers up front that things can be very different in the short and medium terms to manage their expectations. Suppliers should also be made aware that certain functions that are the best option today may not even be available anymore in the cloud platform and will have to be migrated to something else. This in turn makes it difficult to define a detailed project architecture, especially if it needs to be approved by an architecture board that may not meet on a weekly basis. In larger organizations, where other topics such as replacing an ERP package or introducing new infrastructure may be on the agenda, updates in the architecture cannot be made quickly and so it was recommended to institute a generic architecture that allows the team to make modifications themselves.
Participants C and E both addressed the role that the physical size of a device plays. The size affects the team’s ability to simulate and test them. For example, in the healthcare sector, working with a lot of smaller devices makes IoT harder to simulate: artifacts are not a web application, but instead are devices that work with different protocols. Therefore, customer involvement plays an essential role to understand and test if the devices act as intended by the customer. Within industrial IoT, the size of end products can also be a limiting factor, participant E noted. For devices that are the size of a car or even larger, there typically will not be a physical test device which means it cannot be properly evaluated.
Another insight participant E stressed is the importance of not neglecting the theory behind everything when focusing on applying an agile approach in a practical manner. For instance, communication protocols are crucial for IoT and there is a great research domain in communication protocols, how to communicate safely, how to communicate serving traffic, and database normalization.
Lastly, participant D observed that although planning poker is being used, it may become tiresome after a couple of months which then also makes it less effective. This aligns with the previous finding that planning poker was rated lower than other agile practices in Table
7, and the recommendation is to introduce a new estimation method to ensure the team stays inspired.