A Scrum of One (solopreneur)?

So, what’s the right methodology for a developer or really small team for (hopefully) building and launching a successful SaaS? Do you bang out the minimalist of minimal viable products with no tests? I did that basically back in the day with StartupToDo.com and was overwhelmed by technical debt and bugs. Now that I’m back to being a solopreneur after 15 months developing for Brandle.net, and after seeing how other solopreneurs or small teams develop software, finding a better approach was very high on my to do list.

Yet, I always assumed that Agile development, the closely aligned practice of BDD (behavior-driven development), and in particular Scrum methodology was by and for teams of developers – that while it scaled up, they did not scale down. Two things post-Brandle.net changed my mind:

Talking two weeks ago with Aaron Schaap, CEO of the Grand Rapids, MI based development shop ElevatorUp. Aaron shared that ElevatorUp actually use Cucumber to have clients write and define user stories which are at the heart of Scrum and Agile, and that this approach actually worked extremely well both for his developers and their clients. A key benefit claimed by Cucumber and BDD is that non-developers could and would write stories instead of specifications. I had never before seen or heard of this actually happening. Aaron does it every day.

The other thing that changed my thinking about this for my own projects is reading Jeff Sutherland’s brand new book, Scrum: The Art of Doing Twice the Work in Half the Time. Jeff is the inventor of Scrum, and if you do or are considering doing Scrum, you want to read this book yesterday. Why? Because it lays out in the clearest terms possible not only how Scrum should be done but exactly why it should be done in the prescribed manner. It’s not chance – there’s a deeper logic there that Jeff lays out in this book.

Understanding the deeper why behind Scrum practices after reading Sutherland’s book and finally talking to someone running a development shop where nonprogrammers really and truly writing tests opened my eyes. When next I do development for someone else, TDD at a minimum if not BDD and Scrum have got to be baked in – no more sacrificing code quality and test coverage.

With that being said, I’ve been hammering on getting to a Scrum of One for FlashCommand – what works and what doesn’t work when there’s only one developer?

After way too many hours over the last several weeks spent reading the internets and trying out just about every Agile-related bit of software out there, tapping the power of Zapier to integrate various apps, here’s my approach:

I’ve settled on using exactly one product: Pivotal Tracker. It both seems to be the most popular agile app in the Startup world and manages to make it easy to avoid all the “team overhead” that as a budding “Agile team of 1″ I don’t want, plus it’s reasonably priced for one user.

So my software dev flow is:

  1. Evernote to capture the vision of what I am trying to create, the “shared understanding” core to Scum, with links to relevant web clippings, research, posts about code and PDFs, audio notes, you name it, plus
  2. Paper prototypes on large, cheap index cards I can then scan into Evernote and digitally reference, plus
  3. High fidelity mockups, especially for mobile and tablet views, in the awesome Sketch 3, plus
  4. UI Flows ala this seminal post: A shorthand for designing UI flows, which then I scan into Evernote. These first 4 steps “get handed off to development” (me) by
  5. Creating Epics and Stories in Pivotal Tracker, writing those stories in Cucumber nomenclature (see http://cukes.info/), and letting Tracker guide my iterations based on my actual velocity. For actual coding,
  6. Copying these stories into my RSpec integration and unit tests files, but only coding actual RSpec and not Cucumber tests. While I now “get” what Cucumber is about, the overhead of maintaining two sets of tests when there’s only one developer on my project – me – is too high a cost.
  7. Taking a “TDD+” approach of tests first, then code re the guts of FlashCommand.com, but being more pragmatic about when tests get written for the UI – since I know a lot of the UI/UX is going to get iterated and I want to minimize throwing away tests because UI/UX has changed.
  8. Two specific Scrum practices get scaled down:
    1. Daily stand up meetings becomes starting each coding day asking the key Scrum questions:
      1. What did you do yesterday to help the team finish the Sprint?
      2. What will you do today to help the team finish the Sprint?
      3. Is there any obstacle blocking you or the team from achieving the Sprint Goal?
    2. And limiting work to that which I defined for the current two week sprint.

That’s my “Scrum of One” approach as I go from several prototypes for FlashCommand to actual production code: what’s yours?

Join fizzle.co now.

Fizzle___Conclusion___Further_Reading

Continuing my experiments to make myself a better solopreneur, I’ve joined and started participating in fizzle.co – and so should you.

My first reaction to fizzle was skepticism – what, another online course that will make me all better? Been there, done that. But I decided to join anyway since being out here in rural Sonoma, California, I was feeling more than a little isolated. You want to talk about wine, come to Sonoma. You want to talk about the challenges and tribulations of being an online solopreneur, you’re in the wrong place.

Fizzle.co is an “Honest Online Business Training – and the community of entrepreneurs who won’t let you quit”. Part instructional video courses, part very active community. The first thing I noticed was how well done the site was – the production values. We’re talking the difference between YouTube and CBS. The next thing I noticed was how active and supporting the community is of each other. Not endless how do I precisely make a million dollars yesterday-type questions, but strong encouragement of each other, thoughtful questions about the courses, and a willingness to trust each other.

But what sealed the deal for me this morning was taking their “Productivity Essentials” course. I’ve interviewed for various podcasts and online publications David Allen 6 times. Major parts of my three published books have been on productivity. I’ve written and sold two productivity apps and am in the process of building a third. And none of the above comes close to the power, elegance and value of Chase Reeves’ Productivity Essentials course. It’s that good.

My strong advice to you if you want to be a solopreneur or successful developer is spend a buck (that’s right, first month costs just $1.00 USD; $35/month thereafter), join fizzle.co, take the Productivity Essentials course, check out the forums. You will be impressed, motivated, and learn good stuff.

(Here’s my affiliate link if you’d decide you want to try it AND you like what you’re reading here: http://fizzle.co?aid=6168)

But seriously, folks…

Sometimes we developers take ourselves so seriously – these guys don’t. That in itself makes scrumy.com worth a look.

While I’ve pretty much settled on Pivotal Tracker as I (painfully) change from unAgile to Agile, reading Scrum: The Art of Doing Twice the Work in Half the Time by Jeff Sutherland (creator of Scrum) has me thinking about ways/means for a Scrum of 1.

Anyone have any suggestions re Scrum for Solopreneurs?

I can has all my Tabs Back!

Export All Google Chrome Tabs to Evernote

I’m stitching together a new comprehensive productivity system presently – to go along with my new work focus of Ruby on Rails work + consulting + writing. It’s nowhere near ready to unleash on an unsuspecting internets, but I just found a chunk well worth sharing.

If you use Chrome, then you’ve probably adopted the new bookmark “stars” functionalityand lost the ability forever to bookmark all tabs. This came as a nasty surprise – it’s gone, you can’t go back, you are screwed.

Chrome extensions like Stash sort of give you back an easy way to reopen your bookmarks en masse, but I found an applescript/Alfred workflow, Export all Chrome Tabs to Evernote on the Veritrope.com site that’s better than the old bookmark all tabs functionality. It creates an Evernote note listing all of the currently topmost Chrome browser window without fuss or muss.

I think its a net gain because many is the time I have a bunch of tabs open about a particular topic – like say Rails 4.1 ActionPack Variants – and have wished I could move that set into Evernote for future reference. Now I can – and so can you.

If you use Alfred, it’s as easy as typing cte, or you can make this applescript into a text snippet with Text Expander, or run the applescript using the built in Script Editor, or Automator.

If you’re on Windows, you are SOL, but here’s something that will definitely help :).

Start every day with a line of code.

I’m going to try an experiment: identify and implement 1 small habit each Monday that makes me a better solopreneur, and report the results back here. This week: Start the day with a line of Code.

[ update on Friday; December 5, 2014 – this has been hit or miss for me; been distracted getting my head around Agile and Scrum. But, on those days I’ve done it, I’ve written more code.]

Earlier this morning as I was lying in bed, checking news and zite, texting my girlfriend, avoiding another week of building FlashCommand, and I can across this post, “12 Ridiculously effective techniques to mastering productivity as a startup founder”. Number 1? Start every day with a line of code. That one line, that one act, will kickstart your day, focus your intentions, and give you momentium.

Here’s the quote that inspired the author (sorry, could not find the name of the author anywhere) from Ernest Hemingway:

Sometimes when I was starting a new story and I could not get it going, I would sit in front of the fire and squeeze the peel of the little oranges into the edge of the flame and watch the sputter of blue that they made. I would stand and look out over the roofs of Paris and think, “Do not worry. You have always written before and you will write now. All you have to do is write one true sentence. Write the truest sentence that you know.” So finally I would write one true sentence, and then go on from there. It was easy then because there was always one true sentence that I knew or had seen or had heard someone say. If I started to write elaborately, or like someone introducing or presenting something, I found that I could cut that scrollwork or ornament out and throw it away and start with the first true simple declarative sentence I had written.

So right after I post this, I’m going to write that line, probably the first iPhone view template Action Pack Variant in Rails for FlashCommand. Just basically a hello world, but the idea was galvanizing enough to inspire this post and get me up and working. Will let you know how it goes.

Got one small piece of advice that makes you a more productive solopreneur? I’d love to hear about it and give it a try.

An interesting Amazon innovation

 

440px Small USPS Truck

I just saw something I never expected to see again: a mailman delivering a big heavy box to my doorstep on a Sunday afternoon. Seems Amazon has started using the USPS for big box deliveries seven days a week, at least here in California.

I’m hoping this marks a revitalization of the USPS who since 1775 have been doing their neither snow nor rain nor heat nor gloom of night delivery thing but in recent years has become a fading anachronism in the digital age.

Now, if the USPS wanted to pick up some easy change, they’d start selling a sticker you could put on your mailbox telling the carrier to filter out those crappy paper spam advertiser circulars.

A Conversation with Sublime Text expert Wes Bos

If you’re a developer who lives in Sublime Text, this conversation I had today with Wes has some great information – give it a watch.

Comparing yourself to startups when you’re a solopreneur

IStock 000010827569Small

One of the hardest aspects of being a solopreneur is dealing with the emotional impact of all those startups who, unlike you, seem to live on Easy Street.

You hear about an app like Yo that sends just those characters to someone else raising $1.5 million on a valuation of $10 million and you ask yourself, “Am I stupid?”, “What’s wrong with me?”, “Why is it so easy for them and so damn hard for me?” We seem to be in an age where any random collection of lines of code can make money or get funded – except you.

Objectively, we know there must be a reason for this, and those others must be working just as hard as you are, sacrificing just as much as you are, but that’s not what our guts say. They say despair. They say give up. They say everyone else has the magic, not you, because you know you’re too old, too young, too inexperienced, too experienced, live in the wrong place or whatever your secret fear(s) are about your abilities as a developer and someone trying to create software others want and will pay for.

And then along comes a small bit of hope to your inbox like today. A post by James Clear about the hidden dangers of comparing yourself to others. The story James tells is too good to risk mangling – read James post. The point he’s making is twofold: you’re job is to create, not tell yourself no. Your job is to get out of the way of what you can create. No one else can be you and what you can create is uniquely from you.

It reminds me of something Howard Roark said in Ayn Rand’s other masterpiece, The Fountainhead, that has stuck with me over the years: “I don’t intend to build in order to have clients; I intend to have clients in order to build.”

And if you’ve ever heard of Steven Pressfield and the War of Art and what being a pro is really about, then you’ll get Jame’s second point loud and clear: being “a creative” whether it’s making dance or making code means you are and you must be a professional. Professionals learn to quell that insidious inner voice saying you can’t possibly succeed, so why bother, and show up and do that work no matter what.

The next time you are dog tired trying to push your particular giant boulder up what seems to be a endlessly hard hill, take a bit of solace and a helping of strength from all those around you who’ve push back their inner demons of doubt long enough to get their work out. You are not alone.

Big Screen Sublime Text 3 – Cobalt2 theme is awesome.

Wes Bos' Cobalt2 SB3 Theme

Wes Bos’ Cobalt2 SB3 Theme

I happen to fall in the “there’s no such thing as too much screen” camp when it comes to writing code, which is why my setup is a iMac 27-inch with a Apple 27-inch display on one side and a cheapie HDMI screen on the other. And given I’m not in my twenties by a long shot, I want text sized, colored and contrasted just right for putting in multiple hours of coding.

Which is why I’m overjoyed that Wes Bos released today his Cobalt2 theme for Sublime Text 3. It raised the bar on what an SB3 theme was capable of, adding all sorts of  visual niceties that add up to a better coding experience. From the files with icons for their types to great contrast in the Command Palette, this is a joy to use.

One last thing before I let you run off to either your SB3’s Package Control or Wes’s github repo: If you’ve ever tried to change the sidebar font size and line spacing in Sublime Text 2 or 3, you know what a sheer hell it is – and most likely to break. In Cobalt2, it’s easy (no guarantees in other themes…):

  • If you use Package Control to install SB plugins, install PackageResourceViewer so you can poke around inside your installed plugins. See this SO Answer.
  • Then, after install Wes Bos’s Cobalt2, go to line 497 or so of the Cobalt2.sublime-theme file in the plugin and increase the font size. You might also want to go up to the // Sidebar tree entry and adjust row_padding, given the font.size you set. Then save the file.

 

An Interview with a man from the Future