What to Do Next?
Choosing what to do next is often a problem. There are so many things one could do next. It sort of depends on your high level goals, but even if those are clear, it may not be so clear which set of actions will help you achieve those goals. My high level goals are getting AgileVentures (AV) to the point where it is both self-sustaining, i.e. it would carry on regardless of my input, but also to the point that it can sustain me, i.e. I can derive sufficient income from AV such that I don't have to take on additional paid work. I'd also very much like to achieve these high level goals without sacrificing AgileVenture's commitment to open source and open development and to supporting and helping learning developers and charities around the world.
So how best to achieve these high level goals? One of my recent strategies is to blog every day. This seems to be going reasonably well since I enjoy it, and my intuition tells me that it makes me ever so slightly less verbose when pairing and in meetings, and I am also generating a collection of links on my positions and experiences on things. Now, rather than waste time re-typing my position on something in an email or in live chat, I can just post a link to the blog post on the topic. I blog first thing every working morning, so in that sense choosing what to do next is sorted for me when I start work. There's the question of what to blog about, but that's not too hard :-) One of the big advantages of the blogging that I perceive is that I'm slightly less reactive. I used to review all my incoming communications (mainly slack, email and github) first thing in the morning. I now do that slightly later in the day, and I think it's for the best, as it's easy to end up taking hasty actions in the face of requests and suggestions. Blogging first thing is a stabilising influence I feel.
It takes away time from communicating more directly with people, and from programming, but I suspect that is repaid in terms of the clearer focus I have for both those activities, and the time saved avoided re-typing out positions on things. Then there's my evolving social media strategy. I kind of withdrew from social media when my Twitter and Facebook accounts got hacked a couple of years back, but I think I'm over that experience now, and back on both systems with upgraded security. In order to get the AgileVentures concept to a broader audience I've taken to pushing out links to my blogs on social media (SM). I tend to do that with a week or two delay, to give me a chance to get some distance from the blog post itself and thus perform a slightly more impartial review of its comprehensibility and legibility before pushing it out to a broader network. Although I do share the blogs immediately with my Slack networks, so join the AV slack if you want early access :-)
Another motive for blogging and getting those blogs out to a wide audience is that I think the video library of AgileVentures pair programming scrum and client meeting sessions is not very accessible. It's what I always wanted, the ability to dive as deep as necessary to find out what's going on in a project, and it's great for catching up on that thing you just missed, but not so good for getting a quick overview of what's going on in a project or technical issue. A blog post is much much more digestible in that regard.
So blogging and then SM-ing the blogs them generates a few daily activities for me. Specifically; new blog creation, old blog review and SM push; and since people start liking my tweets, LinkedIn, or FB posts, that means there are people to follow and connect with. How much time can I allow myself to spend on that? :-) It's easy to get lost in the SM stream.
I can usually shut down SM-ing before it gets out of hand, but I realise I have a host of other daily (and some weekly) activities that are kind of "station-keeping". These include listening to technical podcasts while jogging and then slacking the best bits; sending out sample "Engineering Software as a Service" textbooks to instructors around the world, checking in individually with our AV premium members and mentors; pre-watching "Agile Development using Ruby on Rails" videos for MOOC quality control (in lunchbreak); working through software textbooks like The Architecture of Open Source Applications (also in lunchbreak); attending AV online scrums and responding to comments from developers in GitHub pull requests and Pivotal Tracker.
I also spend a little time each day mailing a few AV folks. We've got over 2000 members now, and that exceeds mail-chimps free-tier. I had this crazy idea that rather than pay or switch that I would go personal, so I'm working my way through the AV membership list and emailing people individually to see how they are doing, share a few select blog posts and ask for their input on the AV mission. At my current rate it will take a couple of years to get through the whole list, but in this age of mass marketing emails I'm hoping my old style personalised approach might pay some dividends. One of the main things I like about it is an easily viewable history of the emails sent and received in my mail client (Thunderbird), and it's allowed me to re-establish connections with some of the early members of AgileVentures in new and natural(-ish) email threads. I'm working my way through from the oldest to the newest members.
However I can't spend my whole day station-keeping. The main things I agonise about recently are whether I shouldn't spend more time fixing the look and feel on our static site, which more people are starting to visit now that I'm focusing my blogging efforts on the integrated middleman-blog there. I'm thinking about how I can better support the CraftAcademy students who have AV membership bundled with their bootcamp experience. And then there's the look and feel of the main AV site (particularly on mobile), whether we need to be supporting asynchronous collaboration better across AV, and whether the focus on getting more premium/plus members is the right overall direction. Should we be focusing more on getting in paying charity clients? Is it better to devote time to improving the "Agile Development using Ruby on Rails" MOOC, and/or the "Engineering Software as a Service" textbook, or perhaps more importantly preparing the ground for the part 3 project course which will see a focus on lots of open source distributed agile teams, and hopefully should generate some much needed revenue?
This week Michael and I will likely be working on ProjectScope and its system of metrics for tracking project health, which Armando is using in his Berkeley software Engineering class, and we also hope to use for the online project class (and maybe as a micro-service component for breaking up the AV Rails monolith). I'll be trying to set up some more pair programming sessions with premium members, and rolling out a few new features on AV such as updating credit cards; along with trying to keep on top of the LocalSupport pull requests. However, perhaps I should be focused on polishing my LinkedIn resume and network and doing some exploratory contracting, doing a few interviews just in case the books don't balance?
There are always too many choices. Seems like the key thing to do is pick one thing, do it for a while, and then reflect. Spending too much time weighing all the choices leads you to lose time that you could spend actually doing something, which crucially might get you more information to help you make a better choice in the future. A certain time-boxed weighing of options seems appropriate. Putting off all the non-urgent things; dealing with the more urgent ones, and occasionally choosing a random item to ensure that you're exploring and not getting stuck in a rut. Well that's what I'm telling myself this week anyway :-)