Why was I afraid of “agile”?

Believe it or not, my current job (where I’ve been since fall 2011) is my first where being a developer is my primary responsibility. My previous titles have been things like “support technician”, “data analyst”, and “IT manager”. Being able to code was just a bit of added value I could bring to the table (if it was acknowledged at all).

I’ve never been a fantastic coder– but I’m pretty good at taking an idea and turning it into something that works. That’s often been good enough, for the kind of projects I get involved with. I’ve long understood that there is a class of programmers who are better than me. They did things like Test Driven Development, or simply wrote better code, or used better tools. They were agile. I didn’t understand what agile development was all about, so it just became a code word for everything I wasn’t.

That all changed after I went to Scrum training a few months ago. Scrum is a particular way of implementing agile development. It turns out, “agile” (and Scrum) are exceedingly humane. Now, I understand that the defining feature of agile development is humility.

Here is why I say that:

  • There is no presumption of mastery. Instead, you are simply asked to keep learning and improving.
  • Likewise, the entire team is asked to periodically reflect on how they are working, and adjust as necessary.
  • Agile recognizes that nobody on earth (and certainly no committee or working group) is any good at deciding what the requirements really are for a software project. By getting the work-in-progress in front of customers quickly and often, you can react to their feedback, and be more confident that you are in fact building the right thing.

To me, that seems like a really civilized way to work, and erases a decade of agile anxiety.

Every book has a MOOC inside

By MOOC, I mean a Massively Open Online Course, the sort of class offered by organizations like Coursera and edx.

how does a book become a MOOC?

To start, you’ll need the metadata: the name of the book, the author, edition, and year, and (important for what follows), the chapter outline. Since we’re talking about a single book, you could enter this by hand if necessary.

For each chapter, allow students to do four things:

  • Participate in a discussion forum.
  • Submit quiz questions and assignments.
  • Answer quiz questions and do assignments(while also evaluating the relevance and effectiveness of those questions/assignments)
  • Evaluate assignments

Mastery of a chapter is determined by those last two things: Answering some questions, and having your own questions rated as relevant and effective. The course provider could use a system like OpenBadges to certify student achievement.

so, what’s the point?

  • For someone trying to learn the material in a book, being able to discuss it with other readers will aid in understanding, and being able to certify that you’ve mastered a book should make the whole experience more satisfying.
  • For authors and publishers, this is an easy way to make your product more valuable.
  • For course providers (who may work for the publishers), you have an online product that gets better as more people use it.

what might suck?

The first batch of students may have to wait around while a library of questions and assignments is developed, which could lead to abandonment. The way to deal with this is to pre-seed the system with enough questions to allow students to proceed through the course.

Tim Cook and capturing soot

Two things that struck me as related:

How are they connected?

The second item points the way to a future where the waste product of one factory could be the raw material of another. The factory that spews soot and noxious gasses into the air, or dumps chemicals in the water (or holds them indefinitely in barrels and open-air pools), isn’t just “polluting” then– it’s being inefficient. Pouring money down the drain.

In other words, maybe there’s a day coming when environmental stewardship and “maximizing shareholder value” aren’t in conflict.

From blur to blog with ifttt

I understood RSS before I understood blogging. In fact, I think it’s fair to say that my initial understanding of a “weblog” was a place to share the stuff I found in my RSS reader. This was encouraged by the feed reading software I was using at the time: stuff like NetNewsWire and Radio Userland– they both integrated tools for reading feeds and writing blog posts, and made it easy to pick a news item, and use it to start a blog post (The blogging tool in NetNewsWire was eventually spun out into its own product, Marsedit). This was the primordial “retweet”.

These days, I do my feed-reading with Newsblur. Newsblur provides it’s own internal blogging system (“blurblogs”; here’s mine) which is kind of nice– but what I really want is to be able to post to this blog from Newsblur.

Thanks to Newsblur’s newly-minted integration with ifttt (If This, Then That– think of it like email rules for the web), I can!

Screen Shot 2014-03-18 at 7.47.28 AM

The way this works, is that every time I click the “Share” button in Newsblur, a new blog post is created, with the link and my comments. I’m sure I’ll tweak this as I go, but for the moment I’m pretty satisfied.

Some tips for Safari Flow

Safari Books Online offers access to a large library of technology and business books and videos for a monthly fee. I’ve always thought this was a cool idea, and since it debuted (2001) I’ve signed signed up several times. I’ve always abandoned it a few months later, though, after a predictable cycle of interest and neglect.

The newer Safari Flow seems to actually be sticking, though: It works great on every screen I use regularly (laptop, tablet, smartphone). I’ll turn to it during the workday when I need to learn about a specific technology. I’ll flip through a recommended chapter while standing on the train. While rocking the baby to sleep Sunday night, I started watching Doug Crockford’s Javascript Masterclass.

In short, Safari Flow suits me more than the original service ever did.

I’ve gathered a few tips I’ve been sharing when I tell other people about Flow:

  • They hide the ability to search for books by title– I think this is to differentiate Flow from the main Safari service (Flow puts the emphasis on individual chapters, instead of whole books). You can search by title, though by prepending “title:” to your search. For example, if you search for just “backbone”, Developing Backbone.js Applications is on the second page of results. Search for “title:backbone”, and it comes up on the first page.
  • Their library is much deeper than what you’ll see in the “topics” system, there are MANY books you can only find through search.

Superbrothers: Sword & Sworcery EP Soundtrack

This week, I spent some time listening to the the soundtrack to Superbrothers: Sword & Sworcery EP, by Jim Guthrie (available as an album called Ballad of the Space Babies). This will be the first of what I intend to be a weekly series of music reviews from my Humble Bundle library, which is about 90% game soundtracks.

My favorite track on this album is Lone Star, which you can play here:

I don’t really have the language to write critically about music. What I can say about this album is that “worst” songs aren’t so much offensively bad, so much as unmemorable. It’s a lot like Moby’s music– for every head-nodable tune (like South Side) there’s a bunch that never rise above “pleasant”.

The memorable songs on this album, then, are: Lone Star, The Prettiest Weed, and Maelstrom.

Will you listen to this again?

Probably not as a complete album. I won’t be upset if Lonestar or the other tracks I mentioned above turn up in shuffle mode.

Have you played the game?

Yes! I haven’t finished it yet, but it’s fun. The stuff I said above about songs being memorable or not doesn’t really apply, in-game. The music really contributes to the atmosphere of the game.

Humble music series

One year and six days ago, I decided to get excited about blogging again, and then proceeded to write exactly four more posts over the next year. I like writing, I like having a public platform, but I pretty much failed to put in the time.

To be fair to myself, 2013 was a pretty huge year: we had a baby, and (after 13 years away) I went back to college. I’m not upset or surprised that I didn’t blog much. I started to consider shuttering this site (a poorly-tended blog is worse than no blog at all), but just couldn’t do it.

So, let’s try this instead: the last refuge of the lazy blogger. A series.

I love the Humble Bundle– you get a great deal on a handful of games(and less often, music or books), and some of your money goes to charity. Often, with a game purchase, you’ll also get the soundtrack. I also bought the Jim Guthrie and Friends bundle when it was available, which included some games (with soundtracks by Guthrie) and a bunch of his non-game albums. When I look at my Humble Bundle Account there are 84 “albums”.

Even if some of the albums are only a few minutes long, that’s a lot of music. This week, I’m going to spend my commuting time listening to the Sword & Sworcery soundtrack, with the intention to write up some thoughts about it by the end of the week. If it goes well, I’ll pick a different soundtrack or album next week!

An Android Parable

A week ago, I switched from an iPhone 4S to the Samsung Galaxy S4.

Here’s one thing that shocked and delighted me, and might be enlightening to anyone trying to understand the philosophical differences between iOS and Android. On the iPhone, the Amazon MP3 app lets you stream music, or download songs to your device. The downloaded songs are still locked inside the Amazon MP3 app, though– the download feature exists basically to save time and bandwidth: if you download your music on a wifi network at home or work, you won’t need to use your metered data plan.

This is basically what I expected when using the Android version of the Amazon MP3 app. I downloaded a few albums so I could listen to them on my commute. Imagine my confusion when I opened up the built in music player and saw my music there.

Oh! They’re just files.

It’s like downloading an MP3 from Amazon and opening it in iTunes. On a regular computer, this is normal– on iPhone, it’s impossible. On Android, it just works.

Sustainability of the ‘Apps’ ecosystem(s), and why I’m excited about Firefox OS

I was at a friend’s cookout this weekend, and after explaining to one of their neighbors what I did for a living (web developer), he asked me if the future was in “apps”, and not the web.

I mumbled something to the effect of: the web is more sustainable. It’s too expensive for a company to keep building apps for every new platform that comes along.

In the days since then, I’ve come to realize that this was incorrect, in at least one big way: It presumes a world where there are many mobile platforms with enough users to be relevant to developers and publishers. That’s not the world we live in, and it’s not a world that’s likely to come about.

The reason it’s unlikely is pretty simple. Both Google and Apple have established a feedback loop that reinforces their dominance (people use iOS or Android because that’s what their friends use and that’s where the apps are; developers build for iOS or Android because that’s where the users are). If your business is publishing or entertainment, developing for those two platforms isn’t onerous. If apps are your business, then either one may prove a big enough market, if you can’t invest in both.

This cuts to why I’m pessimistic about Ubuntu Touch, and excited about Firefox OS. Ubuntu is trying to launch a whole new ecosystem of “apps” (with a significant legacy of Linux software, at least). Firefox OS, on the other hand, is going to make the web better.

Firefox OS is a mobile platform where the premier “apps” are built on web technology. Where there are functional gaps between “what’s possible in native apps” and “what’s possible on the web”, they are being treated as bugs that can be fixed, all while working with the W3C to make sure any new API’s are vetted and incorporated into web standards.

What that means, is that many of those improvements will likely make their way to other platforms. If a new Javascript API or DOM method makes sense, it’ll eventually show up in Mobile Safari, Chrome, and even Internet Explorer. Even if you aren’t using a Firefox OS device, it’s going to make your life better.