Ask For Help

November 20th, 2010

When I first started working at Apple, I was 18 years old. I was going to school at UC Santa Cruz and studying to be a computer programmer. Like my dad.

I was lucky to end up as a Quality Assurance tester inside a software development group at Apple. I worked for the Software Update team, which was essentially responsible for diagnosing, evaluating, fixing, and shipping bug fixes for anything in the System 7.5.x era software that Apple was building at the time.

I was so bold back then that I told my bosses, and my bosses’ bosses, and my peers, and anybody who would listen that I wanted to be a programmer. I wanted to write Mac software. No, I wanted to write the Mac!

That dream came true on May 13, 1996, when I joined Apple as Software Engineer I in the System Updates team for Mac OS Engineering. I immediately went to work, fixing bugs here and there as fast as I could. I took copious notes, in an effort to assure my bosses that I was the right person for the job. How did I spend my time over the past 5 minutes? I could happily elaborate.

I was so nervous about my performance, so worried that somebody might notice I was a fraud, that I didn’t ask for help as much as I should have. When somebody assigned me a problem, I scraped the walls of hell to find the answers, lest it be revealed that I wasn’t quite as smart as I might have seemed.

All the bugs in our group were difficult. One day I was assigned a particularly vexing one. I had shown a knack for tracking down tricky issues, but this one stymied me. I hammered away at the bug but I couldn’t figure out the cause. I couldn’t even think of where to go next. I was petrified. This was it, they would learn about my incompetence and put me out to pasture. I decided to take a walk.

I clearly remember that balmy summer day in Cupertino. I was filled with dread. I walked from Apple’s Infinite Loop headquarters, across Highway 280 on De Anza boulevard, towards the expansive suburban doldrums of Sunnyvale.

My pre-hire boldness had abandoned me. “Maybe I should quit,” I thought to myself. “That would be a stoic way of getting out of this mess.” It sounds so dramatic in retrospect, but I was so sure of my failure, it seemed like an obvious move at the time. I talked myself through the facts of the bug in question, and simply could not think of a solution. I couldn’t think of a part of a solution. I couldn’t even think of a step in the direction of a solution.

I walked for an hour or more, and then returned “home” to my office at Infinite Loop. I sat at my desk and stared into the monitor, hoping against hope for some inspiration. My friend and coworker, Darren Litzinger, stopped by my office.

“What are you working on?” he asked.

“I have a terrible bug, and I can’t figure it out.” The thought of asking for help didn’t even cross my mind. But fortunately, my frustration spoke on my behalf.

Darren sat down in my guest chair and adopted an excited look. “Well, what do you know about the bug?” He was here to help. I hadn’t even asked for it, yet here he was. I could have asked for it at any time, and I didn’t even realize it.

Talking through the bug with Darren, he asked me to perform particular tests at the computer. I realized that we had completely different approaches to problem solving. It wasn’t that his were right or that mine were wrong, they were just different. As it turned out, his technique saved the day and we got to the bottom of the issue within a couple hours.

As I moped along De Anza Boulevard that afternoon, I thought that I might not be cut out for software engineering in general, let alone at a world-class company like Apple. After I retreated back to my office and got a surge of help from a trusted colleague, I realized that I was perfectly qualified for the job. Especially if I could ask for help every once in a while.

MarsEdit 3.1.3

November 18th, 2010

MarsEdit 3.1.3 is out and contains some “finally!” bug fixes, as well as a relatively major shift in the way that Google Blogger type blogs are configured by default.

Improved Rich Text Paste

As I have said before, the Rich Text editor in MarsEdit, as incredible as it is, is a work in progress. One of the things many people have reported since MarsEdit 3 came out is that it can be particularly irritating when it comes to pasting text. Often extra paragraphs would be inserted, and things just seemed generally unreliable. I’m not promising perfection yet, but I think you’ll find it a lot cleaner starting with this update.

Communicating With Blogger

For years, MarsEdit has communicated with Blogger using its standard “Google Atom” interface, which was developed in tandem with the standard AtomPub protocol. Over the past couple years, they have been working on a newer version of the interface which aims to be more compatible with the AtomPub standard. MarsEdit started supporting this in release 3.1.2, and starting with 3.1.3, “Google Data Protocol 2.0” will be the standard means of communicating with Blogger.

The big win for users with this change is it should lead to more reliable preservation of HTML markup in your posts. But I don’t want to jump the gun and shift everybody over to it just yet, so I’m only defaulting newly configured Blogger blogs to use the new protocol for now.

If you’re feeling adventurous, you can switch your previously-configured Blogger blog to use the new protocol. Just open up the blog settings in MarsEdit, switch to the “General” pane, and select “Google Data Protocol 2.0” from the System API popup. Then refresh your blog to make sure you get a fresh copy of all your recent posts.

Local Draft Duplicates

One of the major annoyances people run into with MarsEdit is a creeping number of extra draft copies in the “Local Drafts” area. I have been tackling this problem for years, and I think I finally found one of the last, if not the last cause of the problem. If you’ve been running into this, delete all the cruft now and hopefully it will stay tidier going forward!

Change Log

Most of this was discussed in detail above, but in case you want a definitive list of the user-facing changes that come with 3.1.3, here it is!

  • Improvements to paste functionality in Rich Editing mode
  • Avoid a bug where saved local-drafts were not deleted after publishing
  • Fix a bug that caused custom field values to go blank while editing a post
  • Blogspot-specific changes
    • Newly configured blogs now default to GData 2.0 protocol, fixing some HTML formatting issues
    • Fixes to GData 2.0 protocol to allow edit date, categories, etc.

Staying In Touch

October 30th, 2010

Update: I originally cited the content of a customer’s email in this post, and although I didn’t reveal her identity, I don’t think this was appropriate or particularly constructive.

Mea culpa.

In the future I will never cite the contents of a customer’s private email, no matter how anonymously, unless they have expressly permitted me to do so.

I have edited the post to remove the contents of our correspondence with each other. I am leaving the post because I still think it expresses some interesting ideas.

Continuing the recent trend of posts about, essentially, “just doing it,” the purpose of this post is to underscore the wisdom of staying in touch with customers, while acknowledging that doing so brings its own challenges.

Since I established my own web store a few years ago, I have collected the emails of customers who buy my software and, for those who leave the pre-checked option selected, subscribe them to a company newsletter for infrequent announcements:

MailingListCheckbox.png

Infrequently is the operative word here. In more than three years I’ve neglected to send even one email to these folks. This is a problem, because permitting me to contact them set up the expectation that I would. When major releases such as MarsEdit 3 have come out, some people don’t find out until months later, and tend to be annoyed that they haven’t heard about it directly from me.

Yesterday, I finally got around to setting up a mailing list with Campaign Monitor, drafting a simple plain-text letter, and pressing the send button. I finally broke the ice.

For those of you who are not on the mailing list, here’s what I said:

News From Red Sweater Software

Hello from Red Sweater! This is Daniel Jalkut, its founder and, for now, its only employee.

When you purchased one of my products, you agreed to receive infrequent email updates that keep you up to do date with my latest products. Since that time you have received approximately zero emails! I sort of dropped the ball on direct communication, but I’m working to rectify that now.

Messages will still be infrequent and hopefully pertinent, but if you are no longer interested in receiving updates about Red Sweater, just visit this link to unsubscribe:

(unsubscribe link)

On to the news: what’s happening at Red Sweater?

1. MarsEdit 3 Released

Earlier this year I released a major update to MarsEdit, our desktop blog editing application. MarsEdit now sports a rich text “WYSIWYG” editor, support for WordPress pages, and a media browser that integrates with iPhoto, Aperture, and Lightroom. Read more about MarsEdit 3 on the web:

http://www.red-sweater.com/marsedit/new3.html

If you don’t already own MarsEdit 3 you can purchase it for $39.95, or update from a previous version for $14.95:

https://www.red-sweater.com/store/

2. iPhone and iPad Releases?

People often ask about my plans to release applications for the iPhone, iPad and iPod touch. It’s easy enough to convey my intentions, but a bit harder to make specific promises. I am very excited about building iPhone and iPad versions of my apps, especially MarsEdit and Black Ink. I have made significant progress on these apps but there is still fine-tuning that needs to be done before I’ll be prepared to release them publicly.

3. The Mac App Store

You may have heard the news that Apple is planning to launch a Mac version of the App Store, which will give Mac users the ability to easily browse, purchase, and install applications in a similar manner to the way it works for iPhones and iPads. I’m hoping to get most or all of my apps into the catalog so I can reach an even wider audience of users. The good news for you, my existing customers? More customers will hopefully lead to more revenue, which means more resources and impetus to continue adding great features to the applications you already love.

4. Keeping In Touch

As I said earlier, I am resolving to do a better job keeping in touch. Next time a major update like MarsEdit 3 is released, you’ll hear about it before 6 months have passed! But if you want to proactively stay tuned in on an even finer level, there are some resources available to help you monitor our progress:

Email support. You can contact Red Sweater with whatever’s on your mind, be it a bug report, feature request, or just to say hi.
Address: [email protected]

Red Sweater Blog. The official company blog is my platform for providing a combination of company news and business-related thoughts and analysis.
Link: http://www.red-sweater.com/blog

Twitter accounts. For short, conversational style updates I maintain a personal account, a company account, and a special account just for MarsEdit:
Link: http://twitter.com/danielpunkass
Link: http://twitter.com/redsweater
Link: http://twitter.com/marsedit

5. Thank You

I want to close by thanking you for your business. I have been working on Red Sweater for over 10 years now, and in the past few years it has reached a level of success that supports myself, my wife, and my son. This is so unfathomable to me that I can only assume the sky is the limit! Let’s keep working together: your feedback and support combined with my desire to build great products should lead to many more years of successful results.

Daniel Jalkut
Founder, Red Sweater Software

To unsubscribe from this email list, just visit this link:

(unsubscribe link)

Delivery Confirmation

Campaign Monitor made the mass delivery painless for me. Thanks to their sophisticated tools, I know a day later that the vast majority of recipients received the letter, and only a small percentage have unsubscribed. Out of the thousands (wow!) of messages that were sent:

97.1% appear to be delivered
2.9% bounced
1.48% unsubscribed after receiving
1 reported it as spam (1 person, not percent – can’t win them all!)

This kind of feedback is great, but nothing compared to the direct responses I got from customers. The semi-personal tone of my letter inspired customers to respond in kind with heartfelt support and encouragement.

I received dozens of responses, ranging from the brief, enthusiastic “Word!” to longer, philosophical letters about small business, following one’s dreams, and the meaning of work in life.

Then, early this morning, I received this:

[EDITED: In retrospect, I do not believe it was appropriate for me to share the content of a customer’s email here, even if information about her identity was removed.]

An upset or merely irritated customer always calls for a cautious response. The last thing I want is to escalate the situation. But this response is particular challenging, due to the number of provocative facets:

  1. The customer is not pleased by the email I sent.
  2. The customer is using a sarcastic, admonishing tone.
  3. The customer projects a lack of respect by omitting proper punctuation and sentence structure.
  4. The customer’s core criticisms are vague and subjective, making it hard for me to evaluate whether an apology or correction is called for.

These facets sort of multiply with each other and make it difficult not to respond defensively. My first reaction is to shout something into my email client like “What the hell?! Most people like a little humanity in a company, and furthermore, I did enumerate benefits where appropriate, and the content of this letter addresses the most common questions I have received over the past few months. And … and … who pissed in your Wheaties, anyway?

Instead I take a deep breath, vent a little to my friends on IRC, and respond:

[EDITED: As with the content of the email from the customer, I don’t believe it is appropriate for me to include the content of my response.]

I then proceeded to vent on Twitter about the response. I wasn’t particularly looking for comfort, but was glad to receive supportive responses from people who agreed there was cause to feel irritated by the customer’s tone. A sample of the dozens of reactions:

“That’s the kind of thing, when said in person, earns someone a kick in the teeth.” — @dssstrkl

“That guy is a jerk. Keep your personality in your work. if he doesn’t like it, let him use products from huge faceless corps” — @scottaw

“Personally, I couldn’t live with myself without adding a note about their tone. Why encourage an asshole.” — @mrgan

“Screw that guy. He’s just jealous that your Indie endeavors are successful enough to support you and your family. Good on ya!” — @fonix

“He presumes to speak for all your customers, co-opting “us.” He does not. Bravo on your measured and thoughtful response.” — @artgillespie

“That guy replied as if you were trying to sell him something. Your letter was more like a ‘state of the union’ communication.” — @morrick

Many of the responses refer to the customer as “him,” while none of them refer to “her.” In fact, this customer is either a woman, or a man with a very feminine name. Apropos of not much, but it’s interesting that we tend to assume somebody who is “being a jerk” is a man. I would have made the same assumption.

Do I feel a little disingenuous about responding to the customer politely and without indication of my annoyance, while essentially glorifying her message behind her back on Twitter and now here? Yes. This is not really my style, and I don’t think it’s very classy of me to share the private message of a customer, even if I am preserving her anonymity.

But, I think this experience is instructive both to customers and other small-business owners. And since I already vented on Twitter and essentially let the cat out of the bag, I thought I might as well go all the way.

Staying In Touch

What does it mean to stay in touch? It means building and preserving a relationship with customers. The stronger the relationship, the greater the empathy for the other’s circumstance. But as with other relationships, the increase in communication and contact leads to an increased risk of misunderstanding and offense.

My letter served a valuable purpose. It let my customers know that I’m thinking about them, that the checkbox they vaguely remember leaving selected wasn’t pointless. That I do have plans for the company and for the products they purchased, and that I am interested in turning a new leaf with regard to communicating directly with them.

The challenging customer and my reaction to her has also been helpful. It reminds me of the related importance of “staying in touch” with my own values and priorities. Over the course of Red Sweater’s growth, I have used a very rules-based approach to how I handle just about everything. Running my own business means biting my tongue and doing “the right thing” even when the instinct in my animal brain wants to do the opposite. This is true for coding habits, fiscal responsibility, and yes, customer support habits. A variety of informal rules help to keep me in line.

As I have gained confidence in my own decisions, I find myself more prepared to break these rules. I suppose that pragmatism slowly takes over. When I first started out, I informed my decisions by asking “what would a good business do?” Then I learned to admire other Mac software companies such as Bare Bones, Rogue Amoeba, Panic, and Omni, and asked myself “what would they do?” I still defer often to the wisdom of others, but sometimes I have the distinct pleasure of asking myself “What would I do?” and acting on it. Staying in touch with myself is as important as staying in touch with my customers.

Blog The First Draft

October 26th, 2010

MarsEdit users sometimes sheepishly admit that they aren’t blogging as much as they “should” be. Excuses vary, but it usually boils down to the classic issue afflicting all of us who try to stick to a productive routine: we simply fall out of the habit.

Long time readers of this blog will note that I’ve had my dry periods as well. But watch closely: I’m blogging now about a thought I had just earlier this evening, while reading Twitter updates and responding to them. Colin Barrett complained that his perfectionism is limiting his blogging:

I plan to write more; I think my @secondconf talk on freelancing would work well as a series of posts. Just gotta get past my perfectionism.

I’m incredibly familiar with this line of thinking. In fact, it’s a variant of the indefinitely postponed software releases that I just wrote about. I read Colin’s tweet and, before I had even noticed that the neurons in my brain were firing, I had responded with a bit of encouragement:

@cbarrett The modern business model for solo writing is to blog your first draft and sell your final.

I’m referring to the fact that very few blogs are edited to the level of professionalism you might find in literary or scientific journals. On the contrary, some of the web’s most celebrated bloggers have let their essays loose in a semi-rambling form, only to piece them together later into a more refined, salable volume. Rands in Repose and Joel on Software spring to mind in the techie world, while writers such as Heather Armstrong and Julie Powell turned their respective parenting and cooking blogs into million-dollar enterprises.

The ever-so-thinly veiled message? Don’t worry so much. Just blog it. If you are among the lucky few who achieves perfection effortlessly, then by all means carry forth. The rest of us are lucky if we coerce a unit of coherent thinking out our brains and onto the web. Perfectionism? Your editor will help you achieve it after you’re famous.