March 6th, 2016 | Published in this mortal coil
Oh, feature creep.
So, last I wrote about it, I’d put together this little prioritization tool based on some thinking I’d done about priorities. I reused a bunch of code from a previous project to get to a sort of “good enough” state.
Then I started thinking about the ways you could extend that model into a bigger environment, like a company, which has several organizational levels besides “teams.” So I did a huge cleanup of the legacy code in Priorities and started work on something that would be more appropriate to modeling goals in a really large environment.
In the end, though, I realized a few things:
- I don’t really own that other project anymore. I mean, it’s “mine,” but I’m sharing it with people who’d like to do more with it.
- The places I was taking that other tool were being shaped by the company I work for.
- The thing I set out to do with Priorities was meant to be really simple. There are ways to extend the idea, but they leave the tool in a place where it’s harder to approach for someone who isn’t working in the same company as me.
So this weekend I just started over with Priorities. Since I’d been working on an alternate app that needed a bunch of the old Priorities code cleaned up, I had a pretty decent set of models and templates, so it was really easy to reuse a lot of the thinking, but keeping the new version to something quite simple.
The older version of Priorities, the one I wrote from all the legacy code, lives in its own branch now, since I learned at least one person had downloaded it and was using it.
The new version is in a new master branch on the project. For this version, I did a few things:
I changed the “Team” model to “Lists.” Not everybody’s managing a team. You can still name a list after a team, or whatever you like, but by talking about “lists,” it’s more of a tool for anybody, from a sole proprietor to a company.
I also began working toward making lists private. The old version let everybody see everybody else’s lists. The new version will still allow that, but you have to go looking. Once I get the basic features polished up, I’ll take a pass back through to require ownership to view a list. Once that’s done, I’ll work on allowing owners to set their lists to be public. For now, the app guides you toward just looking at your own stuff.
There’s a little help if you’re a new user and don’t have any lists set up:
There’s also a prompt once you make a list and don’t have any goals:
If you’re interested in giving it a spin, you’ll need Ruby and Bundler on your system:
sudo gem install bundler(no
sudoif you’re using rbenv or rvm)
- Download Priorities from GitHub:
git clone https://github.com/pdxmph/priorities.git
- In the download directory, install the needed gems:
- Set up the database:
bundle exec rake db:migrate
- Run the app:
bundle exec rails s
- Visit the app in your browser.
Since it’s running in dev mode, it’s going to be sort of slow on load.
The TODOs are pretty simple at this point:
- Do more to ensure the privacy of individual lists.
- Clean out the remnants of the old team model.
- Put it somewhere private but not secret so people who don’t want to run their own instance can use it.
Then there are a few things to think about:
- Adding info pages for each goal.
- Adding notes for each goal.
- Adding back the comparison data for goals.
- Figuring out if there’s value in expanding the user model to have “groups” for shared lists.