We began exploring options for consolidating the non-user interface portions of 1Password into a single codebase that we could insert into each of our apps. This continued until about three years ago when Jeff Shiner, our CEO, pulled all the leads together and effectively said, “This is ridiculous. We kept advancing our apps with cool new features, but we weren’t advancing our service-based features. Maybe in a few weeks?” And that estimate of a few weeks was different for each team. Each time our server team lead would come to the client leads and ask us how long until we could support some new feature, each of us said the same thing: “Now’s not a good time, we’re busy. Four teams that were still operating independently. However, with four full stacks of client implementations of our server APIs, any changes needed to be coordinated across four teams. We could build new features and roll them out across all our apps quickly, easily, and simultaneously. One of the things that we were the most excited about with our own hosted service was that we were going to be able to move so much faster. Nonetheless, we shipped support for our new service across four platforms and things were good… for a while. We did a much better job documenting those APIs and file formats, but in the end we still delivered them to the Windows and Android teams, pointed them at what we’d built for the Apple apps, and sent them on their way to build it into their apps. Once things were stable they came to our iPhone app. ![]() The first version of the client/server application programming interfaces (APIs) were first built and refined using 1Password for Mac. History repeated itself six years ago when we introduced our hosted service,. This way of working wasn’t ideal, and it certainly wasn’t a bastion of cooperation and coordination. If I saw a new feature or improvement I thought we should add to one of my team’s apps I would do so, but in isolation from those other teams. When I was leading the iOS team and later both the Mac and iOS team, I would routinely find out about things the Windows and Android team had done when I read about it on our blog. Meanwhile, the Android and Windows developers did the same, but in a manner that was very siloed from the other platform developers.Īs time went on and those teams grew, that separation and mode of working remained largely the same. They added features, shipped updates, and continued on the path of making great software for Apple’s platforms. While that was happening, the original team went back to working on the Mac and iPhone apps. They were given the file format specification, shown the Mac and iPhone apps, and given free-rein to create a 1Password app for their platforms. Not long after, we expanded to include Windows and Android, hiring a developer for each of those platforms. At that time syncing your data across devices was largely relegated to using Dropbox to host an encrypted 1Password file that could be read and updated by any of your 1Password apps connected to your Dropbox account. When Apple announced the iPhone SDK that same team moved on to that platform and created the first version of 1Password for iPhone. ![]() The first version of 1Password was a Mac app with a small team of four dedicated to it. This weekend project quickly took over their day job and spawned a whole company and industry. They got tired of manually filling in usernames, passwords, and contact information to test the sites they were building and figured they could build a tool to automate that. The very first version of 1Password was built by Dave and Roustem as a weekend project to help them with their day jobs of building websites. With a fifteen year history, 1Password has seen a lot of changes across all our supported platforms, but the way we’ve built our apps has largely been the same over those years.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |