Quality Ownership Part 2: Consulting Services & Support

This is part 2 in a series of posts that examines how each role at a company owns the quality of product.  Part one looked at sales and development.

Consulting Services

If you sell additional services, and code enhancements in particular, then you also own the quality of the product that was shipped. Your on the front lines working every day with a customer who is perceiving the final experience of the product through all the customizations and integrations that you have implemented for them.


Who is responsible for quality? Raise your hand.

When I started my career at Microsoft I was on the QA team and I distinctly remember a conversation with one of my team leaders that went something like this:

Me: “We’re responsible for the quality of the product.”

Test Manager: <Laughs>

Me: “Then who owns it?”

Test Manager:Everyone – the job of the QA team is simple to accurately measure the state of product quality consistently.”


Create Retina Display Images in Mobile Web Themes and PhoneGap Apps

Looking at my iPhone 4 screen makes me wish all my screens had such high DPI.  Everything looks so crisp.  During the development of GoodDay I realized that the icons and images I’d used in my own app were not being rendered in high resolution.  I wanted to share how I addressed that and how you could address it with your own mobile web site/theme/app as well.   Basically the solution is to use divs and set specific sized background images for the high-DPI displays.


Skip the splash screen in your apps

Someone reported a “bug” in GoodDay that they “didn’t like the splash screen” I used:

And I admit that I’m not a designer, but I thought this was a clean screen to show while the app was loading.  Until…

I started playing with the built in Apple apps and realized they don’t use a splash screen.  Watch the iPod app open if you want to see what I mean.  They basically load a shell of the UI and then the UI renders on top when it’s ready.  So I set this as my goal.  I built the following “Splash” screen.

In my opinion:

  1. It makes your app feel like it’s loading faster than it is.
  2. You’ll fit in more with expecations that have been set by the default apps.
  3. You don’t have to design a splash screen. 🙂
  4. Apple’s style guide recommends this approach as well… and Apple is never wrong… right?

Now, if you are using PhoneGap to build your application for the iPhone you’ll notice a bug loading the default.png file where it “jumps” 20 pixels right before your app loads as shown here:

If you want to fix this issue you’ll need to tweak the main PhoneGap library code in the following way:

1. Open PhoneGapDelegate.m

2.  Roughly around line 188 you’ll find:  imageView.tag = 1;

3 After that line add: imageView.frame = [[UIScreen mainScreen] applicationFrame];

Hopefully future versions of PhoneGap fix this issue, but for now this will have to do.


First Review of GoodDay – 4 stars

Its always thrilling to get reviewed on ones work. I had been waiting for a while for this, but must have missed it showing up recently. It’s great validation of the direction I took. And since this is my one customer… And his requests align with what I’d like the app to be… Then he’ll be very happy when the next version comes out. Thanks Lumpy!

Nice concept! – ★★★★

by Lumpy Rutherford – Version 1.0 – 23 November 2010

Fills a middle ground in the goal tracking apps that I’ve tried. Great for tracking diet, exercise, and skill enrichment pursuits. Just two small things to perfect this app: • goal sorting • editing goal names

Building an iPhone app Part 3: 7 Dev Tips

This post is a collection of tips I learned while developing GoodDay for the iPhone with PhoneGap.

1. Start with something off the shelf – After “Hello World” I started with using jQtouch as a shortcut to iPhone UI.  jQTouch is a jQuery plugin for mobile web development.  I’d describe it as a combination of page manager, mobile application theme engine, and a set of UI controls that enable you to easily mimic default iPhone UI.

2. Minify your CSS & script files – Performance is critical.

3. Leverage the jQtouch Tap Event – The tap event is faster than the standard click event because it doesn’t wait the requisite number of milliseconds to register like standard links in Safari.  It makes your app feel more app-like.  For example:

$(‘#removeGoal’).bind(‘tap’, function()

{ deleteGoal(removedGoal, $(‘#goalID’).val());});

4. Pick Tap or Click for browser testing. Of course you can’t use the tap event when testing in desktop safari so you’ll want to define the click event on the load of the application:

var isiPhone = (userAgent.indexOf(‘iphone’) != -1 || userAgent.indexOf(‘ipod’) != -1) ? true : false;

clickEvent = isiPhone ? ‘tap’ : ‘click’;

Then simply use clickEvent instead of hardcoding ‘tap’ all over the place.

5. Disable scrolling if you don’t want your header or footer to move.

document.addEventListener(‘touchmove’, function(e){ e.preventDefault(); });

6. Enable scrolling in regions you want to scroll. You may not want the header and footer to scroll, but you may have a list in the center you want scrolling… for which you’ll need something like iScroll because mobile webkit does not provide a native way to scroll content inside a fixed width/height element… which really takes away from the app-like feeling.

7.  The onDeviceReady() function is not called when you test in the desktop browser… so you’ll also need to break your initialization code into a function that is called only once depending on how the application is being used.  But you’ll want to make sure you don’t try to do too much before the device is ready.

That’s it for now.  In the next part I’ll publish some tips about submitting your app to the Apple Store.

GoodDay Sells 51 Copies!

Since learning was my primary motivation I had a low sales total in mind. My assumption was that I’d get most of my ~15 closest friends to but it, around 20 people that have or do work with me would buy it, and then I’d sell another 10 copies or so to random people that somehow found it amongst 300,000 iPhone apps and *10,000 other daily task/goal tracking utilities. So that meant I guessed at 45 copies sold and set a stretch goal of 50. 🙂

Well, Gabe woke me up at 5am so I figured I’d check out the sales total on iTunes Connect and I’d hit 51! So… thanks to all 51 of you… I wish I knew who more of you were and what feedback you had… but thats $35 for Reading with Rover and I’m happy about that.

* It may just feels that way. I’m sure the actual number is closer to 7,000 other goal trackers.