Starting all over again

As you may have inferred from the posting frequency on this site, I have been going through some changes at my day job. High-profile projects needed to move forward, and a lot of personal tasks got sacrificed for the team and the customer. While I am always happy to work hard to make sure the people around me are successful, things got to a point where my personal development had stalled. As always, my gut knew this was not going to last long before my brain caught up. Luckily, I was able to find another team at Microsoft where I can learn new technologies, lead projects, and mentor other developers as well. I can honestly say this was a change I should have made a year ago. I can’t go to bed now, because I’m excited about working and learning, and I’m always excited at work.

This change has motivated me to re-invest in personal development. First on the list was reactivating my Pluralsight account. I have been very happy with Erik Dietrich’s classes on NDepend and NCrunch, and I’m currently getting into the Outlier Developer course as well. I have been re-invigorated and can easily see myself keeping up this pace for another two years. Dear readers, I hope that you have the same passion and engagement in your lives.

 

If you’re not living your dreams, stay in bed.

Proof of Concept Windows Service

Have you ever created an app that would "own" the device it's running on? Maybe it's a full-screen notification and marketing app to run in your atrium or at a conference. Maybe you are creating a point-of-sale system for use in your store. Maybe you are a teacher and you want your students to focus on your classroom app, and not everything else on the machine. Enter SingleProcessMonitor. This project is a Windows service that monitors running processes in an interactive session, and logs off the user when a target process is closed (or crashes).

This service is written in C# on .NET 3.5. That means that this should run out of the box on Windows 7 or later. If you look at the MonitoredProcessName in the VDIMonitorService class you can edit the name of the process you want to monitor. Install the service with InstallUtil and you should be in business. Or download the code on CodePlex and get a jump start on your custom solution.

Investing in your Windows apps

Before I get started, please note that the Keep the Cash promotion is only available to developers in the United States. I apologize in advance to my international readers.

KeepTheCash_BuildBanner

 

As you gathered from reading the links above (or the images with $100 bills), Microsoft is offering developers who publish apps for the Windows Store or Windows Phone Store $100 per app, up to a maximum of $2000 (if you publish 10 apps each for the Windows Store and Windows Phone Store). While some writers have complained that this is not enough to fund a new app (it’s really not), or that it will encourage more shovelware (both of the app stores are curated, and apps do get rejected), I think it’s important to look at this from another point-of-view.

 

This program encourages developers to release a Minimum Viable Product. As long as the apps meet all of the certification guidelines, they are eligible for the promotion. This should encourage developers to quickly focus on what their app is great at. Publishing the app is not the end, (although the team should take this chance to have a celebration), but rather the beginning of a conversation with the app users. How can we best continue the conversation after version 1.0 has shipped? I think this promotion offers new app publishers a little cash to invest in their success. I’ve listed some ideas for keeping the momentum after the app has been published.

    Marketing

  1. Advertise your app Where are users going to find out about your app? Facebook, Twitter, New Releases in the store? Consider targeted ads so users who are already using your target devices see ads for your app.
  2. Buy a website/domain Invest in a domain for your app to provide a level of polish that users can see you are investing in sustaining the app. Users who click for more information will notice that they are going to a site dedicated to your app. A support email address with the app name gains more trust than appsupport12345@hotmail.com.
  3. Email campaign Another way to raise awareness about your app is to launch an email marketing campaign. Obviously, developers with an existing product or brand will have a friendlier audience than developers launching a brand new product.

    Developer Productivity

  4. Pay for Azure notifications. I picked notifications, but Windows Azure offers all sorts of mobile services (in addition to the more traditional IaaS offerings). If you are a small development shop, it helps to focus on what you are good at, and outsource other infrastructure tasks.
  5. Buy custom graphics As you can probably gather from my suggestion, I don’t have a lot of artistic talent. Maybe that isn’t your shortcoming. You can always outsource parts of your application/business to take the stress off of having to manage those things. That gives you more time to focus on what you do best.
  6. IDE plug-ins  I’m a huge fan of refactoring tools. They take a lot of the needless pain out of improving your codebase. I’m most familiar with ReSharper, but there are plenty of others. Anything that takes the drudgery out of coding and helps you think and develop with greater efficiency is worth a look.

    Improved Quality

  7. Outsourced testing/logging Companies like Appfail and Airbrake make it easy to collect exception data, and even easier to generate reports to identify trends and keep you feedback lops tight!
  8. Offer bug bounty
  9. Debugging device How does your app behave on devices with low memory? Do your graphics look as good on a smaller screen? Unlocked phones are coming down in prices daily, and an extra device for debugging never hurts.
  10. Hallway usability Do you perform “hallway usability testing” Is your local barista sick to death of you? Does your significant other go into hiding when you start coding? Why not offer people a few dollars and perform Skype usability testing? I’ve seen developers get their sites translated this way. It might take a while, but you’re meeting new people along the way.