Wednesday, September 23, 2015

Socio-Technical Systems and the STAQ Development Manual (Redacted)

I recently wrote a development manual for STAQ (embedded below). It represents our current thinking about the best way to build enterprise SaaS software in 2015 - using a variety of techniques from several disciplines. Since I wrote this I have also become very interested in resilience engineering and the notion that web developers are primarily engaged in the construction of socio-technical systems. When I rewrite this I plan to talk about how we should try to minimize mean-time-to-recover (MTTR) instead of mean-time-between-failures (MTBF), and how continuous deployment grows a safety culture around your operations.

I redacted most of the examples that illustrate these points because they use sensitive code examples or URLs. If you want to see the rest of slides, join us!

Side note: I tweeted that "all programmers are self-taught" which was greeted by some skepticism. When I learned about socio-technical systems I thought it was a pretty good distillation of what I meant; you can go to school to learn how to write algorithms, but as far as I know, nobody is teaching classes in writing software that comprises "an interlinked, systems based mixture of people, technology and their environment."

Sunday, September 13, 2015

Google Hangout URL for tonight's ignitespeak open source orientation

I don't think the last post made this clear, but here's the link to tonight's Google hangout session, where I will be conducting an orientation of the app and how it works and what we need.

Here's an embed of the event!

Thursday, September 10, 2015

Project orientation for ignitespeak on 9/13

I'll be holding an online orientation session for the ignitespeak project on Sunday, 9/13/15 at 8:00 pm. It'll be a Google Hangout, and we'll record it in case you can't make it.

I wanted to do something efficient to help get everyone up to speed. Right now everyone's getting bogged-down in setup issues.

Thursday, August 27, 2015

I want to mentor you on an open source Rails project

Update: there's an orientation session on 9/13/15 if you're interested in helping

I built a small, fun Rails app called ignitespeak to manage speakers and proposals for Ignite Baltimore. I've long thought that it would be a great project for beginners to work on, because it's well-tested, it gets regular use, and it's open source.

I have an ambition to make the app more useful and available to all Ignite organizations around the world. If you're looking for a way to break into Rails development, and would like to get my personal attention, advice, or mentoring on your commits and pull requests, please contribute!  I created a number of Github issues for some possible projects.

If you're really serious about gaining more Ruby/Rails skills, I'd even be willing to do some pair programming with you, either remotely or at an open source hack night.

Monday, August 10, 2015

Stepping down from Ignite Baltimore leadership

I have a post up on Baltimore, Why I'm stepping down from Ignite Baltimore:
For the past several years, Neal Shaffer, Jen Meyer and I have had the privilege of helping to organize Ignite Baltimore, where 16 (or so) speakers each get five minutes to present an idea with slides that advance automatically every 15 seconds. 
It has been an extremely rewarding experience. Through Ignite we’ve met some of the most thoughtful, passionate and creative people around town. We even got to fly in one of the founders of Ignite, Brady Forrest (whose talk appears in the list below). Though I have been most publicly associated with Ignite, in reality it has been a group effort from the start: Patti Chan and I originally started working on Ignite back in 2008. Eventually the team grew to include awesome friends like Neal and Jen, and also Heather Sarkissian, Christian Malone, Lindsey Davis and Melissa Macchiavelli. 
But now it’s time for new leadership and new ideas. Jen, Neal and I are stepping down from the Ignite Baltimore team.
Check out the full post for more details, including a list of some of my favorite Ignite videos!

Tuesday, June 30, 2015

Lean advertising for startups

My friend (and STAQ advisor) Brent Halliburton is writing a book called Lean Advertising for Startups, and he's running a Kickstarter campaign to support it. I've known Brent for a long time and he is an expert on advertising, so this is going to be a really useful book. It fills a hole in startup literature opened by the promise of books like The Lean Startup, which encourages businesses to experiment and learn what works while avoiding waste. I don't think anyone since then has written extensively about what how to actually do this in practice when you don't have a huge budget, using currently-available technology. That's where Brent comes in! I backed his project and hope everyone else does too!

Friday, June 26, 2015

Today is refactoring day

Today is refactoring day at STAQ. From an email I just sent to our team:
My hope is that today we focus on maintenance of the most critical parts of the app, resolving the most painful hacks, paying down the most significant parts of our technical debt, while being careful to avoid yak-shaving or gold-plating, or various other programmer pitfalls. It also needs to be something that can be finished by close of business.
Definitely check in with team leaders to make sure your project meets that definition :-)
Personally, I think I am going to take a quick look at [some occasional weird exceptions in Airbrake] and pick 1 or 2 of those to put to bed. Then I am going to do some "organizational refactoring"
 I'm really looking forward to seeing what we come up with! I've been wanting to try this for a few years, since I heard a story about LivingSocial. According to the story, there was a period of time when they did this kind of thing every Friday - no new code was allowed to be committed on Fridays: the team work on only fixes, refactorings, deletions, etc.

Wednesday, June 10, 2015

Programmers Wanted

I've been thinking a lot about recruiting and hiring programmers for STAQ, and about how to use plain language in business to communicate more clearly and forcefully. I want us to sound smart, professional, easygoing yet intensely focused. While doing this thinking, a friend introduced me to the idea of employer branding, which is totally a buzzword but still a good concept to keep in mind: you have to use different language and even different URLs when reaching out to different kinds of people.

These thoughts informed my work on a recruiting microsite called Programmers Wanted. It's intentionally simple and plain and straightforward. I want to talk directly to programmers and communicate our values, without having to spell them out in some corporate way. The main thing I'm hoping to convey is: "there's interesting stuff to work on and people whom you will enjoy spending time with, no matter what background you come from". I think I can boil the language down even further but Programmers Wanted is my first attempt at claiming a tech employer brand for STAQ.

Friday, May 1, 2015

Smart, sensitive perspectives on Baltimore current events

These are the best articles I've read so far about recent events in my adopted hometown. I prepared it for my weekly newsletter but wanted to disseminate here as well. Even if you're not local, it's worthwhile reading: these are American patterns.

  • The Nature of Poverty ( "The world is waiting for a thinker who can describe poverty through the lens of social psychology."

Friday, February 6, 2015

Startup leadership hack: make an opportunities list

My partner James came up with a pretty good idea for opening up more opportunities for career growth at Staq. We call it the "opportunity list": a priority-sorted list of projects that we should be doing, but aren't, because everyone is busy with day-to-day responsibilities.

Opportunities are thing that could potentially be someone's entire job in the future, and would make the company a lot more successful/comfortable in the short-term. Each project is a chance to step up and exercise leadership outside of one's "day job".

Here's an excerpt of the list I just whipped up:

We have similar lists for other departments, so, wanting to set a good example, I picked "contract volley". I'm going to help figure out how to speed up the end of the sales process where specific details of our contracts are negotiated.

My first idea was "let's throw some tech at the problem". I found that there's a whole niche market for contract management software, but none of it looks geared towards a scrappy startup. (I understand why companies do this, but personally if your app has a "Request a Demo" button, I'm gone. I just don't have time to make appointments, and that also implies a much longer onboarding process. Please just let me give you my credit card and start a free trial!)