An App Budget for America

If you’ve been paying any attention to the news this week, you will of course know about the major snafu in the Iowa Democratic Caucus. It is now largely being blamed on what appears to be a bug in the app developed by a for-profit third party company. I’ve been reading the news around this with quite a bit of interest both because I’m interested in our democratic process, but also because I have a small bit of idea what the app developer is going through. I’ve been an engineer on apps since the early days of the Palm Pilot, way back in 1999. (They weren’t even called apps back then!) As such, I’ve been on hundreds of 1.0 product launches, many of which have been amazingly successful, but I’ve also had my share of painful and embarrassing failures so I certainly cannot throw too many stones from within my glass house.

However, the thing that really caught my attention was the reported development cost of the app. It has been widely reported that the Iowa Democratic Party paid the app developer $63,000 for this product. In particular, I noticed more than a few news outlets reporting that it was a large sum of money. To an individual, $63,000 is certainly a lot of money but in the context of an app development project, it is a very meager, thin budget.

As app developers, we don’t often talk about all the costs that go into a platform like this, but given the gravity of this app, I consider this to be far too small of a budget. If you’ve ever wondered what goes into developing an app and how much it might cost, I think this is a great opportunity to break it down. If we are following any sort of sane development model, we will do the following:

  1. Gather the user and technical requirements of the platform
  2. Design the user interface and user experience so that precinct captains who are going to have to use the app can do so with very little assistance
  3. Develop the backend server and database that the apps will talk to
  4. Develop some sort of dashboard or web interface for retrieving the data that has been uploaded by the apps
  5. Develop an iOS app
  6. Develop an Android app
  7. Test the apps and server in a controlled quality assurance environment
  8. Deploy the apps and server to a production environment
  9. Have a beta test period to validate the system is operating correctly and that users can download and utilize the product
  10. Launch the product!

Given the above list of items needed to create the platform, we can reasonably estimate that, at a minimum, the team working on this should have consisted of an iOS app developer, an Android app developer, a server developer, a designer, a project manager and a quality assurance engineer. For an app like this, it’s still a pretty bare bones team of six people.

Now that we have the staffing established, let’s figure out how much time these folks are going to be working on the project. First, we need to establish a rough timeline. For an app like this, I would roughly estimate that it would consist of a month of up front work defining the requirements and interface followed by 2-3 months of active development, followed by at least 1 month of quality assurance. At that point, the app is hopefully well written and tested and ready to move to a beta test period which should, at a minimum, take 2-4 weeks. In the end we should have a project timeline that is going to run at least 5-6 months.  Now we need to figure out how much time each person on this team is going to spend working on this product.

Let’s start with the project manager. In general, the project manager is going to be the source of continuity through the entire project. They are going to work heavily up front with the client (in this case the Iowa Democratic Party) and the designer defining the requirements and translating those requirements into a user interface that will meet the needs of the diverse population that will use this app. The users of this app are going to have an incredibly broad range of technical sophistication so it will be important that the UI/UX be done well. The project manager will then transition to part time during the development phase as they coordinate the many moving parts of the project. As the development phase wraps up, they will then re-engage as the product goes into the testing, deployment and beta testing phases. Given our assumptions above, they would likely spend about 1 month working with the client and the designer up front to define the product, then transition to approximately 1/4 time during the development phase and then transition to 1/2 time during the testing phase, followed by a full time engagement during beta testing. Roughly speaking, the project manager would need to be budgeted for about 3.25 months over the course of the project.

While the project manager’s involvement is a bit dynamic, the designer is a little easier to estimate. They will likely spend the majority of their time at the beginning of the project creating the user interface and user experience for the app, and then they will spend a little time during the quality assurance phase ensuring that their initial designs were successfully translated to the product. Generally speaking, the designer should be budgeted for about 1 month during the project.

Next up is the server/database developer. This one is a little more difficult to estimate since it is unclear where the caucus data needs to go once it’s uploaded, but at the very least we know that it needs to provide login and authentication functionality as well as data storage and reporting. In general, the server developer will need to define the interfaces that the apps talk to as well as provide development, test and production environments for the different phases of the project. As a conservative estimate, let’s assume that the server developer works for approximately 2 months during the course of the project.

The app developers on the project will obviously need to be fully active during the primary development phase, but even more importantly, they need to be fully engaged during the testing phase and at least partially available during the beta testing phase. As a conservative estimate, we can budget them for approximately 3.5 months of the project. Since we need an iOS and an Android app, we need to budget a combined 7 months for the project.

Finally, we need to consider the QA engineer’s contribution. In a perfect world, the quality person is a team of people and they are at least partially engaged from day 1 of the project. However, we will employ a conservative estimate and budget only a single person for just the testing phase of the project, which is 1 month.

So with all of that out of the way, we can come up with the following time estimate:

  1. Project manager – 3.25 months
  2. Designer – 1 month
  3. Server developer – 2 months
  4. iOS developer – 3.5 months
  5. Android developer – 3.5 months
  6. Quality assurance engineer – 1 month

That’s a total of 14.25 person months of effort. If you consider a 40 hour work-week, that equates to approximately 2280 hours of effort. To calculate a total project cost you would simply multiply the number of hours times whatever your company’s hourly rate is. For this exercise, I will admit that I’m making some assumptions because I haven’t seen the app in action. However, I’ve been doing this a long time and given the descriptions of the functionality I’ve heard reported in the news, I’m comfortable with my estimates. 

I cannot say exactly what development plan this company followed and I cannot say how they staffed it, (although some details are starting to emerge). I also cannot say if the app developer had a longer play in mind when developing the app in terms of a profit model. For example, it is likely they could have charged the Iowa Democratic Party less than the actual cost of development with the intention of reusing the platform for other states and recouping more of their initial costs. (The Nevada Democratic Party apparently paid them for an app as well, so this is a likely possibility.) The one thing I can definitively say, however, is that for an app of this level of importance, $63,000 is not a very large budget. Given the vast amounts of money that campaigns raise, it seems like this would almost end up equivalent to a rounding error.

Distributed Companies Are Real

When we first set out to build Silverpine, we didn’t really have much of a plan. All we knew was that the fates had aligned, and that it was our time to set out on our own. From our very first day, we have managed to bootstrap the business which was ultimately very beneficial, however, bootstrapping is hard. Very hard. While we grappled with unknown cashflows and even more unknown project pipelines, we knew we had to scrimp and save and keep our costs as low as we possibly could. One major way we were able to do that was by making Silverpine a “virtual” business in that we had no physical office space. It also didn’t hurt that neither my partner Ryan nor I wanted a commute, so it definitely felt like a win/win situation.

For the first few years of our existence, our staff consisted of only Ryan and myself and an occasional subcontractor or two. Working remote became an unstated, simple to implement company policy that we grew to appreciate implicitly, and the freedom that it lent to us quickly became a de facto benefit. As we grew as a company, however, the true value began to emerge.

When we finally hired our first full time employee, working remotely was still an implied benefit. At the same time, we started noticing a trend that many of the best engineers and developers that we knew were explicitly looking for new positions with significant remote work opportunities. However, when our first employee notified us that she was going to move to a rural area, it truly started to dawn on us what it meant for recruiting and retainment. Suddenly, this quirky company policy, that had just organically happened, had become an important pillar of our company culture.

At that point, Ryan and I decided that we were going to commit to Silverpine being a fully distributed organization. We abandoned any intention of developing a physical footprint and started viewing our evolving company through that lens. As we continued to grow and hire, I had to unlearn some of the things that had been ingrained in me from my time in the corporate world and from my MBA classes. I had to really dig in to understanding the tradeoffs of being distributed, partially because we needed to adopt tools and policies that would work well for remote employees, but also because we needed to be able to speak to our clients about how we were different from similar agencies and ultimately, why our distributed nature would benefit them.

For a long time, whenever a prospective client would ask us where we were located, I would make some sort of joke that we were following the “IBM model” even though it wasn’t really an accurate comparison. I would then do some general hand waving about what that meant, but more often than not, I was left with the distinct feeling that we were sometimes viewed as not being a legitimate company. Because of my approach to communicating our structure, I’m certain that we lost more than a couple bids on projects because of this.

Fortunately, as time progressed, many other companies started to legitimize remote work. Companies like Automattic, Basecamp, InVision and Zapier have literally written the book on how to have a remote team, and they have shown that it can work at scale. People have started to notice how these companies operate and thrive, and maybe most importantly, many of the best engineers and developers have started to view remote opportunities as a non-negotiable job requirement. I have run into people time and again at conferences and other work-related events where they explain that having a remote position is often times more important than a salary bump. That means that there is an actual, tangible economic value to a company that embraces remote work.

For Silverpine, we have become better at articulating the legitimacy of our remote nature in a way that better portrays it as a competitive advantage. We talk about the engagement and happiness levels of our employees. We talk about the quality of communication that our team practices on a daily basis. And, we talk about lower base costs which translates to lower project costs. We also occasionally talk about the tools and the processes and the intentionality of it that helps craft our company culture. All of this is important in explaining our story and our organization because there are still plenty of people with an incorrect understanding of remote companies.

I am convinced that the model we stumbled upon (but ultimately embraced) is a blueprint for long term success. It allows us a flexibility and nimbleness that other corporations simply can’t match, and in the ever-changing world that we live in, flexibility is a survival trait. As the Japanese proverb states: “The Bamboo that bends is stronger than the Oak that resists.”

We are definitely still learning and adapting how we function and operate, but I no longer act sheepish or apologize for being a remote company. I am proud of what we are building and what Silverpine has become. (It also doesn’t hurt that our track record is pretty great!) So, if you are thinking about working at a remote company or thinking about adopting remote-friendly policies, don’t approach it as some odd-ball thing. Take some time and read about what/how other companies that are doing it, and recognize that distributed companies are real.

State of the Pines – 6 Months

I cannot believe that it has been only 6 months since I took the leap of faith to try and turn SilverPine Software into something bigger than it had been! We have been so incredibly busy (in a good way) and sometimes I feel like my head is spinning with all the great things that are going on. Here are just a few of the highlights:

  • We have launched 8 iOS Apps, 3 Android Apps and 1 WindowsPhone App
  • We worked with a very talented designer to create a new and improved logo!
  • We continued to grow our open source Useful Utilities toolbox project as a gift back to the developer community
  • We have grown our team to include 9 amazingly gifted people!
  • One of our projects for a fortune 100 company has been featured in depth by the New York Times and referred to as a “game changer”
  • We purchased Photos+ from Justin Williams and re-launched it with native integration of Dropbox
  • We have had our projects featured by Apple not once, but twice!

Whew! That’s quite a bit for only half of a year. To say that some days my hair feels like it’s on fire is an understatement. That being said, I wouldn’t trade it for the world. The work we do is creative, challenging, cutting edge and very rewarding. Our clients are all amazing people with great ideas and I feel honored that we are able to help them create such amazing products.

So what’s ahead? I can’t quite tell you yet, but I can say that we have some awesome stuff in the pipeline. We can’t wait to share it with everyone.

It’s been a wonderful ride so far, and I’m really looking forward to finding out what the second half of the year looks like for us. Feel free to drop me a note if you want to chat about any of this or if you have an idea or product you’d like to discuss. Also, if you happen to be at Çingleton this year, make sure to say hi. (I’ll be the guy with the @cheesemaker shirt.)

-Jonathan Hays

A (Brief) Guide to Cease and Desists for Indie Developers

Before we go any further, the lawyers are making me post this part first: The following post is from my experience as a developer and I am in no way trained as a lawyer. Do not construe any of the following as legal advice. If you are in need of legal advice, consult a lawyer.

Ok, now to the post.

I have been developing apps for the iOS App Store since 2008 and as a result, I have many battle scars to show for my efforts. Unfortunately, the worst of these scars tend to come from lawyers. One particular blunt instrument that lawyers like to use is something called a Cease and Desist. These are very scary messages that are usually delivered via email but can often come in snail mail.

Over the years, I have received at least 10 different Cease and Desists (including one from the infamous Doodlegate debacle) and have learned quite a bit along the way. Some of what I have learned has been from actual lawyers, and some from the good old school of hard knocks. My intent here is to share a little of what I have learned because at the end of the day, this stuff sucks and we’d much rather be dealing with bugs than lawyers.

To start with, here is an example of one that I received last year:

I am legal counsel at [REDACTED] and represent the authorized of the rights infringed by the apps described.

[REDACTED] is the registered owner of both the [REDACTED] (and its French equivalent, [REDACTED]) and [REDACTED] Design trade-marks in Canada.  As such, it has the exclusive right to their use. 

When the trade-mark [REDACTED] is used as a search term in the Canadian iTunes store, not only does our App appear, but the Apps of a number of other individuals/companies. 

We would ask that individuals be prevented from using the [REDACTED] trade-mark as a “key word”, as this constitutes trade-mark infringement and could be the reason why other Apps are appearing when the trade-mark [REDACTED] is used a search term.  

[REDACTED] can not tolerate, these individuals/companies benefitting from the tremendous goodwill associated with these marks.

Most Cease and Desists follow a form similar to this. The entity that has protection for their intellectual property sends a sternly written message informing you that you need to fix/remove/change something. However frightening this might sound, a Cease and Desist is not the same as a lawsuit. You are not being sued. You are simply being informed that you need to make a change in accordance with someone else’s real or perceived protection of their intellectual property. So, what should you do? Here are a few things that I have learned along the way:

1. Don’t panic. Despite the fact that these messages intentionally sound scary, you don’t need to be afraid. In the example above, phrases like “infringement” and “can not tolerate” make it sound like these folks mean business and are prepared to bring down the hammer of justice. But if you look more closely, you will see that usually these messages are form letters. Notice that nothing mentions the name of my company or even my name. In fact, there is really nothing of substance in the email. (We’ll come back to that in a bit.)

2. Be polite and professional in your communication, but do not apologize or acknowledge fault. Just because you receive a C&D, it is still the responsibility of the claimant to show that you are at fault. Yes, you ultimately may be required to make a change but there are several things that need to be established first. Being polite and professional will go a long way in these types of issues. Additionally, do not immediately remove your app for sale or whatever it is they are requesting that you do. Doing so at this point would be acting with incomplete information, which leads to the third point.

3. Ask for additional information. There are a variety of reasons to do this. The first is to signal that you have received their request and are acting in good faith. This is also to flag the fact that their claim is incomplete. As I pointed out, the above C&D is almost completely devoid of meaningful information. Here was my response to the C&D above:

Hello Ms. [REDACTED],

Would you please send either a scanned copy of proof of your trademark or send via postal service a hardcopy that clearly shows when the trademark was issued and under what jurisdiction it applies and we will be happy to comply.

Sincerely,

Jonathan Hays

An excellent action is to ask for actual documentation of the patent, trademark or copyright. A few times, I have asked for documentation only to find that what they sent had absolutely no application to my app or that they were claiming to own something that they did not. If they cannot provide proof then they have no claim. Additionally, if you received the C&D through Apple Legal, make sure to cc them on all of your discourse with the lawyer. This helps to both keep the lawyers honest but also will help keep you in good standing with Apple. (It also provides a fairly neutral third party with a paper trail).

4. Once you receive the documentation, the next step is to actually read it. This can be fairly dry reading, but I assure you that it is worth it and that it is no less obtuse than technical documentation on the latest APIs. For example, many patents have multiple claims in them. A great thing to do is to ask for clarification regarding which claims they are actually citing against you. This is especially important if the C&D you received was a form letter because it means that your company was collected in some large data sweep without anyone actually taking the time to look at your App. As with any bulk data collection, there can be errors. At this point, you may or may not want to consult a lawyer on your side, however it is certainly fine to make the people that sent you a C&D actually do their jobs by asking for more information. Here is how I responded once I received the documentation:

Hello Ms. [REDACTED],

Thank you for your reply.  Apple has asked us to make sure to include them in all exchanges and you did not include them on this so I am re-adding them.  That being said, I have a few questions that you have not yet addressed:

  1. I am trying to make sure that I fully understand which of the services you are describing is in conflict to make sure that we are in full compliance.  To be clear, I am asking [REDACTED] to explain which of the wares and services that [REDACTED] falls within. The services that are listed include SMS, printed publications, business directories, and Internet websites.  [REDACTED] is none of those so I am seeking clarification of your claims. Also, as you acknowledged in your email below, at least one of the documents that was sent over do not apply so obviously there is some confusion for [REDACTED].  I am simply seeking verification that a mistake has not been made by [REDACTED].
  2. I need to understand your claim that [REDACTED] is infringing within the application description because that is not accurate as nowhere in the application description does the word [REDACTED] or [REDACTED] occur.
  3. I asked previously if you are claiming IP protection only for sale within Canada.  I have yet to receive a response.

Thank you,

-Jonathan Hays

5. Verify jurisdiction. Make sure that you understand where in the world they have permission to enforce their claim. The App Store is a global marketplace and unless they have protection for their claim in every country that you sell, you are only compelled to comply in the corresponding markets.

Good morning Jonathan, 

Yes, we are solely claiming IP protection for sale within Canada. In Canada, [REDACTED] has a registered trade-mark for [REDACTED], and the [REDACTED] & Design.  Under Canadian legislation this affords [REDACTED] with the sole and exclusive right to make use of the trade-marks in Canada and prevents any third party from making use of it in any context without [REDACTED]’s explicit permission even if the wares and services description is different.
 
In making use of [REDACTED]’s trade-marks in the description and logos of your app, you are creating an association between our respective entities that will confuse consumers and lead them to believe we are somehow related.  Unfortunately, this is contrary to Canadian Trade-mark legislation.  As such, we would ask that you cease making use of the trade-marks in the description and logos of your apps, or cease distribution of the apps in the Canadian iTunes store.
 
Best regards
So in this particular case, the IP owner only had protection for their claims in Canada and therefore only sales in the Canadian App Store were in question. Ultimately, I resolved the issue by simply removing it for sale in Canada and the app continues to garner downloads in all of the other App Stores. If I had not asked their lawyer to clarify the claimed jurisdiction, I might have lost out on continued revenue in the other countries for absolutely no reason.
As developers we generally avoid conflict. All things being equal, we prefer to make things. However, when we make things that we sell commercially, we often have to deal with lawyers and Cease and Desist requests. Always remember that these are requests, not legally binding demands. If/when you receive a C&D, do your due diligence. Be calm. Take measured steps. If all else fails, keep in mind that every time you send a request back to the lawyer on the other side of the C&D you are incurring billable hours to whomever is requesting the Cease and Desist. It’s only seems fair that if you’re going to lose time and money, that they be willing to do the work to back it up.

SilverPine Software and Photos+

“Leap and the net will appear.”

-John Burroghs

Growing up, my father was a serial entrepreneur. I watched him go from business to business, sometimes with success, but often without. Among my memories of his many businesses are not one, but two Oregon perfume companies (“The Oregon Perfume Company” and “Oregon Scents”). Though I have always been fascinated and frightened of owning my own business, I think I’ve always known that I’ve had it in my blood.

With that as the backdrop, I am thrilled to publicly announce the launch of my company SilverPine Software. Based in beautiful Portland, Oregon, SilverPine is primarily a consulting business focused on helping companies bring their mobile software to life.  It hasn’t been easy getting to this point, and I would be lying if I said I wasn’t worried about where we’ll be after a year or two. However, we have worked very hard to bootstrap this business and feel like the time is right to take the wraps off.

In addition to consulting, we intend to slowly grow a portfolio of software. To that end, we are announcing today that we have purchased Photos+ from Second Gear Software. We have quite a bit of expertise with photo Apps (see Sunlit, among others) and when Justin Williams approached me about purchasing it from him, it felt like a great fit. We have big plans for Photos+ and have already put into motion the first phase of those plans: native Dropbox integration! Photos+ 1.1 is live on the App Store now so go check it out. As we roll out the next phases of the Photos+ roadmap, you will be glad that you got in early!

New company, new software, new hopes and fears. In the end though, I’m pretty excited about what’s happening. Stay tuned for more news as the leap towards the net continues!