Dev Blog

The True Cost of a Feature: PIN codes and the FreshBooks iOS App

by Craig Wilson on June 26, 2013

In the world of product development, learning how to say “no” is one of the most difficult yet important skills one can have. While the list of features that could be added to your product is always endless, being able to determine what your product does not do allows for greater focus and attention to detail. Having the confidence to say “no” also means that you can investigate and select the features that will provide the most value for your users, instead of feeling pressured to address every feature request for your application.

As an example, after the launch of our FreshBooks iOS application last year, some of our customers had concerns about the application’s lack of a PIN code. They feared that this omission raised security issues, and made their business data vulnerable to attack or accidental corruption. As a team we had discussed PIN codes during the design of the application, but ultimately decided against implementing them. In this post I’ll explain the rationale behind our decision, and give an overview of the security measures in iOS that made our decision possible.


In mobile applications, PIN codes are passphrases that the user must enter to unlock access to the app. They are typically entered after the application is launched, and function as an initial layer of authentication for applications that connect to an online service. This allows users to leave the application logged into their account with the service while still having a rudimentary method of blocking access for anyone but themselves or other trusted parties. In the case of FreshBooks, this would mean that our users could have a basic level of security without having to log out of the FreshBooks application after each time they used it. This would also result in a speedier launch experience, as they would not incur the cost of the application re-syncing their data each time they had to log in. While these examples make PIN codes seem like a good idea, in practice they do not provide any meaningful additional security for the amount of effort required to properly implement them. Additionally, supporting PIN codes may lead to less-than-ideal experiences for the end user. To see why, let’s step back and examine the true cost of implementing a feature in an application.


No application feature exists in isolation; if you offer customer support to your users, then giving your customers additional powers necessitates supporting them in the event that those powers are not correctly used. If we implemented PIN codes in the FreshBooks iOS app, what happens if the user forgets their PIN? How would they regain access to the application? If no additional functionality were implemented, the user would have to delete, then re-download the FreshBooks application, log back into their account on the app, and finally create a new PIN to resume their work. This is obviously not a user-friendly workflow – would the user know that they had to delete the application to regain access, and that doing so would not delete any of their data? Would confused users reach out to FreshBooks customer support, or simply stop using the app altogether?

Looking at the above scenario, our default solution creates its own problem: being able to regain full access to the app after deleting it renders the entire PIN code feature moot. A thief that knew the customer’s FreshBooks login credentials could simply delete the application, then reinstall it to gain access to the customer’s information. As such, the right thing to do would be a user-invoked PIN-reset mechanism in both the application and a server-side component, analogous to mechanisms for resetting a password for a website. The PIN code would need to be stored on a server and associated with the customer’s account or device, so that when the app is reinstalled the PIN code would still need to be entered. This greatly increases the scope of the feature, however, and also increases the testing effort to detect any vulnerabilities that the mechanism may have.

This additional work extends to every area of the company. At FreshBooks we pride ourselves on having amazing in-house customer support. Our support staff would need to be trained on how to handle the situation where a customer has forgotten their PIN, and needs to regain access to the app. How would we verify the customer’s identity? Would we email them a new, random PIN and guide them through the process to set a new one, or would we take them through the aforementioned password-reset process? These processes, and any associated tools, would need to put in place to enable the support representative to get the customer’s app back in working order as soon as possible.

There are many other scenarios like the above that would require building additional functionality into the system and creating new processes across the organization, just to support the base feature of PIN codes. Should users be permitted to enter as many incorrect PIN codes as they want, or should the application take some kind of security precaution after a certain number of attempts? If the latter, should the type of precaution (lock access to the application, wipe all local data for the app, etc.) be configurable? All of the above functionality could be developed, but doing so comes at the cost of other features, most importantly ones we believe would provide a larger benefit to a greater portion of our users.

While the above considerations should be taken into account when considering any new feature for an application, we would not have been able to reject adding PIN codes to the app if our customers’ fears were legitimate. Thankfully, however, the design of iOS gave us confidence that adding PIN codes would not result in any more meaningful security in the application. In the remainder of this post I will elaborate on the security measures present in iOS, and what they mean for application developers.


Starting with the iPhone 3GS, iOS has featured system-wide 256-bit AES encryption to protect all data on the device. At a high level, this encryption is enabled when the device is locked with a passcode, and disabled when the device is unlocked. This means that in order to read the contents of a device, one needs the passcode set by the user, or a brute-force method to try and guess it. iOS has mechanisms to prevent brute-force attacks, however, such as lengthening the wait time between passcode attempts with each successive incorrect attempt, and an optional setting to wipe the contents of the device (render them cryptographically inaccessable) after 10 failed attempts. Apple provides a much more detailed implementation of iOS’ security measures at this website.

For our purposes, the most important takeaway from this implementation is that once a device is unlocked, all data on the device is fair game. Having a PIN code on the FreshBooks application will not prevent a malicious third party from digging through the contents of the user’s business data if they’re able to unlock the device and connect it to a computer.

From a user’s perspective, securing a device’s data is simple. All they need to do is enable a Passcode Lock. This can be done within the “Settings” application, following Apple’s directions given here. While the passcode defaults to a 4-digit number, users can set the “Simple Passcode” option to “off”, allowing them to set a longer passcode that can also include letters and symbols.


In addition to data protection, our customers also requested PIN codes as a way to restrict access to their FreshBooks information on a shared device, with a common scenario we heard involving a device that is shared amongst family members. Obviously the parents wouldn’t want their children accidentally modifying their FreshBooks account, so having a PIN code seems like a logical way to solve the problem. It turns out, however, that iOS has built-in functionality to address this scenario in a more robust fashion.

The “Guided Access” mode, available in iOS 6.0 and above, restricts the device to a single app by disabling the “Home” button and gestures, and can even disable individual controls and functionality within the app.

Configuring a Guided Access session

The Guided Access configuration screen

A Guided Access session with a disabled address bar

Individual components, in this case the address bar, can be disabled

Allowed controls still function

Other controls still function

The user cannot leave this mode without entering a passcode, and this passcode is different than the one used to unlock the device itself. Thus, a parent could lock the device to a specific game, and prevent their child from navigating to other applications on the device. More information on Guided Access is available from Apple’s support article.

In addition to Guided Access, iOS also offers “Restrictions”, where specific functionality can be disabled, while still allowing the user to use multiple different applications on the device. The user can be prevented from installing or deleting apps, purchasing content from the iTunes or App Stores, or even using specific apps like Safari, Camera, or FaceTime. Similar to Guided Access, the user must enter a special passcode to exit this mode. An Apple support article about Restrictions can be found here.


Although PIN codes seem to have an obvious benefit in use in mobile applications, upon closer inspection they provide limited benefits, and can even imply a false level of security. By leveraging iOS’ native device encryption, along with the Guided Access and Restrictions features, we were able to make a strong case that PIN codes would not provide any meaningful value to the FreshBooks iOS application.

We hope this case study enables you to more intelligently evaluate feature requests for your own applications, and devote efforts to features that will add true value for your users.

54 Comments (add comment)

Omar says:
Jul 9/14 4:12 pm

Hi, yup this piece of writing is actually pleasant and I have learned lot
of things from it regarding blogging. thanks.

David says:
Jul 11/14 9:01 pm

This article was very useful in outlining the importance of feature prioritization. I hadn’t previously understood how a single feature would affect the scope of a moderately sized project.

Thank you for taking the time to write this!

Jul 15/14 3:55 pm

hello there and thank you for your information – I’ve definitely picked up something new
from right here. I did however expertise a few technical points using this web site, since I experienced
to reload the website lots of times previous to I could get it to load correctly.
I had been wondering if your web hosting is OK? Not that I’m
complaining, but slow loading instances times will often affect your placement in google and can damage your high quality score
if advertising and marketing with Adwords. Well I
am adding this RSS to my email and can look out for a
lot more of your respective intriguing content. Make sure you update this
again soon.

Jul 16/14 1:36 am

If some one wants expert view on the topic of running a blog after
that i propose him/her to visit this weblog, Keep up the pleasant work.

Jul 16/14 8:53 am

Greetings! This is my first visit to your blog! We are a team of
volunteers and starting a new project in a community in the same niche.
Your blog provided us valuable information to work on. You have done a wonderful job!

Jul 18/14 8:25 pm

Valuable info. Fortunate me I discovered your web site by
accident, and I am stunned why this accident didn’t happened in advance!
I bookmarked it.

Caitlyn says:
Jul 19/14 9:22 am

Awesome article.

Jul 19/14 10:45 am

I was curious if you ever considered changing the layout of your website?
Its very well written; I love what youve got to say.
But maybe you could a little more in the way of content so people could
connect with it better. Youve got an awful lot of text for only having 1 or two pictures.
Maybe you could space it out better?

Jul 21/14 2:34 pm

Hello, i feel that i noticed you visited my web site thus i got here to go back the
choose?.I am trying to to find issues to enhance my web site!I
guess its adequate to make use of some of your ideas!!

Jul 22/14 2:02 pm

What’s up to every body, it’s my first go to see of this blog; this
blog carries amazing and truly good material in support of visitors.

Jul 22/14 7:39 pm

Idrop a comment whenever I appreciate a post on a site or
if I have something to add to the discussion. Usually it is
a result of the fire communicated in the post I read.
And after ths post FreshBooks Developer Site – The True Cost of a Feature:
PIN codes and the FreshBooks iOS App. I was actually exciteed enough to post a leave a responsea response :-) I do have
2 questions for you if it’s allright. Is it simply me orr does it look like a few of
these comments appear like they are coming from brain ddad people?
:-P And, if you are writing on additional online sites, I would like to keep up with you.
Could you list all of your communal pages like your twitter feed, Facebook page
or linkedin profile?

homepage says:
Jul 24/14 3:19 am

I know this if off topic but I’m looking into staarting my own blog and was
wondering what all is required to get setup? I’m assuming having a blog like yours would cost a pretty penny?
I’m not very web smart so I’m not 100% positive.
Any recommendations or advuce would be greatly appreciated.

Marquita says:
Jul 27/14 9:18 pm

Appreciating the time and effort you put into your website and in depth information you present.

It’s good to come across a blog every once in a while that isn’t the same unwanted
rehashed material. Fantastic read! I’ve bookmarked your site and I’m including your RSS feeds to my Google account.

Jul 29/14 9:34 pm

Sweet blog! I found it while surfing around on Yahoo News.

Do you have any tips on how to get listed in Yahoo News?
I’ve been trying for a while but I never seem
to get there! Appreciate it

Jul 30/14 10:57 pm

I rarely comment, but right after browsing a few of the remarks on
this page Get Franchising

HCG says:
Aug 2/14 9:21 pm

So a 200 calorie deficit daily will result in a 20 pound fat loss in a year.
But If you are trying-to-conceive , every time you miss your period, your hopes
that you are now finally pregnant go up. Some have seen an immediate weight loss,
calling this a “miracle” diet.

Aug 4/14 8:40 pm

Hey I know this is off topic but I was wondering if you knew of any widgets I could add to my blog that automatically tweet my newest twitter updates.
I’ve been looking for a plug-in like this for quite some time
and was hoping maybe you would have some experience with something like this.

Please let me know if you run into anything. I truly enjoy reading your blog and I look forward to your new updates.

Willis says:
Aug 5/14 8:52 pm

It’s really a cool and helpful piece of info. I am glad that you just shared this useful information with us.
Please keep us informed like this. Thanks for sharing.

Aug 7/14 8:52 pm

Amazing issues here. I’m very satisfied to see your post.
Thanks so much and I’m having a look forward to touch you.
Will you please drop me a mail?

Aug 14/14 12:52 pm

Pretty section of content. I just stumbled upon your blog and in accession capital to assert that I acquire actually enjoyed account your blog posts.
Any way I will be subscribing to your augment
and even I achievement you access consistently fast.

Aug 14/14 8:22 pm

I have to thank you for the efforts you’ve
put in writing this website. I really hope to check
out the same high-grade content by you in the future as well.
In truth, your creative writing abilities has motivated me to get my own, personal site now ;)

Aug 19/14 10:09 pm

I enjoy reading through a post that will make men and women think.
Also, thank you for allowing me to comment!

Aug 23/14 5:56 am

Since the legalese/arm chairing had ggot out of hand here (respectfully), I will bring this all
right down to Earth (again): simply go back Santa Clara
County in order to shared territoty status, indemnify tthe Gianrs
for losing exclusivity over SCCo and permit the A’s to reloocate 35
miles south to San Jose. Very, very simple. No need for
Serman Act’s, SCOTUS, Piazza, 9th Circuits, Curt Flood Act’s, Court Judy, eetc .
I’ll help you guys on the next thread…

ps3 games says:
Aug 23/14 6:13 am

Hello it’s me, I am also visiting this website regularly, this web page is really nice and the viewers are genuinely sharing fastidious thoughts.

Penney says:
Aug 23/14 10:26 pm

I read a lot of interesting articles here. Probably you spend a lot of time writing, i know how to save you a lot of work, there is an online tool that creates unique, google friendly posts in minutes, just
type in google – laranitas free content source

Aug 26/14 2:05 pm

Right here you can see the default i – Tunes Music folder location. five
Mbps, 640 by 480 pixels, thirty frames per 2nd, Reduced-Complexity edition of the H.
The owners Reliable House Movie Pros by simply David Ricco The windowpane Protecting Original: such as, draperies as well
as window shades are used in different nevertheless Within properties Especially Those varieties of traditional houses.

Aug 26/14 8:31 pm

What’s up everyone, it’s my first pay a quick visit at this website, and piece of writing is really fruitful
in support of me, keep up posting these posts.

Aug 28/14 4:22 pm

I’ve been exploring for a bit for any high quality articles or blog
posts in this kind of area . Exploring in Yahoo I finally stumbled upon this site.
Studying this information So i am satisfied to exhibit that I have a
very good uncanny feeling I discovered exactly what I
needed. I such a lot for sure will make sure to don?t disregard this website and provides it a look on a continuing basis.

Aug 28/14 7:00 pm

I am regular reader, how are you everybody? This paragraph posted at
this site is genuinely nice.

Diana says:
Sep 1/14 10:51 pm

After almost an hour driving around and looking for a hardware store, we finally found one and asked the clerk if he could help us.
The tree cutting service would be liable so sk for a copy of their liability insurance policy.
All Around Tree Service 936-597-8266 All Around Tree Service serves
Conroe, The Woodlands, Lake Conroe, and all surrounding areas.

Sep 8/14 1:04 pm

To answer this question, one needs to look at the progression of play
throughout early childhood up to the age of six.
Munchkin has a great reputation for making safe, durable
products. But as well as the right toys, you need to make sure they aren’t out of stock —
remember they are on the most popular lists —
so you need to find those toys and get them ordered now so that your loved ones won’t be disappointed.

Sep 9/14 1:06 pm

Write more, thats all I have to say. Literally, it seems as though you relied on the video to make your point.
You definitely know what youre talking about, why throw away your intelligence on just posting videos to your site
when you could be giving us something enlightening to

Sep 9/14 6:51 pm

Wonderful things totally, you merely obtained a fresh readers. Quantity you actually suggest with regards to your own put up that you just designed a day or two in past times? Any kind of positive?

Aileen says:
Sep 10/14 2:19 am

Good post. I learn something totally new and challenging on sites I stumbleupon on a daily basis.
It’s always interesting to read through content
from other authors and use something from their sites.

quotes says:
Sep 10/14 11:19 am

Hurrah! After all I got a web site from where I know how to genuinely obtain valuable information regarding my study and knowledge.

Sep 12/14 9:56 am

May I simply just say what a relief to uncover someone who really
knows what they’re discussing on the net.
You certainly realize how to bring a problem to light and make it important.
More and more people should check this out
and understand this side of the story. I was surprised that you are not more popular because you surely have the gift. says:
Sep 16/14 4:59 pm

Encourage your relatives to confirm their attendance
or absence at the family reunion so you can determine the expected head count
for planning purposes. When creating the chart, the number of the father is always
two-times that the number given to the child.
Trust is also a compulsory requirement for all fulfilling and happy relationships.

Sep 20/14 11:22 pm

Knowing the requirements and the choices you will have to make will give
you a head start prior to enrolling in your certificate program.
Nursing aides are also given necessary time to focus better on their jobs and responsibilities through these training programs.

They could be on offer at private hospitals, on-going care organisations and
various other wellness establishments.

Sep 21/14 12:57 am

Marvelous, what a blog it is! This weblog gives helpful information to us,
keep it up.

Sep 22/14 7:23 am

The experienced realtors, like the Treasury rewal estate bill
rate. View homes online by price and property type,
town or zip code, price and other criteria. This capital city is
both the seller and you’ve made $1, 100 every month real estate
that you’re spending, you’re servicing the
debt, you’re amortizing the debt. I told her before we started out, we
should first know its meaning. On Feb 28 Kendall Jenner walked the runway at
the Marc Jacobs fashion show during Mercedes-Benz Fashion Week Fall 2014 at Spring Studios
on Feb.

Sep 22/14 1:40 pm

Very good post! We will be linking to this great article on our website.
Keep up the great writing.

Sep 24/14 3:47 pm

Valuable information. Fortunate me I discovered your web site by accident, and I’m stunned why this coincidence
didn’t took place in advance! I bookmarked it.

Sep 24/14 10:53 pm

Hey! Do you know if they make any plugins to assist with Search Engine Optimization? I’m trying
to get my blog to rank for some targeted keywords but I’m not seeing very good success.
If you know of any please share. Thanks!

pet dog says:
Sep 25/14 9:48 pm

If it was cold noontime, they went inside the school where it was warm leaving
the kids outside. Your dog will then be a bother and pose a
threat to your community and whoever comes in contact with your dog.
If your dog is still pulling the leash after it is attached just stay calm
and stand still until he or she relaxes.

Lida says:
Sep 29/14 2:09 am

utilizing a limiting-dilution variant of the aforementioned method, 127 ).
however, not CD4 or NK tissues, data from murine styles concerning ganglionic an infection and CD8 were seemed to be mentioned above.

Sep 29/14 7:18 pm

I’m gone to convey my little brother, that he should also go to
see this blog on regular basis to obtain updated from newest news update.

bad credit loans guaranteed approval auto title loans bad
credit auto loans guaranteed approval texas car title loans how to make money
fast money loans payday loans online no credit check cash advance payday loans direct lender no credit check personal loans online cash advance loans cash
advance payday loans payday loans fast cash i need money quick cash personal loans for people with bad credit short term loans for bad credit
installment loans direct lenders same day cash loans cheap loans loans for people with bad credit unsecured personal loan instant approval loans title loans on cars no credit check loans online
loans for people with bad credit money lenders same day loans borrow money fast

Oct 4/14 3:10 am

Fantastic blog! Do you have any tips and hints for aspiring
writers? I’m hoping to start my own blog soon but I’m a
little lost on everything. Would you suggest starting with a free platform like WordPress or go for a paid option? There are so many choices out there that I’m totally confused ..
Any suggestions? Appreciate it!

Oct 8/14 3:42 pm

My brother suggested I might like this website.

He was totally right. This submit actually made my
day. You can not consider simply how a lot time I had spent for this info!

Oct 8/14 7:35 pm

Besides, washing, coconut oil for acne a medium-chain saturated fatty acid.
Refined Carbohydrates such as virgin coconut oil
has been reported. Coconut oil has a coconut oil
for acne thermal energy, support your embody all morality flourishing nutrients.
As a Mask: Mix 2 tablespoons of virgin coconut oil. In addition, it is jam-packed with
bacteria. Laser skin resurfacing programs like,
you will be gone. Because of its fat content material which is what decides how
fast do you know you’re doing right. It just means common coconut oil for acne acne.

Oct 8/14 7:44 pm

Although maximum site owners are familiar with these concepts, but they may lack the expertise to do it the correctly.
, it is best to go for affiliate marketing being an initial step
into the world of generating impartial income from home. Daily, even hourly, businesses can see how many
individuals clicked on their ads and the traffic
that is being driven to their website.

Emmanuel says:
Oct 19/14 8:25 pm

Hi there mates, its great piece of writing concerning cultureand entirely
explained, keep it up all the time.

Cameron says:
Oct 23/14 4:57 am

In every level of the game, the player fights to survive by avoiding all the oncoming squares.
At each game stage, characters battle for survival
by trying to steer clear of oncoming squares. Another fun web arcade with a
whole bunch of Flash-based and Shockwave-based games.

Christena says:
Oct 23/14 10:32 pm

We absolutely love your blog and find many of your post’s to be exactly I’m looking for.
Do you offer guest writers to write content for you? I wouldn’t mind producing a
post or elaborating on a lot of the subjects you write regarding
here. Again, awesome weblog!

Dec 14/14 4:38 pm

What’s thrilling is that their product does work and delivers some amazing results.
As way as their items go, they marketplace numerous science based mostly nutraceuticals that are created to assist
in your total wellness and properly becoming. Right after reading this Vi – Salus evaluation you
are most likely thinking that Vi – Salus is an excellent opportunity
as well as are ready to get started.

Leave a Comment ( *required)