# Naught to productivity > [!tip] On improving the Ubuntu Desktop provisioning experience ## Introduction In this post, I’ll share my thoughts on how we could improve the Ubuntu desktop onboarding experience. Everything here is an exploration. Some, all or even none of it could happen. So, take this for what it is: exploratory. Finally, these are my thoughts, not my employer’s (Canonical). When philosophising 😂 the installation of a desktop operating system, my thoughts turn to the process I’ve undertaken countless times: downloading an ISO, burning it to a thumb drive, searching through UEFI settings to disable Secure Boot, and finally, clicking through a less-than-pleasant-looking wizard. How typical for an engineer to start with technology and process. But unlike Arch Linux, users aren’t installing for the thrill — it’s a necessity. A means to an end. Users install because they have tasks to complete and installation is merely a hurdle to overcome and be forgotten. It’s not about the technology or the process , it’s about the user and their tasks. When I adjust my thinking to accommodate this reality, I realise that focusing on the technology and process of copying files from thumb stick to machine is a mistake. Yes it’s a necessary consideration, but let’s widen our perspective and address the real challenge here: transitioning users from nought to productivity. ![](https://miro.medium.com/v2/resize:fit:1400/0*r8iD3udX1MV9xaa7) Photo by [Marten Bjork](https://unsplash.com/@martenbjork?utm_source=medium&utm_medium=referral) on [Unsplash](https://unsplash.com/?utm_source=medium&utm_medium=referral) ## Apple Prior art is a good place to start and in the design arena Apple is awesome. So, what does nought-to-productivity look like in Apple land? I must reluctantly admit it’s impressive. It starts with captivating product launches backed by beautiful websites. Humans flock to their stores to touch and tinker with incredible gadgets. It’s a bit odd yes, but overall, purchasing from Apple is an experience in itself. I’m convinced they have a team thinking about this 24/7. Now you’ve bought something but it wasn’t in stock. Timely updates flow from their app, and you can add a collection QR to your phone’s digital wallet. The device arrives. Collection is simple and streamlined. Have an existing account? Let’s set that up for you. Want to connect your phone? Oh, I see you have an Apple account so log in and you’re ready to go. No pressure in this process; just helpful friendly advocates. Fast forward a few years and it’s time for a new device. Good news , your data is already synced so migration isn’t even necessary anymore. ## Privacy and lock-in Let’s pause and briefly touch on the inevitable privacy and vendor lock-in concerns. Privacy is important, but that doesn’t imply that a good on boarding experience and privacy can’t coexist. Of course they can. You say vendor lock-in? Well, I say coherent user experience. Perhaps at times we use these as excuses for Linux’s subpar experience. When was the year of the Linux desktop again? Free and open source cannot be the end unto itself. Technology is a means to an end and so we have to recognise that the ends are something else entirely. But that discussion is a different rabbit hole so best I pull back to helping that user get to these ends. I’m confident we can overcome these challenges while respecting privacy and providing choice. This doesn’t need to be a tedious, clunky experience; it can be well-thought-out, polished and almost as much fun as installing Arch Linux or nixOS. ![](https://miro.medium.com/v2/resize:fit:1400/0*L3mlGhZFghD7sJHf) Photo by [Alexander Andrews](https://unsplash.com/@alex_andrews?utm_source=medium&utm_medium=referral) on [Unsplash](https://unsplash.com/?utm_source=medium&utm_medium=referral) ## What could some better building blocks be? Unbounded problems are unwieldy so best to bound the problem in some dimensions, but perhaps confusingly, loosen it in others. We want to help users get to productivity, but we kind of also want to help users transition to a new machine in time. It’s a ongoing and circular process. Let’s call this ‘provisioning’ because that’s vague 🙂 but broader than ‘installing’. For the sake of discussion lets consider provisioning to be the process in taking a blank computer through to productivity. ## Stakeholders It’s probably helpful to identify stakeholders next: OEM customers of course, public downloaders — that’s probably you my-dear-but-non-existent-reader — downstream flavours, maybe soon-to-be core desktop users, Raspberry Pi hobbyists, and those fortunate individuals in education or corporations handed an Ubuntu laptop. Shout if I’ve missed you! ## Let us now attempt guiding principles - **Efficiency and Cohesion**: Resources are finite and painfully so in free software. Let’s strive to consolidate functions and minimise duplication where possible. - **Declarative Configuration**: Instead of dictating how each stage should be implemented, we can let stakeholders describe the desired end-result then lean on tooling for execution. Declarative configs work awesome in many places so if you haven’t had a tinker it is worthy of your time. - **Customisation**: We should be able to handle bespoke requirements at each stage of the process. After all, what works for you doesn’t necessarily work for me. - **Ubiquitous Language**: We need a common language and shared terms because those are prerequisites to collaboration. - **User Experience First**: Let’s always come back to user experience, keeping in mind what matters, not what is technically fun. This is for you, the silent majority. ## Stages from nought to productivity 1. **Image Creation:** We need to create images efficiently and also allow for customisation, such as white labelling, specific drivers, bespoke package lists, embedded enterprise configurations, and so on. This and more should all be supported when creating images. Let stakeholders describe their desired state in a declarative fashion and then lean on tooling for the magic bits. 2. **Device Bootstrap**: With the image ready, it is time to bootstrap the machine. Many users don’t ever see this step because it’s done in the factory. So, we’ll want to transition to the next step with minimal fuss and delay certain user input until later. While we’re here, lets avoid multiple implementations of the same function by lifting steps to a common-to-all stage (looking at you User Creation, Theming and I’m sure there are others). 3. **First Boot Initialisation**: Okay the computer boots without the thumb drive, but it’s nameless. Let’s name it, create the user’s account, set locale, specify the theme and tweak privacy settings. For you advanced users, maybe you have a configuration file that lists apps and settings, so let’s allow importing and applying that declarative configuration. This feels better. 4. **Desktop Welcome**: Wow, that was straightforward, uniform and fast and now we’re greeted by a warm and welcoming message celebrating the countless contributors to free open source software. Let’s get out of the user’s way ASAP, and maybe end by nudging a visit to the App Store to discover awesome free and open source software. 5. **Post Provisioning Hooks**: Some time later, lets check back in with our dear user. Maybe we want to ask if they’re comfortable sharing telemetry, because by now, their setup has stabilised: external monitors are connected, Bluetooth devices are paired, and apps are installed and configured. Lets move from anecdotal arguments to data drivern distributions! ## Summary Whew you made it! Let’s name this for what it is: an exploration of what better could look like. On one hand, not everyone will see this as a better approach, on another hand some will, and on yet another hand there will be event better variations. This should be viewed as an evolving discussion with iterations part of the process. As we embark on this journey, your constructive thoughts, experiences, and general feedback are welcome. After all, it’s our collective insights that will lead us to a more refined Ubuntu Desktop experience. Personally I like where this is heading, but what do you think?