Stories about Software


Ask Me Questions, Help Me Be a Scientist

If you visit my site and ever pay attention to the side gutter, you may have noticed this.



I get a fair number of questions via various media: Twitter, Twitter DM, email, etc.  A lot of the answers to these questions wind up being blog posts or even series.  The Chess TDD series actually got started this way.

But something occurred to me recently.  I formed a hypothesis.  It’s probably only the most outgoing folks or those with whom I already have a relationship that will engage me in this way, meaning that a good chunk of the readership may want to ask questions but not have a comfortable venue for it.

As such, I’m drawing on the lessons of science classes growing up and running an experiment: I’m introducing this form.  It seems like a lower barrier entry way to submit a question, at least to me.  If I were reading a blog and wanted to ask the author a question, I might hesitate to email her since it’s not clear that she actually wants such questions.  But if she had a form on her blog saying, “ask me questions,” I wouldn’t feel any such reservations.

So, the experiment works if I wind up with more submissions to the form than I get email questions. Read More


The Phoenix of My New Site from the Ashes of my Battle with CSS

It wasn’t pretty.  There I stood, knuckles scraped raw, a black eye, and a nose that would probably never look quite the same way again.  But you should have seen the other guy.  I had emerged, victorious, my site finally behaving the way I wanted, and CSS lay quivering on the ground, a shattered mass of pound signs, periods, and curly brackets.  To use the word “literally” the way kids these days use it, that’s literally what happened earlier this evening.


You may have noticed some changes to my site if you’ve been visiting over the last few days (not the theme as much as content and layout).  Those are now more or less complete, pending any weird, little things that I notice.  There are a lot of changes, but none that should affect your consumption of DaedTech in any but a positive way.  Still, I encourage you to check out the site.

I slimmed down the menu options so that you can think of the site roughly this way, in order of menu items:

  • The blog (which is now “Home”)
  • Things I offer for free or pay (“Products“)
  • Things I do, mainly for pay (“Services“)
  • Things I recommend, or at least use (“Resources“)
  • I explain myself (“About“)

And, that’s it.  No sub-menus or complex navigation.  I wanted to keep things simple.  Along those lines, I’ve cleaned out my site side gutter a good bit, moving all of the stuff about my books and Pluralsight courses to “Products.”  I have no idea whether this will affect sales or not, but these are the kind of things I’m getting interested in measuring, so I might soon install some kind of heat map.  Right now, I’ll just have to see if my sales dip.  But I like it better.  The old gutter felt like a switch statement that was expanding ominously and sorely in need of some polymorphism or something.

I’d like to speak to the resources page.  Over the last several years, I’ve gotten a lot of reader questions along the lines of, “what’s that thing with the dots in your Chess TDD videos” or “what tool do you recommend for text editing” or “what programming books should I buy?”  I usually just gave off the cuff answers, but now my answer is always going to be, “check out my resources page.”  I’ll add to it and modify it as time goes by.  Two important things about that page:

  1. My level of endorsement for things there varies from “I use this and, meh, it’s something I use,” to “this is the best thing ever.”  Everything up there is something I have used or that I currently, actively use, but its inclusion there doesn’t necessarily mean I’d pitch it to you at a party over beers.
  2. Where applicable, I used affiliate linking there, meaning that for some of those links, if you buy the product, I get a commission from the vendor.  Affiliate links have absolutely no impact on the price of the items you purchase or your experience at all.  Still, if it makes you uncomfortable, you can always navigate to the site not through my link.  I still recommend (or at least use) the stuff there.  I built the page first, by listing everything that would go up there, and then did a second pass to see if there were affiliate programs for the stuff I’d picked.

I’ll probably do a post on affiliate linking for tech bloggers at some point.  But, in the interim, if you have a site and want to monetize it even a little, I’d recommend reading up a bit (and feel free to email me with questions).  Compared to sponsor ads and product pop ups, it’s an extremely low key, non-invasive way to earn a little bit of revenue.  I offer this mainly because I sort of wish someone had explained some of these concepts to me years ago.

One final change that I’ll mention is that under Services and About, I’ve started talking about the increasing share of my living that comes from writing these days, and how I’ve started to stumble into this interesting business model of “tech evangelism as a service.”  I’m writing a lot and enjoying it, so I now have a list of clients I’ve worked with, doing consulting around tech blogging.  Under “About”, I have a list of other sites where you can see posts that I’ve made (look for some new additions to that coming soon, as well).

So, that’s it for the DaedTech service announcement.  I’ll get back to regularly scheduled posts next week, including some Chess TDD and one I’m working on about how to ‘win’ at meetings that I’m hoping you’ll enjoy.



Low Cost Legacy Help

If I think back a number of years, I can remember sitting in a software shop and feeling like the iconic stranger in a strange land.  I valued writing clean code, practicing TDD, refactoring away from procedural, legacy cruft, and generally improving my craft.  This was not otherwise common.  There were architects in that place that were long on seniority and opinions but short on chops, and they really, really liked them some global state.  And class size?  The bigger the better.

I seriously felt like I was in some kind of weird, parallel reality.  We’d have lunch & learns and watch things like Uncle Bob videos or talks from Channel 9 or whatever, and I would leave thinking that some kind of brainwashing A/B trick had resulted in me watching a different video from everyone else.  It was discouraging.  

I made progress in fits and starts.  I’d refactor a method here, kill a singleton there, inject an interface here, delete some dead code there.  But, then I’d go for a long weekend trip and come back to find a new singleton with more global state than its recently deceased cousin.  It was two steps forward and one step backward on a good week.  Like wading upstream against a raging, waist-high river, it was slow, exhausting progress.

I remember thinking that it’d be great if I could plead with one of the speakers in the video to come in and talk to people in this shop.  Maybe if one of the folks from the video was there, speaking live to them, something would finally get through.  Or maybe the video hero would take pity on me and offer me a job.  But I also knew that this was a pipe dream because hiring a consultant like this would be wildly expensive.

A lot of years have passed since then, and my life has evolved considerably.  I make most of my living doing coaching and helping improve software development craft.  Other parts of my living come from making videos and writing books about the same.  And through it all, I’ve never forgotten that feeling — a feeling with which, I’d imagine, many reading are familiar.

I’ve recently piloted with great success a new coaching model.  Think of the Chess TDD series, but imagine that instead of building a (non-trivial) toy application, I was doing a codecast in which I refactored some nasty legacy method in your code base to make it testable and narrated over it, explaining what I was doing and why.  The beauty of this approach is that we can pick some problems that are representative of your code base, and you can refer to the videos for context when doing refactorings from then forward.

This has proven to be a good option for small shops because it’s low touch.  It doesn’t require much if any synchrony, and, perhaps more importantly, it doesn’t require flights, hotels, a multi-day engagement fee with opportunity cost, or advanced schedule clearing.  It’s really just a matter of billable hours, which winds up being something like three hours per hour of video footage.  And five-ten hours of video footage is a surprisingly large, helpful amount.

Think of it this way.  It’s like someone recording a Pluralsight course wherein they refactor your code.  So if you’re reading this, and you think your code base and/or team could use a kick in the pants, feel free to reach out, even if it seems like a long shot.  There’s no charge for us to talk and even for me to sign an NDA and take a look at your code.  You can tell your boss or whomever that I really just kind of jump into problem solving mode and only start to think about billing arrangements once I’m convinced that I can contribute meaningful value to you.

Because, honestly, it’s also a lot of fun.  :)


I Have a New Book

It’s been an interesting week with respect to my philosophy about the future of labor for knowledge workers. This post about corporate idealists and seniority got relatively popular and attracted around 10,000 readers. If you’re a regular follower of this blog, you know that one was just the latest in a series of a few posts I’ve done on this topic and you probably also know that these are coming from my work on a book. But this understandably wasn’t immediately clear to new readers, and so I got a smattering of inquiries as to where the book was for sale or whether it could be pre-ordered. I invited those folks to stay tuned or sign up for my mailing list, but alas I had nothing to offer.

A few days later, I noticed the hashtag #talkpay on Twitter, promoting the controversial but clearly forward-thinking idea that making salary information confidential is problematic in a variety of ways (specifically, in this case, that it facilitates gender and racial pay inequality). I’m not a salaried employee, so I couldn’t offer information about my salary, but it did prompt me to tweet this:

As you can see, this was a pretty popular sentiment, which jived with the reception my post about salary negotiation hacks received. There appears to be a great deal of appetite for reconsidering the knowledge worker’s relationship with the corporate structure.

To this end, I decided over the weekend to put an end to my large-batch approach to writing this book and include anyone that wants to come along for the ride right from the outset. I wrote my initial introduction to the book and published it on Leanpub (most of the material I’d been gathering is still scattered in a large document on my personal google drive). Beware, there’s not much there, but that will change. In the coming months, I’ll be writing to the book almost the way I would to a second blog. So, stay tuned.

The infant book is now officially on Leanpub and officially for sale. I have absolutely no idea what I’m doing when it comes to marketing or setting price, so please bear with me. It’s doubly confusing because Leanpub offers a lot of different options for differentiated pricing. The minimum price for the book is $1 and the suggested price is $4.99. The suggested price was just the default, and the minimum price is 1 cent more than the default for no particular reason other than selling things for 99 cents seems somehow hokey to me. I considered making the initial minimum price free, since there’s not much book there, but data about whether people would pay for the thing or not is a lot more meaningful if people have to pay for it. If I made it free, I might get a lot of spurious information (lessons learned from Lean Startup and 4 Hour Work Week).


Now, here’s the nuance. You can get the book for free. I wanted to be sure to offer that option to people that are regular fans and followers of the blog and will provide feedback as I write it along with support and shares. So I created a coupon that I’ll send out to the DaedTech mailing list as well as anyone who signs up for it from here forward. Also, I’m not going to lie. If you just email me, I’ll send you the coupon too, but I’d prefer to do it through the mailing list. For those of you on the mailing list, look for the coupon email in the next few days.

As I said, I have no idea what I’m doing when it comes to marketing, so I hope this makes sense and isn’t crazy. I wanted to err on the side of giving too much away if I erred in any direction. Weird as it sounds to say, I’ve never regretted erring on the side of giving away content. People seem to live life petrified that they’ll give something away for free when they could have wrung a few dollars out of it, but for me, the goodwill and engagement created by giving away content has paid far more dividends down the line than a few dollars.

So I cordially invite you to join me on this book journey. And, naturally, I invite you to invite as many of your friends and colleagues as you please! :) I’m excited and looking forward to this, and fascinated to see how it goes.


Some Changes to DaedTech Because I Want to Build a Thing

If I squint hard enough, I see an odd symmetry to my life that can be book-ended pretty simply with the phrase, “I want to build a thing.” I say this now, and I said it when I headed off to college, but I didn’t say it all that much in between. At least, I didn’t say it in the macro sense. But let me start the story a little before college.

As a kid, I was pretty equal opportunity when it came to academics. This was eventually born out somewhat empirically by my nearly identical SAT scores for math and verbal. So even though I had aptitude for math and the sciences, the first actual profession I aspired to in a non-childish fashion was to be a writer/novelist. I was pretty sure that I would make my living this way until it came time to apply to college. Here, I punted on a decision, applying to what I perceived to be the most rigorous major/school at each college and reasoning that I’d sort of force myself to make a decision. Mission accomplished. After weighing options and finances, Carnegie Mellon University in Pittsburgh was my best option and they were pretty good at Computer Science, so Computer Science it was. The world was enthralled with dot-coms, I’d always liked hacking around on my programmable calculators, I was told I’d be printing money when I graduated, and so I headed off to school saying, “alright, I’m gonna go build a thing!”

AirportMetalDetector Read More