A Great Year for GravityView
2015 was the first full year of sales for GravityView. Over the year, the plugin matured. We filled in missing gaps in functionality like table sorting and added powerful features like the
In 2015, GravityView had 35 update releases comprised of 1,096 code commits representing 222,008 changed lines of code.
I'm proud of where GravityView is today, and I am thankful that I am able to work on GravityView as my main business. I look forward to improving and growing GravityView in 2016.
I hope you will find something helpful in this article. I have learned from the experience of others, and I hope that something in my experience helps or resonates with you.
2015 Revenue & Cost Numbers
I have chosen to share this data because it might affect whether a developer chooses to start their own project.
Here are some numbers for GravityView in 2015:
- $146,535 revenue (over $200k since launch)
47% Interstellar / 39% Galactic / 14% Sol license
1,498 purchases (an average of 4 per day)
- $146,535 revenue (over $200k since launch)
- -$13,942.35 advertising expenses
- -$4,984.54 affiliate payouts
The numbers don't include most expenses, including the contracts of the GravityView team. The plugin was profitable, and I hope to grow the plugin's revenue in 2016. I'm not buying a Tesla, but I'm able to comfortably work on this project.
My goal for GravityView sales in 2016 is to double revenue and double affiliate referrals. I think that's achievable with improvements to the website, the GravityView demo site, and better communication with affiliates.
A Growing Team
The GravityView team has grown this year. I'm still the only full-time person working on the plugin, but I have a great team I can count on, which is a blessing.
- It was great to finally meet in person GravityView's first developer Luis Godinho and his business partner Frederico Leonardo this year when my wife and I visited Portugal. It turns out Luis and I are both very tall—he's 6'7" and I'm 6'8"! Luis continues to be a pleasure to work with and it was good getting to know him better during the year.
- Rafael Ehlers joined the team in August and has been doing an amazing job with support. His kind personality comes through in his communications with customers. Make sure to check out his inspiring essay on HeroPress about how he taught himself the English language, learned WordPress, and became a WordCamp organizer.
- Julie Beynon joined the team in December as GravityView's Marketing and Brand Manager. She has been doing a great job getting our marketing calendar and advertising spending in order.
I would like to grow GravityView in 2016 to support one or two full-time team members (a developer and a support person). I think having a full-time team would help GravityView and it would allow me to relax a bit!
Experiments with Scrum
I was inspired to improve GravityView's business practices after attending Pressnomics last January (I hope to see you at PN4!). I wanted to have a more effective development process, and read about Scrum.
Scrum is a method of development where you have a long list of all the things you want done, and you break in into "sprints," fixed-time development cycles. At the end of each sprint, you are supposed to have a working product. After each sprint, you figure out what went well, what went wrong, and how it could be improved.
I scheduled a Clarity.fm call with a certified "Scrum Master" to learn the ropes of the Agile Scrum system. I spent a couple of days adding all the tasks to our project planning tool, then Luis and I started doing it: "daily stand-ups" (short check-ins) every day, two-week sprints, Retrospectives, the whole deal. We went twelve weeks, and were initially very productive, but a few things happened:
- Scrum wants more people. There should be a dedicated product manager, scrum master, etc. With just Luis and me in the meetings (and for five weeks Gustavo joined us), the separation of roles wasn't good enough. I was Product Owner, Scrum Master, and a member of the Scrum Team. That made the system less clean.
- Contractors don't only work on your stuff. The GravityView team is built on contractors. Contractors are not employees; they can work on what they want when they want, as long as they meet agreed-upon deadlines. This causes a problem where the daily meeting can be discouraging: "Nothing new to report" was often the status because they were working on other projects.
- It's hard to "draw the line". Every sprint, you're supposed to take the list of every feature, organized by priority, and "draw a line" in the list. Anything above that line is what the next sprint will tackle. There are some problems with that:
- We never met our goals. Ever.
- We reduced the scope of each Sprint, and still didn't meet the goals.
- This became really discouraging and undermined the belief in the system. We're not alone in this experience with Scrum.
- It's nice to see your team every day. This was one of the best parts of Scrum: daily video calls lead to more interaction, and I felt like I got to know my team better. That was nice.
- Daily stand-ups are hard when you're not in the same time zone. Luis is 7 hours ahead of me. Gustavo was 3 hours ahead. Having a daily planning meeting when Luis was leaving for dinner made the check-ins less meaningful.
We went off of Scrum, but kept the product backlog (list of to-dos). The question for me became if there was a better way to manage the many issues and enhancements for GravityView. That lead to a search for the ultimate tools.
Planning and Customer Support Tools
I looked into a lot of ways to improve our systems in 2015, with mixed success.
Product Management and Bug Tracking
I wanted to manage all issues and features but I didn't want everything to be public.
- I started by adding all issues to GitHub, but I didn't want all the features and ideas to be public.
- I moved all the issues to JIRA with the added goal of planning Sprints there (see Scrum below). JIRA was far too complex, and I didn't want to use it. I was never confident of how it would sync to GitHub, and I needed that to work well.
- Then Trello Business Class came along with promises of good GitHub integration. We moved the issues there, but it was just not being used.
- Now I've started working with
Waffle.io(so far, so good) because ZenHub doesn't support Safari.
Side note: GravityView can be used as an issue tracker. I wanted to "dog-food" (use my own product), but I needed somewhere to list and refer to issues that didn't distract me. If I used GravityView as the issue tracker, it would definitely improve, but I would be constantly distracted by features I could add. One of the main features I would have needed was deep GitHub integration. This would have been a large project, and a distraction. Instead, I decided to use an external product to manage issues and plan GravityView features.
- We were using ZenDesk for customer support and WordPress for documentation. The problem became referencing the help docs when replying to customers. The choice was to migrate all documentation to ZenDesk or move somewhere else. Their documentation was not well integrated into their customer support screen, so I decided to move.
- After much hemming and hawing, we switched to HelpScout, mostly because it seemed good and had good integration with their docs. HelpScout also has a great integration with Easy Digital Downloads Software Licensing, which sealed the deal.
Currently: HelpScout has terrible tagging support and lacks some functionality that I want. I'm waiting for Intercom.io to come out with a documentation service that integrates with their support product. An Intercom support rep suggested might just be in the works. Why? Intercom has great onboarding functionality, which is a major focal point for GravityView in 2016.
I always enjoy Pippin Williamson's year in review posts. His 2015 year in review was great. In his review, he has a great comment about support, which I agree with:
Support is by far one of the biggest challenges I have ever faced. I’ve said it before but seriously, anyone that tells you that support is easy is either lying to you or trying to sell you something. Support is incredibly challenging, especially when it becomes an over bearing burden that drains you day after day after day.
The challenge with support is to fully engage with each customer, identify and empathize with their situation, then deliberately and carefully construct a response that answers their questions, helps them meet their goals, and doesn't cut any corners in the process. It's very hard to do it right. When done right, support is transformative and fulfilling.
Support is taking a problem or question and turning it into a solution as efficiently as possible. That solution might be the key to someone's business they're working to build, or the last thing they need done before they can launch a new website. Good support starts and ends with compassion.
Below are some numbers from HelpScout that mirror the numbers Pippin shared, to make it more useful for others:
- Total conversations (tickets): 3,074
- Revenue per conversation: $47.67
- Resolved on first reply: 34%
- Customers interacted with: 1,514
- Busiest time: 11am - 2pm
- Busiest day: Thursday
- Replies sent: 5,677
- Resolved conversations: 2,005
- Average time to first reply: 13 hours 41 minutes
(Inside office hours: 4 hours 47 minutes)
- Average response time: 21 hours 31 minutes
(Inside office hours: 7 hours 44 minutes)
- Average resolution time: 4 days 2 hours
(Inside office hours: 1 day 11 hours)
- Average replies per day: 16
Number of tickets resolved on first reply: 34%
Percentage of tickets that received a “Great” rating: 89%
These numbers are based on a small sample of respondants (~17% of customers). HelpScout doesn't change the rating if a customer rates the same ticket twice (first "Okay" or "Not Good", then later "Great").
What's Coming in 2016?
Things are rapidly changing in WordPress, and I hope to meet the challenge in 2016 with GravityView. It's a sign of the times that I'm writing this in WordPress.com's Calypso app.
As the WordPress world moves toward the Customizer, toward REST API, toward pure API interactions with WordPress, GravityView is moving toward decoupling the plugin from the WordPress Admin interface. Instead of "Admin-first", I want GravityView to shift toward "data-first". This will allow for many more uses of the plugin.
2016 will be about making GravityView easier to use, more flexible to configure, and easier to extend and maintain.
GravityView in 2016
- Luis has been working on a new View Builder interface built using React and a new user interface. The goal is to make it more simple and much faster to configure a View.
- Last year, I worked with Tom McFarlin to develop an outline of where GravityView needs to go structurally. Refactoring will take time, but we've already made progress toward this ideal. Hopefully we will move more toward the ideal code structure in 2016.
- Work is underway (with Josh Pollock) on a REST API for GravityView so that we can do great things on the frontend and also improve backend speed. Once completed, the API will allow for new front-end templates, improved DataTables speed and functionality, and a common structure.
- Video, video, video, video, video. Screensharing, webcasting, podcasting, and video. Seeing is believing, and GravityView's been too hard to understand. That must change in 2016!
Personally in 2016
- Learn podcasting techniques and share them.
- Improve my planning, management, and coding skills. The better I am at those things, the better GravityView is, the happier our customers are, and the more relaxed I am.
- Have more compassion for others and myself. We're all in this world together!
Thanks for reading, and I wish you a great 2016!
Bonus: My Current Toolbox
I love to see what other people are using for their tools. Here's a short list of some of the tools I use:
- PhpStorm has amazing features. Command-Clicking methods and WordPress integration FTW. Holy learning curve, but it's worth it.
- GitHub Desktop is a simple, intuitive Git client. I prefer using it to PhpStorm's built-in version control.
- Slack for all team communication.
- Skitch is great for quick screen grabs for support.
- Clarify is awesome for writing how-tos, grabbing the HTML, then putting the HTML in HelpScout. Here's an example help article written using Clarify.
- MacDown mostly has become my Markdown editor of choice, but then it does weird things every now and then and I revert back to Mou, my previous favorite that's been abandoned.
- TweetDeck to manage all my Twitter accounts (including Floaty the Astronaut's!).
- BitBar is a Mac menu bar application that allows you to output the value of a script in your menu bar. I created a plugin for Easy Digital Downloads sales numbers.
- Fluid.app is the best way to turn websites into stand-alone applications on the Mac. I have HelpScout, Trello, and others turned into applications. Otherwise, I get lost in my browser tabs.
- HelpScout for customer support and documentation.
- Aha.io to align the product with customer segments. We want to have development mirror actual needs.
- VWO for split-testing the website. Not sold on it, though…I find Optimizely's interface better.
- Klipfolio is a dashboard for marketing and advertising graphs. It's a visual one-stop-shop.
- Trello to plan marketing and future features. See "Product Management" above…
Waffle.iofor a helpful visual board to sort and organize Github issues. Again, see "Product Management" above…(Edit: Waffle shut down in 2019)
- WordPress! Without WordPress, obviously there would be no GravityView. Thanks to everyone who takes part in the community and in the software.