Tools For a Distributed Software Agency - 2024

Originally inspired by Justin Williams, I try to spend some time at the end of every year reviewing and describing the various tools and software that we use at Silverpine. This is now my fifth year doing this type of retrospective. If you're interested in the previous posts, you can find them here:

We are a mobile-first software design and development agency, and as such our tools generally fall into three general buckets:

  • Communication
  • Development and Design
  • Operations

I try to be as exhaustive as I can in my list, but every year I seem to forget something. If you don't see something that you would expect to see, please reach out. Also, if you have suggestions for alternative tools, I'd love to hear about them. We are constantly trying to refine our toolset.

Communication

Slack - As a fully remote organization, I don't know how we would operate without Slack. Our usage has continued to grow as we now regularly use Huddles, Notes and Canvas in addition to the core messaging. With almost 10 years of searchable Silverpine chat history, Slack is an absolutely indispensable part of our day-to-day operation.

Zoom - There are lots of options for video-conferencing software - from Teams to Google Meet to WebEx. We have used the vast majority of them and repeatedly, Zoom is still slightly better than the competition. However, I will note that our usage has drastically fallen as our usage of Slack Huddles has sky-rocketed. That being said, whenever I need to chat with someone outside of the company, I still turn to Zoom.

Google Workspace - We regularly use Docs, Sheets, Drive and Gmail. They work and are fine. There's nothing particularly special about them, although I do find that Drive doesn't work nearly as seamlessly as Dropbox.

Dropbox - We barely use Dropbox, but we have enough legacy documents that we have a couple old accounts still hanging around. If Dropbox had better pricing for small teams, we would probably use it over Google Drive, but Dropbox is pricey enough that we can live with the deficiencies of Drive for our team sharing.

Keynote - One tool that I use frequently (and that I seem to have neglected mentioning in past years) is Apple's Keynote. Nearly every presentation I create is done in this tool. It's just so much easier to use than Powerpoint.

Operations

Harvest - Many people use Harvest for time-tracking and while it's a great tool for that function, we use it for invoicing clients. It has a pretty great search and history function. My only wish is that it had better visual reporting capabilities.

Gusto - We have been using Gusto for payroll for years. In general, we still are big proponents of it, but their service has fallen off quite a bit the past couple years. We pay for their Plus level service, and even with an elevated service level, it still takes too many calls and emails with an offshore representative to get things resolved.

Quickbooks - We use Quickbooks, and since the CPA propped-up monopoly shows no signs of cracking, you probably should use it too.

Adobe Acrobat Pro - Adobe gets a lot of heat for some of their licensing decisions, but using Acrobat Pro to handle our document digitization hasn't been a difficult choice. Whenever we need to add signatures to paper documents and create digital versions of them, Acrobat just works.

Excel - As mentioned previously, we pay for the Google Workspace suite of products. And while I do use Google Sheets frequently, I still prefer the offline capable, familiar warm embrace of Excel. You might disagree, but to me, it is the embodiment of what a spreadsheet application should be.

Development and design

Xcode - If you write iOS or Mac software (as we do) using Xcode is really the only option. I know that some people have hybrid setups with alternative text editors, and while I won't judge those people, I really do think it's just easier to use Xcode. However, I do wish Apple would focus a bit on stability and performance instead of adding features.

Android Studio - I don't personally do Android development, but I know that our Android engineers use Android Studio. It's free so I don't mind, and it sounds like there's not really a better alternative.

VS Code - It is remarkable how good VS Code is given that it's free and offered by Microsoft. Our engineers use either this or Nova for any non-native projects.

Nova - I've used Nova a few times and it's fairly intuitive and has a large, well supported plug-in architecture to a diverse set of development environments. It's a very viable alternative to VS Code, and while it isn't free like VS Code, it does have some advantages. Panic makes great products.

Tower - We don't mandate a Git client at all, but we do provide a "default" for the team. Tower is always improving and the fact that it's cross platform really seals the deal for us.

GitHub - Every now and then I am forced to use Bitbucket, and it makes me appreciate GitHub. We've been slowly moving more of our CI infrastructure into GitHub Actions as well.

Figma - The current reigning champion of wire framing and design is Figma. I was quite relieved when the Adobe acquisition fell through.

OmniGraffle - I don't love OmniGraffle, however, if you need a Visio-equivalent tool for the Mac, there aren't really many options. The interface is a little off-putting and difficult to learn, but it does what I need it to do. I really wish Microsoft would create a Mac version of Visio though.

BBEdit - I don't personally use BBEdit, but a huge number of our team does. Primarily, they use it for large file manipulation and inspection as well as just a general quick "scratchpad" for writing and note taking. It's tremendous how long BBEdit has been around and that it's still a daily driver for so many people.

For Sarah, Rachel and April

Twenty five years ago, I was celebrating my 21st birthday with my college roommates. However, I received a call from my dad that abruptly ended the celebration. My cousin and her three young daughters had been murdered by their father; one of them in the arms of her grandmother who was trying to protect her. He had purchased a gun in Seattle and then drove down to Oregon and shot them in their front yard. The oldest had just come home from her first day of kindergarten.

My dad picked me up from my apartment, and we drove down in silence to my great-grandmother's house. The extended family was gathering to be together and to try and understand what had happened. Twenty five years later and I'm still not sure any of us understand. Can you ever really understand something like that?

Today, an eighteen year old kid murdered twenty-one people in an elementary school, and those memories have flooded back to me. I can remember that night like it was yesterday. As I try to process this horribly tragic event, I am sickened by my emotions. They aren't the emotions that I should be feeling. I'm not feeling anger; I'm feeling resignation. I'm feeling a disappointment in myself because I cannot muster the outrage that the murder of children should evoke.

I don't want this to be normal in the world I live in. But I find that anymore I simply feel helpless. I know that deep within I still have intense feelings of anger, but over and over and over and over again that rage runs headlong into the hopelessness. It just hurts too much.

We should be better. But we aren't.

I'm sorry Sarah, Rachel and April. We keep letting you down.

A Year of Holidays

If you follow Silverpine on any of the major social media platforms (LinkedIn, Twitter, Instagram, Facebook) you may have noticed that our logo tends to change around many of the holidays. For the past year, our amazing art director, Nicole Levin, has been creating mini-masterpieces that help us celebrate many of the holidays that Silverpine employees observe.

There are a couple reasons why we did this. The most obvious one is that it's fun! It's been a very rewarding exploration of using our logo in the context of a wide variety of different types of holidays. I've had many people internal and external comment about how much they enjoy them. However, we also did it as an exercise and demonstration of the intention of the Silverpine brand.

These holiday logos are a demonstration of the meaning behind the Silverpine brand. I've always envisioned it as an amplifier for other brands — Silverpine augments and amplifies, but never gets in the way. This logo exercise is a small attempt to illustrate that concept.

Nicole and I have already discussed adding more holidays to the mix over the next year, and perhaps even tweaking or improving some of the past ones. Have a favorite? Let us know which ones you like! My favorite is definitely the Halloween spider pictured here.

The Trouble With Cross Posting

Recently, I setup a microblog (http://jonhays.me) to supplement my interactions on Twitter, Facebook and Instagram. After several conversations with my friend Manton, I decided that I would setup a new WordPress site and use that as the content “repository” and use cross-posting tools to distribute out to Twitter, Facebook and Instagram.

There are several reasons for doing this, but my primary motivations are:

  1. I want to spend less time on the individual social media platforms.
  2. I want to own my content and have better control over it.
After a little bit of consternation over appropriate domain names and blog names, I set about assembling the site and my work flow.

One of my high level requirements is that I wanted to be able to post to my microblog from my phone. Another of my requirements is that I wanted to be able to post entries both with and without images. Of course the third requirement that I mentioned above is that it needs to cross-post to Twitter, Facebook and Instagram.

Naively, I just assumed I could use the WordPress app and setup a few IFTTT triggers and be done with it. As you can guess, it’s not quite as simple as that.

Let’s tackle cross-posting of images first: what should be posted to Instagram for a blog entry with no image? With multiple images?

Realizing that simply posting from WordPress wasn’t going to work, my first instinct was to modify my workflow so that if I wanted to post an image, I would post from Instagram and use an IFTTT action to then cross-post the image to my microblog which would then cross-post to Facebook and Twitter.

Unfortunately, using this method is like playing a game of telephone with social media and the end result looks like this on Facebook:

Screen Shot 2016-04-12 at 10.30.16 AM

Several of my friends replied after seeing these asking if my computer got “hacked.”

Images aren’t the only troublesome area either. Take for instance cross-posting of text posts larger than 140 characters to Twitter. It turns out that IFTTT is actually quite terrible about handling these as well:

Screen Shot 2016-04-12 at 10.47.32 AM

Simply truncating the text without a link back to the original post is the worst kind of tease and also not acceptable. What a good cross-post tool should do is truncate at word boundaries and provide a link back to the original post. IFTTT is simply not up to the task for this.

In fact, as it turns out, IFTTT is actually quite terrible for cross-posting to just about every platform. I am investigating other alternatives at the moment but as of right now, I am still stuck with those terrible Facebook cross posts, and I have no way to post directly on the microblog and have the ones with images get cross-posted to Instagram.

Fortunately, there are smart people working on these problems! I’m using a beta tool to do the cross-posting to Twitter. The beta tool actually works quite well and I’ve been trying to convince the author to expand to include Facebook as well, but he’s reluctant to add more features at the moment because he’s trying to launch.

With so much out of control negativity and lack of author control on Twitter and Facebook, it feels like there is an opening for something like micro-blogs to augment existing platforms in a positive way. And while I don’t think Twitter or Facebook are going anywhere, I believe micro-blogs can help fill the gap for content creators that are conscientious about their craft.

I’m still exploring other avenues for cross-posting and I’ll try to post updates as I find them either here or on the microblog, but it feels like this is a viable, mostly untapped market.

 

Reboot

Image

So this is the requisite "I used to blog and then I stopped but this time I'm serious about it" post. Like many people I have followed a pattern of ups and downs in terms of blogging continuity throughout my online existence, and it is my sincere intent to break the cycle this time around.  In particuar, Manton's post combined with Matt Gemmell's article have rekindled a desire to be better about developing and sustaining a rhythm.  I certainly have plenty of ideas, and it really is only my own lack of discipline that gets in the way. Anyway, I won't blather here longer about new beginnings but if you don't see regular output here, feel free to remind me of what I'm saying here.