Orion is not just another set of developer tools. More broadly, Orion is a way of doing software development on the web. Such development invariably uses a wide variety of tools, services, and web sites. Some of these tools and services will be hosted on an Orion server, others will be hosted elsewhere -- possibly along with a small bit of glue code to facilitate integrating them with other Orion tools. As such, there are many different ways to "use Orion". This document attempts to capture some of the basic Orion usage workflows that we intend to focus on in 2011.
To facilitate discussion of these different uses of Orion, here are some proposed Orion user personas. Feel free to flesh these out with more detail, or add others.
Before Orion came along, Nathan's traditional workflow was to copy the site contents to his Ubuntu desktop using Filezilla (SFTP), and then use local development tools such as vi, grep, etc. He would "test" changes by pushing them directly to the live server. If a change felt risky he would create a separate copy of the web page for testing, then push that test page to a separate URL on the live server with no links to it.
Now, Nathan does all his development on orionhub.org. He imports his site into an OrionHub workspace via SFTP. He then makes all his desired changes, and launches a local site within Orion to preview the changes. Once he is satisfied with all changes he pushes them back to the live server via SFTP. He has upgraded his issue tracker to be a "TODO" folder in his Orion workspace, which helps keep the information in one place regardless of what computer he is using.
Before Orion, Ellie used the git command line to pull changes to her MacBook, where she used a combination of TextMate and browser debugging tools to develop her library. After running her test suites in a variety of browsers she would push changes back to GitHub for the community to grab the changes.
Now, Ellie keeps a Git clone checked out in her OrionHub workspace. She pulls changes from the GitHub clone as needed. She uses the Orion editor and a couple of lint tool plugins for development, and the integrated js-test-driver for running her tests. Once she is satisfied with a set of changes, she commits to the local Git clone on OrionHub and then pushes the changes to GitHub.
Principle Tooling Requirements
Here is what each of the user personas needs most from Orion:
- Global search
- SFTP import/export
- A way to test changes without delivering to live server
- Tools for managing and running JS test suites
- Basic Git workflow: clone, log, status, push, pull
- Global search
- Ability to use a combination of browser-based and traditional desktop tools