On disappointment with clients who are prioritizing production over quality

A friend of mine emailed me, amongst a few others, asking for advice. He’s been working as a consultant for a little while now but has been unhappy about his recent clients. He says they haven’t been focused on the quality of things as much the general production speed and it disappoints him. My reply:

Without knowing the details of your current experiences I would encourage you to look within to improve the situation. I say this not to let the client off the hook but if you wait for other people to change to make YOUR life easier you are going to be waiting a long fucking time.

One of the huge problems is that most of the clients you will interact with have no experience producing software. It is your job to explain to them what a professional software development process looks like and if all the parties are in agreement, and contracts are signed, it is your job to execute that process.

When you were in the early talks with this client how did you teach them what your professional process was like? How did they react when you explained your core values?

If they agreed to your process and then changed the rules midway, shame on them, Walk away as soon as professionally possible, preferably under the comfort of a contract clause they are breaking.

If you never talked about this and just assumed they knew what was in your head about what the process was going to be like then shame on you.

Look inward. Figure out your core values, your development process. Make this part of the marketing of the consultant you. Make it clear to those interested in hiring you, this is how you work. This is how they will get the best value from your time, their money and in the long run, the code base they will own.

And to be clear, finding good clients is hard work. I think making your own expectations clear to them is half the battle, the other half is getting out there to market yourself to more and more people so that A) in the early days you have enough options to weed out the bad clients and then B) you get to a point that through word of mouth you get more and more clients looking for you because your process worked so well for their friends. If you aren’t turning away 4 projects for every 1 you work on, you probably aren’t marketing enough.

Have a question for me? Send me an email.

A Walled Garden of Shit

From the App Store Review Guidelines:

We have over a million Apps in the App Store. If your App doesn’t do something useful, unique or provide some form of lasting entertainment, it may not be accepted.

I sure wish they would take that guideline to heart and start rejecting some of this shit.

So PBG got an iPad and found some shitty iPad games and I’d like to say these are the exception — but they’re not. There are tons of these crappy apps on the store and while it helps inflate that “total app” number for Apple it really hurts people browsing around trying to discover new apps.

WEIRD IPAD GAMES!

Philly Craftsmanship

Software as Craft Philadelphia

A community of professionals dedicated to well-crafted software

Was very happy to attend the inaugural meeting of this group last week. Was a great mix of discussion and hands-on coding/pairing. Thanks to Promptworks for hosting.

During the discussions, the Software Craftsmanship North America conference (as well as its manifesto) were mentioned. You can find a bunch of the conference videos on the eighthlight vimeo channel. Seems like pretty interesting stuff.

In related news (since I think all hosts were in attendance at said meeting), I want to give a plug to the podcast Turing-Incomplete podcast. Finally starting to catch up on this Philly showcase of talent and really enjoying the discussions. Keep up the good work!

July Recap

I’d hate to go a month without posting so here’s some random updates!

Philly CocoaHeads is going as strong as ever. Our WWDC June meeting filled the Apple Store Briefing Room to capacity (~50 people!) with lots of excited geeks. Our Side Project Saturday events continue to see some steady growth (15 people at the July event) and generate lots of interesting conversation and shared ideas. (Funny enough we were talking app bubbles right along side Edge Cases this week even though I didn’t know their topic at the time.) Finally our workshops are finally kicking back into gear with an Intermediate Objective-C course coming in August and a more beginner friendly Introduction to iOS Development course via the Girl Develop It group in September. Philly CocoaHeads is becoming so formal in fact I think we’re going to take the plunge and make it a legit non-profit group to help clean up the financial side of things.

In addition to CocoaHeads, there is also CocoaLove — our upcoming Fall conference. I’ll be doing the main talk Friday night and I’m doing my best to keep the topic upbeat despite my pessimistic tendencies. Big props to Curtis Herbert for really spearheading this event. It looks to be a really interesting and fun weekend. Buy your ticket while you can!

Through my job at Tonic Design things are busy. I have two projects right now, One is for a startup while another an internal app for a large corporation. Sadly these are not public right now so details will have to wait. That said, I’ve been spending a ton of time with iOS animations and I have two things to say. One, the Facebook Pop system is pretty cool and worthy of your time to play with. Two, I’m working on an abstraction system that should help apps with large amounts of animation stay organized. More to come soon on that.

At home, side projects have been back burnered, mostly for CocoaHeads stuff. I am spending time reading up on Swift and playing a little with Go but I’m also trying to keep plenty of time for playing games and relaxing. Can’t be focused on code all the time.

So thats it for July. Hope the summer is treating you all well. Hope to share more soon.

7 Minute Workout Featured on Apple.com

One of the apps I worked on, 7 Minute Workout, has been featured by Apple again. This time it’s part of the Strength TV ad which features a bunch of great fitness apps on iOS.

In related new the DmgCtrl and Tonic merger is kind of official these days. You can read more about it in Technical.ly Philly. You can also check out the revamped Tonic website which has a bunch of new case studies of some of our recent projects.

Congrats to all involved.

Side Projects

Sorry for the dead air over the last few months. Things got a bit hectic at my job and I couldn’t seem to find the free time to post. On the plus side, things are starting to calm down. We’ve shipped some more software and I’m finally catching up with some side projects.

One project which I started at the March CocoaHead Hackday is GoldCards. It’s an iOS reference tool for Hearthstone.

  • GoldCards Screenshot 1
  • GoldCards Screenshot 2
  • GoldCards Screenshot 3
  • GoldCards Screenshot 4
  • GoldCards Screenshot 5
  • GoldCards Screenshot 6

While I want this to be a Universal (iPhone and iPad) app in time I think I’m going to finish up a few more loose ends and release it as an iPhone-only app for now.

Another big side project is CocoaLove, an iOS-focused conference coming to Philly. I’m on the planning committee (sponsorship and AV to be specific). I’d also like to help build a simple conference app with the schedule and what not. Shouldn’t be too hard considering my history with such things.

In addition to all that I’m also trying to catch up with some web tech, Ember and Node to be precise. There are a few things on my idea board that could utilize such skills so I’m taking some time reading books and going through Code School examples to catch up.

iOS Development: Things to Like; Things to Hate

Things I like about iOS Development

  • I like writing code in the Objective-C language.
  • I like Apple’s provided frameworks and tools. They are, on the whole, very good.
  • I like the iOS community’s enthusiasm for great products. It is very inspiring.
  • I like that people will pay you good money to build apps for them in iOS. Though this is has good and bad implications.
  • I love attending, and over the last few years running, CocoaHeads in Philadelphia.
  • I like that the community on a whole is not very secretive. There is a sense we are in this together and people constantly help each other out sharing tips, code and war stories.

Things I hate about iOS Development

  • I hate the exclusivity of the AppStore distribution.
  • I hate that I can’t side load apps that people build that Apple doesn’t approve of.
  • I hate that I have to sign my apps.
  • I hate the learning curve and the bugs of the signing process for all but especially for people new to iOS.
  • I hate that Apple has a shitty code validator during app signing that will complain when I have methods on my objects that look like private methods on their objects.
  • I hate how shitty AppStore search and discovery is.
  • I hate the corporate politics that let apps get featured in the store because of “connections”.
  • I hate how people continue to manipulate the AppStore ranking system and I hate how little Apple seems improve the situation when many small developers livelihoods are at stake.
  • I hate how the Radar bug system doesn’t have tools in place to involve and update the original bug reporter on progress being made. From a third-party perspective most bug reports might as well go into a black hole.
  • I hate how in the pit of my stomach I believe that, on the whole, the iPhone and its brethren have not improved society. I think the majority of mobile software has only helped to empower “generation ‘me’”, a generation that is “friends” with everyone, but no one. This deserves a post on to itself someday.
  • I hate the iOS / Mobile bubble. The fact that people are spending way too much building apps and are not getting a proper return of value on the investment.
  • I hate that building products is way riskier than consulting (bubble related).
  • I hate that Apple hasn’t shown more interest in providing a library management system. Thankfully we have CocoaPods but since it’s on the outside there is a fear it might not be able to keep up as the tool chain evolves.
  • I hate that back when Apple first started to integrate OCUnit into Xcode it enviably killed like 3 or 4 other very promising testing systems because the thought at the time was “well Apple made their choice and will build on it” when in fact Apple never did. Only recently did we see XCTest and it is, right now from a functional perspective, a method renamed version of OCUnit with no new features.
  • I hate how Xcode Bots doesn’t have pre and post scripts.
  • I hate (hate is a strong word — let’s say disappointed by) the growing community of “Apple Celebrity”. The once full time developers who can build great things but now choose to spend the majority of their time blogging, podcasting and tweeting all day. They partake in a low impact ping pong match of opinions on weekly events and news that frankly doesn’t mean all that much in the grand scheme of things.