December 19, 2011. It’s Holiday Party time at the Central Ohio Windows Phone User Group (http://cowpug.org/). With BBQ food, custom shirts & cakes, it’s time to celebrate the first 6 months of our user group – a wonderful group of passionate Windows Phone developers.
However, despite the Holiday spirit, it is our single monthly meetup .. so something productive was called for before we started the good times. Just for kicks, I did a 30 minute talk titled “7 Deadly Sins for Windows Phone Developers!”. Nope, nothing religious or biblical about it . This was a short talk built by simply drawing pointers from past Windows Phone development experiences...some common sense Do’s & Dont’s. I believe it was well-received or maybe the folks at COWPUG are way too lenient with me. Anyways, I had some fun mapping the 7 Deadly Sins to what we developers should stay away from while developing for the Windows Phone ecosystem. Accordingly, I thought it might be a curious exercise to take the 7 slides for each of the “cardinal sins” for WPDevs and make a short article series out of it.
So, here goes. Today, we begin with what the 7 Deadly Sins are and also delve into the first sin: Pride. During each of the next 7 posts, you’ll see one sin & how it relates to some no-no’s for Windows Phone developers. I might make a few pointed comments, which I hope you would not take personally...I am in violation of several of the principles we will talk about in my own Apps, which I am trying to fix. This is simply an attempt to summarize some best practices & great tools at our disposal as Windows Phone developers. These posts will not have any code to show; rather tons to links to point you to awesome resources. I would really appreciate it if you point out any resources I may be missing out.
So, what are the 7 Deadly Sins ?
The 7 Deadly Sins, also known as the Capital Vices or Cardinal Sins, is a classification of objectionable vices that have been used since early Christian times to educate and instruct followers concerning fallen humanity’s tendency to sin. The currently recognized version of the sins are usually given as pride, envy, sloth, wrath, greed, gluttony and lust.
In each of the next seven posts, we will pick up one of these cardinal sins & see how it relates to Windows Phone Development:
What is Pride ?
Pride is excessive belief in one’s own abilities, that interferes with the individual’s recognition of the grace of God. It has been called the sin from which all others arise. Pride is also known as Vanity.
Why: Well-meaning elementary school teachers told you to “believe in yourself.”
How does Pride relate to Windows Phone development ?
– Overconfidence, failure to acknowledge, boasting ..
Many of us swear & stand by our code with confidence. While that’s not a bad thing, let’s not be a victim of overconfidence in writing a solid Windows Phone app & then continue delivering updates without breaking functionality. Here are a few ways Pride can get in the way of Windows Phone developers, preventing us from delivering a quality product to our users:
- OverConfidence in MarketPlace submissions: Check, check & check again on Application Certification Requirements before being trigger-happy on submitting your hard work to the Marketplace.
- Did you know about the Marketplace Toolkit?: Run checks locally & submit to Marketplace with confidence. A full article detailing use of Marketplace Toolkit is here.
- Not using Emulator Tools: Windows Phone Mango SDK brought along several enhancements to the Emulator VM that allows for better testing locally. Make sure to use them if they fit your app; a great article about Emulator Tools can be found here.
- Why are you not using Beta testers?: Also new, is the way to publish your app to a closed group for testing/feedback before final release. This could be greatly beneficial in flushing out bugs & issues, if you have a trusted group of testers; more details about Beta Testing can be found here.
- Unit Test before shipping: This is especially true as you ship updates to your app; it is important to start building a battery of Unit tests to make sure core functionality is intact. The Silverlight Unit Test Framework bits (details here) should help.
- Device + Mom Testing: Your pride in how well the code runs in the Windows Phone emulator should not be a replacement for on-device testing, which is critical before any Marketplace submission. Physical devices often have quirks that expose edge conditions; additionally you get to see for a couple of days how your app feels in your palm. It is a great practice to have the emulator & device in contrasting theme/accent color for thorough testing. Also, a lot of users of your app may be non-techies, who may have different expectations on UX than we developers do. So, make sure you have your Mom or some non-developers test your app for feedback.
- Use the Isolated Storage Explorer: Need to see how your app behaves as files/folders change in your Isolated Storage over time? Make sure to utilize the handy Isolated Storage Explorer to test out conditions of change in the isolated storage; details of usage here.
- Being Aware of common certification/UX glitches:
- Back Navigation
- App Exit
- Requisite Artwork
- No-connectivity mode
- Improper App activation coming out of Tombstoning
- Declarations/User Permissions for using Location/Push Notification services
- Non-Metro look & feel (great resource here)
That’s it for not allowing “Pride” to get in the way of being an awesome Windows Phone developer. There's probably a lot more to add; but my need for brevity & my thought process are calling it quits for the day. Hopefully, you come back Day #2 article in this series of “7 Deadly Sins for Windows Phone Developers!“.