This is a fictional use case to demonstrate how the teams feature might be used.
Bob plans to launch an internet connected vacuum cleaner company. In addition to selling the vacuum cleaner, Bob is planning a vacuum cleaner service. The vacuum cleaner service will use a device with an nRF91 chip to report the status of the dirt bag and automatically order new bags when the bag is detected as full. The initial service will be just this simple bag full feature but Bob has ideas for future new features such as energy usage and reporting cleaning time.
Bob plans to use nRF Cloud to develop the vacuum cleaner firmware. His development team consists of five engineers and each of them will be using an nRF9160 Development Kit (DK).
In addition to the vacuums, Bob plans to offer his customers a free vacuum app on both the Android Google Play store and Apple App Store so that users can see various statistics about their vacuum habits and enable various features. Bob has hired an application development company to develop the phone applications.
Bob's company is a startup with a handful of employees with backgrounds in hardware, firmware and production, so initially he has decided to use nRF Cloud as his Internet of Things platform.
Bob is planning to test the FOTA and certificate management features of nRF Cloud during the development phase. Bob has negotiated a connectivity deal with a nationwide cellular provider which will supply the SIMs pre-activated for the vacuum cleaners.
Bob creates an account on the nRF Cloud portal. He then creates several Teams using the Create Team function. Each team will include a set of employees of one or two companies devoted to one aspect of the product. Bob has the admin role on each team.
- Device Development: the 5 engineers (initially) developing the devices to be installed in the vacuum cleaners. At first, they will connect nRF9160 DKs to nRF Cloud. As development progresses, they will connect prototype and production vacuum cleaner devices to nRF Cloud.
- User Application Development: the app development company's engineers who develop the phone apps.
- Product Assembly: the technicians who program and test the PCB devices, and the factory technicians who assemble and test the PCBs in the deliverable products.
- Production Device Support: the product maintenance and upgrade team provided by a third party company experienced in supporting IoT-based products. They handle problems shown by devices in vacuum cleaners in the field, engaging Bob's engineers when necessary.
Device development team
Bob uses the nRF Cloud portal to send invites to the tech lead and a backup person from his engineering team to become admins of the team he names Device Development. These two people accept their invites by clicking the links in the emailed invites they receive.
The tech lead creates device groups within the team, named:
- Development kits
- Release Candidates
The tech lead invites the other engineers to the team with the editor role, and assigns each of them to all of these device groups. As editors, they can add, remove, rename, and manipulate devices attached to their team the same way that the two admins can, but they cannot invite other people to join the team, remove team members, nor change anyone else's device group assignments or role.
The engineers developing the devices collaborate with the user application engineers to coordinate front and back end device usage. The device development admins invite the app developers to join the device development team in the viewer role. This role allows their apps to collect an inventory of the devices and to receive data from devices. While their apps will also allow sending messages to the devices to enable/disable their sending of data, those messages are out-of-band of the nRF Cloud system, so they do not need editor-level access to the devices. This prevents them from accidentally deleting or changing devices.
The device developers do not want the app developers to use unstable versions of the product, so the admins assign the app developers only to the device group named Release Candidates. The app developers and their apps cannot access devices in the other groups.
A device developer may program new release-candidate firmware on a device using nRF Cloud FOTA services that currently has prototype-level firmware. After the firmware is updated, the developer (as an editor) can ask an admin to re-assign the device from the Prototypes device group to the Release Candidates device group. The app developers can then use it.
User application development team
Bob's company will periodically provide new release candidate and production-level devices to the app development company to use for their own app development, independently of Bob's engineers. The app company provides Bob the emails of two employees who will be the admins of the nRF Cloud team named User Application Development that Bob created. Bob invites them as admins of that team. After those admins join the team, Bob then removes himself from the team.
The app company's admins invite the other app developers as editors or viewers as they see fit. They create device groups to arrange their devices as they see fit.
Occasionally a device acts strangely, and they need to show one of the device developers to get their advice. At the time they set up their team, they invite one of the device developers to the team as a viewer. They also assign him to a device group that contains only the device(s) they need the device developer to see. Whenever they need to show something, the device developer switches their current team view to the User Application Development team. He can see those devices exposed by his assigned device group and collaborates with the app developers to diagnose the issue. If the device developer needs help from a co-worker, he asks one of the app developer admins to invite the co-worker to join the team. When the co-worker's access is no longer needed, the admin removes them as a team member.
The Product Assembly and Production Device Support teams are set up similarly, with collaborations as needed.