maintenance – iPhone app Developers | iPhone and iPad Developers / iPad developers, iPod Touch developers, iPhone developers, iOS Developers Sun, 12 Jul 2015 22:30:11 +0000 en-US hourly 1 https://wordpress.org/?v=4.7.10 What maintenance is needed for an iPhone app? //what-maintenance-is-needed-for-an-iphone-app/ Thu, 01 Sep 2011 21:08:10 +0000 //2.0/?p=552 Read More]]> Many clients want to know the ongoing cost structure for their application after development.  Relative to the high upfront cost to develop an application, the ongoing costs are usually low.

Maintenance tasks typically involve:

  • Fixing crashes or errors reported by users of the application.  Our automated bug tracking software helps us monitor bugs in the wild.  If the client has done a thorough job reviewing deliverables over the course of development and the developer is a high-quality developer, the number of errors is usually low, if they even exist at all.
  • Adding features requested by users after release.  It is difficult to anticipate the cost of feature requests without knowing what they are, and the cost for this depends heavily upon the features requested.
  • User support, an ongoing cost that varies depending on the popularity of the application and how easy it is to use.
  • Networked applications may require hosting and administrative costs.  For example, a server might need to be rebooted occasionally.
  • Scaling costs.  If your application becomes popular and uses a server or shared database, additional servers may be required or code may need to be optimized to scale more effectively to maintain high performance with more users.

Rather than signing lengthy recurring contracts, we generally recommend adding  a short-term (30-day) maintenance contract to handle minor issues after an application’s release, particularly for networked applications.  In our experience, this is usually more than enough to make minor bugfixes and add a few features to an application after release.  Major changes or additions that will not fit in the maintenance contract can be negotiated as a separate project.
Maintenance tasks typically contribute 10% of the total project size for a standalone application, and 30-40% of the project size of a networked or server-based application.

]]>
How much does an iPhone app cost? Part II //how-much-does-an-iphone-app-cost-part-ii/ Fri, 05 Aug 2011 05:54:59 +0000 //2.0/?p=495 Read More]]> In Part I, we explored the different types of applications.  Once you have identified the type of application and the complexity of your project, it’s time to meet some of the people who will bring your app to life!

Development

Any iPhone or iPad app is going to involve developers, people who write the software code.  Depending on the firm, these people may be called software developers, programmers, or engineers.

For many apps, the developers are the people who make or break your software.  Good developers can mean applications that run quickly, are powerful, and generally behave as expected.  Bad developers mean buggy, crash-ridden software that’s behind schedule.

An entry-level salary for a software developer in the United States is $50-60k.  Developers with several years of experience are often paid $80-90k, depending on location and workload.  Very simple applications (at the low end of the “Standalone App” category) may require a few weeks of developer time, more complex applications may  require six months and several full-time developers.  Considering an average time of two months and two developers, you’re looking at a cost of $30k in developer time.

It’s important to meet the actual people who will be responsible for developing your application.  Many firms are much larger than we are in sales staff VPs, managers, etc., but have about the same number of developers!  Others may simply be a friendly sales force for a low-quality overseas development shop.  Don’t let anyone pull a bait and switch! It’s not enough just to evaluate the sales guys for compatibility with your project–they’re paid to be compatible.  Make sure that you talk to the people who will actually be responsible for implementing the project, and ensure that they share your vision.

What about outsourcing?  Can’t I cut costs there?

I’ve written about outsourcing in the past.  Like everything in life, you get what you pay for.  There are wonderful overseas development shops that charge rates competitive with US developers.  If you are paying below market, you are asking for trouble.  Far too much of our work is fixing botched outsourcing jobs that could have been done right the first time at much less cost than it will be patch it up, both in terms of development time and effort as well as lost customer trust as a result of a buggy application.

QA

A good QA department can catch bugs and problems in-house before they escape in a test build, or worse, to your customers.  Every project needs a solid second pair of eyes to spot programming problems and squash bugs.  Good QA engineers bill $50-75 an hour, and you probably want one hour of QA for every three hours of development to spot bugs.

Design

In addition to development work, you need designers, people who lay out the user interface, produce artwork, and do other graphical design work.  It’s possible to have a good developer that drifts into some light UX design, or a good designer that drifts into light frontend development, and so you may find slightly different divisions of work across different types of firms, depending on the skillset of the individual people.  Smaller application developers tend to work with outside designers or have a few contractors “on-call”, whereas larger firms can have entire graphics and UX design departments in-house.  Larger corporate clients may already have an in-house design department that they’d like to use, so the background of the development firm and the makeup of their clients can have an impact on the design skill.

Again, it’s important to communicate and share your vision to the design team.  It’s also important for the technical and design team to have good rapport and to get along well.  Animations or dynamic visual effects may have complex technical and design requirements that require both skillsets to move in lockstep, and the last thing you want is for artwork to be produced or a technical solution to be chosen that is incompatible with the other!  It’s usually important to ensure the artists or UX designers have a good track record of designing for mobile software (as opposed to graphic design, web design, etc.)

Senior UX designers with some development experience are typically worth about $80k/year.  Graphic designers with more limited experience generally earn about $55k/year.  With an average figure of a designer with medium experience for a month, you are looking at about $7k for typical design and artwork production.

Management

Someone needs to coordinate and oversee project development.  At small firms like ours, senior developers may take this role and oversee and coordinate development, design, and the other parties in the dance.  At larger firms, project management may be a dedicated department with a sizeable staff.  Software development managers typically make about $120,000/yr, but usually oversee multiple projects at once, so the actual cost of that person for a single project may be closer to $5k-10k for shorter projects.

Marketing

A successful app launch often requires an extensive marketing campaign.  In today’s market, it is difficult to stand out from the crowd.  Retaining a PR firm can run anywhere from $5,000-$25,000/month or more.  Some PR freelancers bill in the neighborhood of $100/hr for basic press release and whitepaper writing if you want more of an “a la carte” public relations approach, but the economics of the app store often dictate doing an all-or-nothing marketing push over an incremental marketing model.

Tools & Technology

In addition to personnel, it takes specialized tools to create mobile applications.  Software has to be tested on a regular basis on every conceivable device, and so many firms stock up on dozens of test devices in multiple configurations.  Professional developers wear out computers far faster than consumers do, and so it’s not uncommon to budget $10k in new computing equipment per developer per year.

Then you need to factor in software licensing and costs.  The advent of open-source software has reduced these somewhat, but custom tools are still a requirement.  Professional-class bug trackers typically run about $5,000/year for a site license.  Source control hosting, testing software, database editing tools, Photoshop, and other tools of the trade have to be licensed.

Then you must factor in custom frameworks or components to be licensed for use in applications.  Because we’re a very focused company with almost all of our work in iOS, we’ve invested in building an incredible volume of pre-built libraries that are more readily adapted for iOS use (see our articles on CrashBuddy and LogBuddy), and so we tend to have a reduced licensing burden than other firms, but this comes at the cost of our developers’ time to write and maintain those libraries.

Then you have your typical overhead: office space and furniture might be $1000/month/person in a midsized city.  IT, servers, backups, infrastructure, hosting, e-mail, and internet access might run another $250/month/person.  Benefits, taxes, and payroll probably add about 15% to the cost of every contract.

The Final Bill

Consider a fairly simple application that is on the books for two months.  The cost structure might look like this:

  • Two developer salaries, two months: $25,000
  • One designer salary, one month: $7,000
  • Tech lead / project manager : $5,000
  • QA: $6,000
  • Office space, computers, equipment (amortized): $8,000
  • Software, licensing (amortized): $1,500
  • Benefits, taxes, payroll: $8000

The final cost to develop our simple application (leaving no profit for the firm) in this case is $60,500.
It’s important to emphasize that these are typical figures for an application of arbitrary size.  Some apps have more or less development costs, more or less design costs, etc.  As discussed in the first part of this article, there are many different types of applications that may require more or less responsibilities from each of the necessary disciplines.

Also factoring into the price, different firms tend to emphasize different disciplines.  We are a developer-driven company, where software developers take more of an active role.  There are talented design-run or management-run firms, in which those skill-sets tend to be more emphasized and tend to extend further into territory traditionally controlled by other disciplines.

In addition, however, there are a few operating costs.  Considering a 12-month application life (many applications run shorter or longer), you may be looking at:

  • Hosting costs: $500/month for 12 months
  • Support contract: $500/month for 12 months
  • PR/marketing: $5000/month for 3 months

e.g. an additional $27,000 in the first year.
So how does our $87,500 number for a simple application stack up?  Chockenberry, the developer of the award-winning Twitterific application estimated their total cost at $250,000.  Twitterific is a design-heavy app in the “Pre-existing API” category, which is much more complex than our simple application.  Another data point is the Barack Obama application, which reportedly cost $50-150k, also in basic agreement with our number.

Was this a lot more than you were expecting?  Continue on to Part III!

]]>
Announcing free LogBuddy advanced error reporting //announcing-free-logbuddy-advanced-error-reporting/ Sun, 24 Jul 2011 23:51:16 +0000 //2.0/?p=462 Read More]]> When we announced CrashBuddy crash reporting in March, we were excited to help our clients have the best possible experience with user support, with full analysis and analytics into crashes that Apple’s reporter simply didn’t catch.  CrashBuddy has helped us identify and diagnose dozens of otherwise-unreported crashes and has greatly improved the support experience for all and our clients’ projects.

Today we’re taking things even further.  We’re announcing LogBuddy, a free technology that will begin shipping in all new projects today.  What CrashBuddy does for crashes, LogBuddy does for other types of error conditions.

LogBuddy provides advanced, real-time reporting of non-crashing error conditions that are missed by our existing CrashBuddy technology because they don’t cause crashes.  Every error or unexpected situation that a user encounters anywhere in the world is logged instantly, together with complete diagnostic information that let us reproduce, diagnose, and fix the error, and it all goes directly into our bug tracker.

But LogBuddy does much more than just log errors.  Its advanced analysis and de-duplication algorithms analyze each incident and group related incidents together, meaning that most issues append to an existing report, rather than creating a new incident for each reproduction of the same underlying error.

We’ve been secretly rolling out LogBuddy in our beta builds, enterprise products, and production software to find and catch errors.  So far, LogBuddy has identified over 300 distinct real-live error conditions in the wild that wouldn’t be traceable or reproducible via traditional means.  To be clear, this number includes our off-site alpha and beta deployments, not just consumer-facing production software.

The death knell to any project is that elusive bug that the client can reproduce once in a blue moon–but never when the developer is watching.  These are every software developer’s worst nightmare, as the time and complexity to track down these bugs can take a tremendously disproportionate amount of time and energy.

Actual LogBuddy screenshot

Fortunately, LogBuddy is always standing by to take a detailed error report, even for those issues that occur only once and can never be reproduced again.  This lets us track down problems remotely that would be otherwise impossible to examine and diagnose.  LogBuddy’s error reports contain a full stack trace of every function call on the stack, IP addresses, system configuration information, and even (optionally) a full debug log of every action taken since application start, as well as debugging information unique to a particular application.  Since LogBuddy’s reports are instant, we can often find and fix issues faster than customers can report them.

LogBuddy is so powerful and saves us so much time that we’ve decided to provide the technology free of charge to all new projects, effective today, and many of our older projects have been grandfathered in.  We’ve estimated that LogBuddy has saved us hundreds of developer hours in tracking down issues and has shaved months off project schedules.

LogBuddy lets us sort bugs by the number of times they've occurred, so we can fix the problems that affect the most people first.

LogBuddy is just the tip of the iceberg of our enormous investment into native iOS software development.  We’ve got dozens of unannounced iOS libraries in production today, and many more in development.  Learn more about how our extensive technology and depth of experience translates into accelerated development times and reduced risk for your project by getting in touch with us today.

 

]]>
Announcing free CrashBuddy advanced diagnostics //announcing-free-crashbuddy-advanced-diagnostics/ //announcing-free-crashbuddy-advanced-diagnostics/#comments Fri, 25 Mar 2011 18:19:58 +0000 //2.0/?p=350 Read More]]> As a leading developer of iPhone and iPad Touch applications, our clients have come to trust us to deliver the best iOS experience possible.

But unlike other developers who focus only on contract development services, we also write and support our own applications in-house. We understand customer and support pain points like no other for-hire software developer. In addition to being “just” a great iOS developer, we draw on our experience building and designing our own applications to make our clients’ lives easier.

Crashes tend to make customers angryOne of the biggest problems in customer support is diagnosing application crashes. Customers can report crashes that are difficult to reproduce in-house or that seem to be unexplainable. To further complicate matters, Apple’s crash reporter is unreliable and does not always deliver the information necessary for developers to identify and fix these crashes. In addition, upwards of 75% of iOS users have disabled crash reporting, so you may never even find out that your users are experiencing a crash. Even if Apple’s crash reporter happens to work and if the customer has enabled crash reporting, many app developers forget to check their iTunes accounts for crash reports or do so only sporadically. In practice, we suspect over 98% of crashes go completely unreported.

Today we’re announcing CrashBuddy, our new, proprietary, iPhone, iPod Touch, and iPad crash reporting technology. CrashBuddy ensures that crash reports are instantly sent to us, every time. It works independently of Apple’s crash reporter and whether or not users have crash reporting enabled to ensure that every crash, anywhere in the world, is always reported along with complete diagnostic information so the crash can be reproduced and fixed. We drew heavily on our depth of experience remotely diagnosing and fixing crashes to engineer a solution that is the best in class in crash reporting and diagnostics.

Advanced analytics and reportingBut CrashBuddy does more than just send error reports. Every crash is automatically categorized and root-caused by a proprietary algorithm so we know exactly how many customers are affected by the crash, exactly what part of the application is causing the crash, and how often an individual customer is affected, everywhere in the world. We also strip all private information from crash reports as part of our commitment to users’ privacy.

We’ve been rolling out CrashBuddy to some of our applications as a test over the last month, and the results have been wildly successful. We’ve been able to fix rare and odd crashes that were previously undiagnosable and unreproducible, and we now have the confidence of exact figures and statistics to guide our updates and bug fixes going forward. But instead of keeping this technology to ourselves, we want our clients to benefit from our hard work solving this difficult problem.

Today we’re announcing that every app we build for our clients going forward will have CrashBuddy advanced crash reporting and diagnostics “baked in” at no charge. We want every client to benefit from our advanced reporting so that we have the best possible information to diagnose and understand the impact of application crashes. This breakthrough technology is not available from any other vendor and is just one more way that we stand head and shoulders above the competition. We’re much more than just another developer–we’re your partner in delivering an awesome experience for your customers. Contact us today to find out about developing your app with this advanced diagnostic capability.

]]>
//announcing-free-crashbuddy-advanced-diagnostics/feed/ 2
Custom Deployments //custom-deployments/ Sun, 20 Feb 2011 01:13:32 +0000 //2.0/?p=340 Read More]]> Many of our clients want to list their applications in the App Store for download by consumers. Since the AppStore provides a wide distribution network, this is the best (really, the only) deployment strategy for consumer-facing applications.

But we’ve had an increasing number of clients interested in custom apps to be used internally to their organization, whether that organization is 10 employees or a large branch of the U.S. Military. The iPhone is not just for consumer applications but it can also be a powerful asset to new or existing business applications to provide your employees a competitive advantage and distinguish your organization from the rest.

At DrewCrawfordApps, we’ve overseen custom deployments ranging from a 5-person salesforce to large enterprise, government, and military deployments. While the AppStore process is familiar to many iPhone users, doing an internal deployment is less familiar, and often our clients have questions. I’d like to “take the lid off” this often-misunderstood deployment strategy.

How many devices can run our custom software?
You can deploy custom software to as many devices as your company owns. In practice, there are a few more hoops to jump through if you are planning a deployment of more than 100 devices.

Do the devices have to be physically present to have custom software installed?
No. We’ve written custom software to do “over-the-air” app deployments so that your mobile workforce can install and update your apps with only a data connection, without the need for a computer, iTunes, special software, or having their devices on-site. If you prefer, it is also possible to deploy apps to a device from a Windows or Mac computer via USB.

For any deployment, from one device to a hundred thousand, we can leverage our proprietary technology to take care of all aspects of the deployment. Alternatively, if you prefer to leverage your existing IT or Logistics infrastructure we can provide support and training to your team as needed.

How does Apple Review happen for custom deployed applications?
Only apps that are submitted for inclusion to the App Store are reviewed by Apple. Apps that are distributed only within an organization are not listed on the App Store and do not need to pass Apple Review.

Can I use a custom deployment to distribute or sell my app to the public?
In general, no. The Apple AppStore is the method by which consumers expect to install applications, and custom deployments are designed to deploy an app only within an organization. You can, however, submit an app that your organization uses internally to Apple for inclusion on the App Store.

What can custom applications do for our business?
The sky is the limit! Your employees can track and manage inventory from their iPhones or iPods. Your IT staff can remotely access and control desktops, laptops, servers, or custom business applications. We can write iPhone and iPad native clients for your databases and business intelligence software to let employees access key information on the go without the need to carry a bulky laptop. Mobile dashboards can let you monitor your business operations remotely and gain quick at-a-glance information. Push alerts can keep you up to date on high-impact problems.

Enterprise iOS software means that the same “magic” that makes great consumer applications can be leveraged to boost employee productivity and create easy-to-use enterprise apps.

At DrewCrawfordApps, we’ve managed custom deployments from small sales teams to enormous enterprise installations. Contact us to find out what iOS software can do for your company.

]]>