Should my barber do a technology upgrade?

I noticed a barber shop sign at a local strip mall last year and stepped inside, hoping to get a haircut. The lone barber turned away from the customer in his chair, looked at me and said, “Sorry, man. It is by appointment only”. It was relatively spacious place. There were no other waiting customers there. It felt peaceful and quiet. Local NPR station was playing on the radio. I took his card and left. I got my haircut somewhere else that weekend. Over the next month or so, I called him on Saturdays, for the hair cut appointment. He was booked. Every single weekend. I wised up and called him on Friday. I got the appointment for the next day. I did not get the slot I wanted, but I picked from a couple of open slots. I showed up for my appointment, and I have been going to him ever since.

He charges a bit more than some of the other haircut places, but he does not rush to move on to the next customer and my wife is impressed by my haircuts. Enough said. The best part is that he plays NPR in the shop. All day long. I can continue listening to This American Life, All Things Considered or Snap Judgment as I get out of my car and step inside the barber shop without missing much. There is a sense of privacy and exclusivity. It is perfect! And I love it!

barber-shop

Photo Credit : https://flic.kr/p/mer3eX

He is running an appointment-only business and the probability of you getting an appointment on the same day, or a time slot of your choice is pretty much zero. He takes calls on a regular (non-smart) phone and records his appointments on a paper pad with a pen. He takes cash. There is not much of hi-technology there to speak of. One day, we started talking about technology. I asked him if he has thought about using one of the online services to help him with his business. The customers could do self-serve appointments online and he will not be interrupted on his phone while he is with his customers. Customer will get automatic appointment reminders. The payments can also be done online. He could build a database of his customers, create a following on social media and generate more business.

He knew about all of these options. But he seemed reluctant. He wants to keep it personal. He wants to talk to his customers directly, because when they talk to him and get the appointment, they show up. “There a lot of people who would love to waste my time. They will book fake appointments online and not show up.”, he said, “And I don’t want customer’s credit card numbers. I don’t have the time to deal with credit card refunds and disputes. With a larger business, when there are a few more barbers in the shop, it would make sense to hire someone to be at the front desk and handle everything being dependent on additional technology entails, but not now.” The conversation continued for a few more minutes, but his reluctance to consider upgrading to newer technology was quite evident.

He seems to have three main concerns :

  1. He wants only qualified/screened customers. He wants to keep his schedule full.
  2. He wants to keep things simple. He wants to avoid handling customer’s credit card information.
  3. He will personally need to transition to the new scheduling system. He wants an assistant to handle that.

I would recommend a gradual transition. Here is a 10 point plan to get him started –

  1. Create free accounts with some of the online scheduling services and get familiar with them. Appointy or ClickBook are a couple of services to try. They are not paying me to promote them. These are just two that stood out of many I researched.
  2. Start using a tablet device to create and update some dummy appointments. I would recommend going with a data plan with a cellular provider rather than the Wi-Fi option. It will be significantly less tech hassle for you that way. Just trust me on this.
  3. Use the online scheduling service trial for 2 weeks from the tablet device.
  4. Based on the trial experience, sign up with one of the services for a month-to-month plan.
  5. Handpick some of your regular customers and ask them to try the online scheduling service.
  6. Other customers will continue to call on your existing phone for new appointments, rescheduling or cancellations. Update the schedule on paper as well as online (using tablet).
  7. Continue to take cash. You will have the option to add online payments to the service for additional charge. You will not have to take the credit card numbers yourself.
  8. Do this for 3 months. 3 months are necessary to ensure at least two cycles with a set of customers. People tend to have haircuts every 3-6 weeks.
  9. Learn, evaluate and adapt. It is very important to plan for contingencies. What happens if the online scheduling service temporarily goes down? What if you drop and break your tablet in the middle of the day? Ditch the paper completely if you feel confident.
  10. Tell more customers about the online scheduling option and go from there.

This exercise has reinforced my position that software exists to support the business. Not the other way around. To my barber, this is serious business. This is his livelihood. As techies, we tend to impart an importance to the technology for its own sake, but transitions and upgrades (if not executed and managed carefully) could be extremely detrimental to the business.

Whether he upgrades or not, He will continue to have my business. I wish the best for him.

Update : Since I wrote this, the barber shop has moved to a new location nearby. There are other barbers in the shop now. He is still by appointment only. His partners take walk-ins. There are large flat-panel TVs on the wall that sometimes play the local NPR channel. It is a busier place than before. Although the sense of privacy and exclusivity is not there anymore, I am still going there for haircuts, for now.

Announcing CodeDemo

It is a challenge to use code snippets in presentations, demos and live coding sessions. I have struggled with this and seen many speakers jumping through hoops to assimilate code snippets in their demos. I had to create something to ease this pain.

Today, I am announcing the general availability of CodeDemo. A tool for instructors, presenters and speakers who create instructional demos, record screen-casts or do live presentations. CodeDemo pastes code snippets into your favorite IDE without getting in your way.

I decided not to open-source CodeDemo to challenge myself to an exercise in commercialization. I decided to learn about entrepreneurship, marketing, sales, licensing and other aspects of software commercialization. It has been an MBA’s worth of education so far. This journey is not over yet. I am taking the Lean approach of creating a Minimum Viable Product. The future of CodeDemo, its feature set and the price, will be shaped by the traction it gets in the market, the feedback from the customers as well as patterns of use reported by the users.

Head over to http://codedemo.net to grab a copy for yourself. Let me know if find it useful – I will be very excited to hear from you.

Here is a quick 2 minute introduction to CodeDemo :

[youtube]aFn3boBAWjw[/youtube]

 

Code Validation in TortoiseSVN pre_commit_hook

If you want to abort a commit if your code fails certain rule and you don’t have access to the SVN Server to configure a hook. What do you do ?

Assuming you are using TortoiseSVN, you can configure a Client-Side hook.

Here is an example – Say you want to abort commit if you have a comment in your code that starts with //Do Not Commit. You can create a PowerShell script that validates all the files in your changeset and use this script as a Client-Side pre_commit_hook in TortoiseSVN.

TortoiseSVN-Settings-HookScripts
TortoiseSVN-Settings-HookScripts

The pre_commit_hook configuration :

Configure-Hook-Scripts
Configure-Hook-Scripts

//Powershell script : pre_commit.ps1

$donotcommit = “//Do Not Commit“;

$changeset = Get-Content $args[0];

foreach($file in $changeset)
{
if( Get-Content $file | Select-String $donotcommit -quiet )
{
Write-Error$file contains code that you are not supposed to commit. [$donotcommit]“;
exit 9;
}
}

Now, if your changeset has a file with a comment starting with //Do Not Commit and you click on OK to commit this change, the commit will be aborted with this error message –

pre_commit_hook-validation
pre_commit_hook-validation