codocent - Jim O'Neil's mobile app development musings

Get on the Mobile Field Enablement Bandwagon

Merge the ubiquity of mobile devices and the always-on nature of the cloud, and it’s a no-brainer for automating your mobile workforces, whether they comprise insurance agents, home inspectors, delivery personnel, or grade school fundraisers!

Such solutions are slick and modern, but there’s a lot behind the scenes, and that’s why BlueMetal Architects, Xamarin, and Apprenda have partnered for a free, three-city Field Enablement Roadshow, kicking off in Cambridge at the Microsoft MTC on August 28th.

  Cambridge, August 28, 1-6 p.m.
Register for: New York, September 3, 1-6 p.m.
  Chicago, September 17, 1-6 p.m.


BlueMetal Architects - The Modern Application Company image Apprenda

During the 1/2 day event, consultants from these three organizations who have “walked the walk” will discuss strategies for efficiently leveraging mobile devices and the cloud for mobile workforces, with ample case studies and well as lessons-learned on pitfalls to avoid as you embark on your own modernization efforts.

I’m looking forward to attending myself, and hope to see you there!

Global Windows Azure Bootcamp Review

This past Saturday about 40 nephelophiles (cloud enthusiasts) gathered at the BlueMetal office in Watertown, joining technologists across 50+ countries and 138 locations for the 2014 Global Windows Azure Bootcamp (#GWAB).


Attendees were treated to a full day content and hands-on labs covering topics such as virtual machines, cloud services, Windows Azure Websites, DevOps, and mobile services.  One of the labs even contributed to a global effort on diabetes research! Through the support of multiple global sponsors, a number of lucky attendees won licenses to software and services from Cerebrata, JetBrains, myGet, and numerous others.

For the content presented at the Watertown venue, please consult the following link:

Window Azure Overview, by Jim O’Neil

Windows Azure Virtual Machines, by Udaiappa Ramachandran

Windows Azure Cloud Services, by Jim O’Neil

DevOps, by Chris Condo

Mobile Services, by Dmitri Artamanov

Windows Azure Web Sites (slide 43++), by Udaiappa Ramachandran

Labs (and more) can be found in the Windows Azure Training Kit.

Global Windows Azure Bootcamp (x2)

On Saturday, March 29th, cloud enthusiasts in nearly 150 locations within more than 50 countries will gather for Global Windows Azure Bootcamp, an all-day primer on Windows Azure – and the Boston area will host two such opportunities!

Global Windows Azure Bootcamp

Both Microsoft’s New England Research and Development Center (NERD) in Cambridge and BlueMetal Architects in Watertown will be hosting this all day, FREE, lecture/hands-on event at their respective facilities. We’re coordinating content and speakers across the two venues, so simply register on Meetup for the location – Cambridge or Watertown – more convenient to you (space permitting).

We are still finalizing the agenda, but you can expect to hear about – and provision yourself  – Virtual Machines, Cloud Services, Storage, Web Sites, Mobile Services, and more, as well as contribute to a massive compute farm focused on diabetes research.

To make the most of the event, you’ll want to bring a Windows laptop with the following (trust me, it’s easier to have this set up beforehand than tax the bandwidth at the location):

Light breakfast, lunch, and beverages will be available.

New England GiveCamp 2014

Pay no attention to the mounds of snow; spring is on its way and with it comes the 5th Annual New England GiveCamp. Once again – from April 4th through the 6th - Microsoft’s New England Research and Development (NERD) Center will play host to 120 or so software developers, designers, project managers, and non-profit representatives as they convene for a 48-hour “hackathon” focused on projects to help the charitable organizations better meet their goals.

GiveCamp has been the success it is because of three main ingredients, giving each of us a chance to contribute:

Non-profit organizations. Each year around two dozen non-profit organizations are on site with project needs including website creation or redesign, mobile application development, logo and graphic asset creation, database design, and more. This year more than 30  applicants are already in the midst of the vetting process, so at this point any new submissions will be put on a waiting list.

Sponsors. The majority of the expenses for this event are the cost of food (six meals and snacks) and beverages (yes, lots of caffeine) to keep the attendees fueled throughout the event. We’re always looking for additional cash donations or donations-in-kind to defray these costs and enable more organizations and volunteers to participate. Please visit the sponsors page at the GiveCamp website for details on how you or your company can help.

Volunteers. Got the weekend of April 4-6th free and want to lend your talents to some amazing local organizations? Sign up as a volunteer, and you’ll be placed on a team of folks focused on a project for a participating charity. Depending on your background and project needs you might be able to assist on multiple projects! All we ask is that you bring your enthusiasm, willingness to learn (potentially) new things, and the ability to commit to participating for the duration of the event. You can even camp out at the facility – though that’s not a requirement!

It’s a fantastic event; you’ll make new friends and be a part of making a difference in the New England community at large. Be sure to follow the event on Twitter and Facebook, and if you have any questions on the event itself, reach out to the coordinators at

Lessons from a Night at the Randori

Although my claim to being a software engineer spans two millennia, the recent job change has made me keenly aware that my previous support and evangelism roles, while quite technical in focus, had me writing programs versus really developing software. In terms of processes and development lifecycles, my practical skills hearken back to the days of Ada and DOD-STD-2167A, so I’m making it a priority to dive in to modern techniques like Scrum, TDD, DDD, AOP, etc.

chaos taking

To that end, I attended the Boston Software Craftsmanship meetup this past Monday, where the featured activity was a Randori session. The setup is simple: provide a small programming task (conversion from Roman to Arabic numerals, in this case) and apply a test-driven design approach to solving that problem. The twist here is that you work in pairs (one person coding, one person typing) for 5 minutes before shuffling the typist off and bringing a new coder into the mix. Within that five-minute span the goal is to make progress on the task and leave the system so that test cases are green when the given shift is over.

Kudos to the organizers for keeping the programming environment and details out of the way – JavaScript + Jasmine + Sublime – really provided a minimal logistical barrier to entry. Even so, and as much as I’m used to speaking to audiences, I have to say live coding always makes me feel ‘exposed.’ I jumped in anyway toward the middle of the exercise, and thought I’d reflect on the experience (unfortunately, I had to leave a bit early, so wasn’t able to stay for the post-exercise discussion).

  1. It’s hard to let go.  When the kata was announced, I spent a few moments mentally formulating an approach to the problem; that approach though didn’t match the flow of the first few participants, and when I got to the hot seat, it was harder than I expected to adapt.
  2. It’s ok to fake it (but that doesn’t mean I like it!).  My “do it right the first time” mentality is being challenged by the mantra that passing the test by any means is the goal. For instance, assuming the domain of Roman numerals with values from 1 to 100, the following (pseudo) code would pass the test for the input “I”:
    // romanNumeral is a string input
    int value = getArabicValue(romanNumeral);
    function getArabicValue(s)
         if (s.length === 1)
              switch (s[0])  {
                   case "C": return 100;
                   case "L": return 50;
                   case "X": return 10;
                   case "V": return 5;
                   case default: return s.length;
         return s.length;

    I know that seems horribly contrived, but for about half of the exercise, the use of string length in just this context passed muster. Perhaps the contextual error (specifically in the default branch of the switch) would be caught in later testing rounds, but I would submit that it very well might not be. The test passes so all is good right?  That kind of leads me to my next confliction…

  3. It should be ok to think. The Wikipedia TDD entry mentions

    At this point [write some code], the only purpose of the written code is to pass the test; no further (and therefore untested) functionality should be predicted and ‘allowed for’ at any stage.

    but that seems just a tad draconian to me. Certainly you don’t want to go full bore and reduce TDD to a single test of the complete system, but there were times I felt constrained to ignore the obvious and go only where the test guided me. I’ll grant that such singular focus enforces a certain purity in the process, but the dead-ends and thrashing that could have been avoided by just a little bit of a look ahead still nag me. At one point the apocryphal story of monkeys on a typewriter banging out the works of Shakespeare came to mind – I could see we’d eventually get there, but somehow the journey seemed longer than necessary.

  4. Involve domain-savvy users. Our coding scenario (Roman numeral conversion) was pretty simple and well-understood; nevertheless, as the first round of tests went down a (natural) sequential path 1, 2, 3, 4, etc., it became clear to me that domain knowledge should play a part in the test case development. For instance, you need to know a little about the Roman numeral system to realize that 19 is a bit more interesting than 15. Do I even trust myself to create meaningful tests? Might I not project my biases or misunderstanding of the domain into my testing?
  5. Testing is free. Ok, well, not completely free, but it’s kind of cool to see your test suite grow without it seeming like another onerous task. A workflow that doesn’t get in your way is key here: if you have to move from your coding editor to some other system to create a test and run it, it will feel like a hurdle and you won’t do it. I suspect too that’s a main barrier to TDD adoption – not that the tools aren’t there, but that people need to experience the cycle to appreciate it. The legacy of test plans, test procedures, and other onerous (and often meaningless) project documentation probably plays a part as well in unfairly giving “testing” the baggage that it has.

Takin’ the Train

As I’ve been settling in to the new job and new location, I’m finding myself becoming much more of a consumer than a producer – application-wise that is. While I spent a lot of time at Microsoft building my own apps and helping others publish to the Windows marketplaces, I didn’t really have a ton of time to enjoy the devices and the apps out there. With my new job and a commute that has me taking the train and bus, I have to say it’s been kind of fun using Windows 8 and leveraging some of the content-focused apps out there.


What I’m carrying…

Not driving gives me the opportunity to stay up to date with blogs, podcasts, and videocasts, and I absolutely love the Dell Venue 8 Pro that I got myself for Christmas.  It has a great form factor, slips easily into a bag while I have the earphones plugged in, and when I occasionally want to, say, review some code I’m working on, I don’t have that “oh yeah, I can’t do that on (Surface) RT moment.”

What I’m reading…

An inbox that went from 100+ work-related emails a day to (for now) single digits has given me a chance to reconnect with the blogosphere. My friend and colleague, Dave Davis, turned me on to Nextgen Reader, which is essentially a client app for Feedly. You’ll need to set up a Feedly account and manage your subscriptions there, but then you can let the app take over. Nextgen Reader makes great use of the share contract too, so you can quickly tweet an article or send it to the Reading List app on your device for later review.  (Feel free to download my OPML file to get started).

What I’m watching/listening to…

I have to admit, I was a bit surprised and disappointed that the built-in XBox music app doesn’t support podcasts, but there are several other options on the Windows Store.  Many are free, but I settled on podscout, which, at $4.99, is decidedly not free! It does have a trial option – a sine qua non for any priced application in the marketplace – but I was drawn to it by three primary factors

  • preponderance of positive reviews,
  • screenshots that evoked some thought to the user experience beyond the built-in Visual Studio app templates,
  • clear indication via the description that there’s been recent work (8.1) on the app and feedback is encouraged via Twitter and e-mail.

I’m still honing my playlist, but you can check out what I’m listening to now, and feel free to let me know if there are additional developer-focused series I’m missing.

What I’m learning…

The project I”m currently on is a fairly mature WPF/Silverlight app with about 40 projects, so suddenly TFS, custom content controls, and new features of Visual Studio 2013 (like Code Lens) are front and center. I’m in the midst of Pluralsight’s Introduction to WPF Custom Controls course now, but since my subscription is streaming only, and the WiFi on MBTA is spotty at best, I’m using the commute time to watch the lectures of the Coursera class on Programming Mobile Applications for Android Handheld Systems.

Where’s Jim?

I wanted to thank folks for the kind e-mails and comments to my last post and give you a quick update on where I landed. I’m a Senior Software Engineer at BlueMetal Architects in Watertown MA, working on the the UX/Mobility team. I just finished week one, and it’s been great to connect again with former co-workers at Microsoft and get involved with real projects leveraging the technologies I’ve been mostly just talking about for the past six years.

BlueMetal Architects

As I’m getting my feet wet in the new role and (re)learning what it is to be a consultant working on external projects, I expect my blog postings and community engagement to lag a bit. I am though looking forward to leveraging what I’m working on to craft deeper tech postings and presentations at user groups and code camps. For those of you looking to connect with me directly, I’ve updated my contact page and look forward to keeping in touch.

Happy New Year

Every new beginning comes from some other beginning’s end.

Semisonic / Seneca the Younger

This new year brings a few more changes for me than in the past as today marks my last day as a Technical Evangelist at Microsoft and indeed my last day at Microsoft.

so long and thanks for all the fish

It’s hard to believe that nearly six years, thousands of miles, and gazillions of Meetups, BarCamps, and community events have passed since I joined the audience team of Microsoft’s Developer and Platform Evangelism (DPE) organization. I was drawn to Microsoft by my love of application development, but it was the involvement with community and the hundreds of folks I’ve met and interacted with throughout the years from which I drew my energy, and I thank you all for that.

As I move to the next stage of my career, I’m excited that I’ll be working hands-on with the very same technologies I’ve been espousing, and am looking forward to being part of the community from “the other side.”

Getting Noticed: Crafting a Press Release

Continuing the theme of increasing your application’s user base, here’s another article from Sean Casto, the CEO of PreApps, a Microsoft App Builder partner and the leading platform introducing new apps to users and the marketplace prior to release.


The Importance of a Powerful App Press Release By: Sean Casto

You’ve created a great app, and it’s ready for release. Now what? As most developers know, gaining users and promoting your app is just as important as the development process. One of the most highly-regarded tools employed by developers to announce the launch of their app is the press release. A press release has a longstanding history as being a powerful and effective way to gain the attention of everyone from news outlets to bloggers, and spread the word that a new app is being released into the competitive marketplace.

The Importance of a Powerful PR

Writing and distributing a press release isn’t a step in the process that should be skipped. You’ve likely been working to market your product from the start, but you need to let the influential people in your industry know that your product exists. With that being said, if you’re an app developer, you may feel you lack the necessary skills and expertise to make a great press release. It’s important to follow a particular formula, and stick to the information, because writers and reviewers are constantly bombarded with information. You need to create a press release that’s going to quickly and effectively capture their attention.

Top Tips for Successful PR Creation

1. Create a Timetable

Before you begin writing a press release, you should determine whether you’ll be releasing it prior to the launch of your app, or to coincide with your app’s launch. The timetable will determine the angle of your press release.

2. Include Your Icon

Include your app icon or your logo in the body of your press release. This is an important identifying feature, and it should be prominently displayed within the actual written work. If it’s simply included as a link, it’s likely that it won’t be seen by the reader.

3. Don’t Overlook the Importance of Your Header

Take the time to craft a concise, yet attention-grabbing subject line. Many times, people hastily create a subject line, but in actuality, it’s one of the most important components of the press release. If you can get your reader to continue beyond the subject line, you’re doing well. If your reader glances at your subject line and isn’t compelled to continue reading, your press release hasn’t been successful. It needs to be brief, but interesting. A press release must be newsworthy, and the subject line is your opportunity to create that sense of newsworthiness. It can’t simply be an advertisement of your product, but rather needs to be something that’s time-sensitive, for example, “New app launches amidst much anticipation.”

4. Keep Your Reader Interested with the Summary

The next step, beyond the subject line, is to create a summary that will further compel the reader to keep going. Use the summary line as an opportunity to delve a little bit more into what your app offers, and what makes it unique, without providing too many details. Use your summary to make your reader want to know more.

5. Simplify it for Your Reader

Bloggers and journalists are programmed to quickly sift through press releases and find the ones that are the most relevant and interesting, so make reading your release easy for them. Put the most important information in the first paragraph. As the press release progresses, you can include more details, but make the first paragraph targeted to your reader. Imagine they’re only reading the first paragraph and include the information you’d most like them to know about your app.

6. Skip the Fluff—Get to the Point

Use the body of the press release to give a description of your app, including what it does and the important features. Skip the fluff—remember, this isn’t an advertisement. Stick to the facts, and keep the wording simple and concise. You need to be able to tell your reader why people should care about your app. It’s also a good idea to include a quote from a member of the development team. Your quote can be a bit more on the advertorial side, and you can really be creative in piquing the interest of readers.

7. Interest Your Reader in Your Company

Include a brief paragraph about your company at the end of your press release. Include any awards or previously released apps that have done well. If you have an interesting background, perhaps include one or two sentences about that, in order to drive interest in what you’re offering.

8. Give the Reader a Clear Point of Contact

Always include contact information, including your app or company’s website, screenshots, links to demo videos, and your personal information. If a blogger or journalist wants to follow-up with you about your app, you need to make it easy for them to contact you.

Gaining Maximum Exposure

The press release, if done correctly, can be an effective tool for developers. PreApps has designed options to take the guesswork out of the creation and distribution of press releases. In fact, they have a team of professional writers who craft custom press releases, utilizing the company’s press kit, and then distribute it to more than 250,000 news subscribers and more than 30,000 bloggers in order to generate the highest possible level of exposure. The company offers affordable pricing, simplifying the process of marketing an app in order to help the developer obtain worldwide attention.

About The Author:

Sean Casto, a Boston-based entrepreneur, is the founder and CEO of, the leading platform introducing new apps to users and the marketplace prior to release. He has been a guest speaker at industry conventions for Microsoft and Samsung and lectured at Universities such as Northeastern and Harvard. He as also appeared on and been mentioned by The Washington Post, USA Today, The Boston Globe, Boston News Network, and The Associated Press. Through his work and industry experience, Casto has acquired a deep understanding of the struggles developers face and a passion to serve the growing mobile app community. He is now the Chairman & Founder of App Demo & Drinks (a mobile non-profit) and holds an advisory position for numerous start-ups.

Getting Noticed: Creating an App Demo Video

Continuing on the theme of my last post, I’m pleased to be able to publish an article from Sean Casto, the CEO of PreApps, a Microsoft App Builder partner and the leading platform introducing new apps to users and the marketplace prior to release.

How To Create An Effective App Demo Video To Attract Users
By: Sean Casto

Most people rely heavily on visual elements during the decision-making process. For app developers who have undertaken a great marketing campaign and been able to successfully drive traffic to their app, the next step is to ensure users are actually downloading the app and the download is going to rely heavily on the demo video. A demo video is the first glimpse users will have of an app, and it isn’t something that should be created hastily; it goes beyond an app store description, and gives users a visual representation of what the app has to offer. An app demo video (such as the one from MANIC Apps below) gives users the opportunity to experience an app before they decide to buy it, and it’s a make-or-break component for successful apps.


Making the Most of a Demo Video: The Top Tips

There are a few ways developers can optimize their demo video, and make it a sure-fire success by generating not only interest, but also downloads.

1. Choose Your Tools Carefully

Use the right recording programs. For example, when creating a video for a Windows Phone app, consider options like Jing in conjunction with the Windows Phone Emulator. Great caliber recording programs improve the overall quality and delivery of a video.

2. Don’t Shy Away From Creativity

Using creativity to set an app apart means the demo video can’t be basic. Infuse a bit of personality into it, and make it unique from the other countless videos users will see. Whether it’s through music, or the development of a storyline, compelling users to download an app because it’s fresh and different will make an app memorable and noteworthy.

3. Harness the Power with a Strong Voice

Finding a voice is integral for an app. Even paying for a voiceover may be worth it to improve the overall quality of a demo. For simple apps, it isn’t entirely necessarily to include a voiceover; background music will suffice as long as it gives off the mood and feeling the app portrays.

4. Keep it To-the-Point

With only a short window to convince the user an app is worthwhile, focus on utilizing a small amount of time, rather than making a long video. Focus on grabbing the user’s attention in the first few seconds of the video, because that may be all the time a user will give before moving on.

5. Hook Your Viewers

A demo video doesn’t simply have to demonstrate functionality, it can also include a few benefits and features that will entice users. Include these as part of the voiceover, or added as captions during the editing process if only music is being used. A demo video is a unique selling tool, so take advantage of the opportunity.

A Professional and Polished Final Product

Creating an app demo video can be an overwhelming process for many developers, and creating a finished product that is polished and effective can present a challenge. To overcome this obstacle and create a dynamic and impactful demo, developers can use the services of PreApps to provide a complete, professional level demo video, at budget-friendly prices.

About The Author:

Sean Casto, a Boston-based entrepreneur, is the founder and CEO of, the leading platform introducing new apps to users and the marketplace prior to release. He has been a guest speaker at industry conventions for Microsoft and Samsung and lectured at Universities such as Northeastern and Harvard. He as also appeared on and been mentioned by The Washington Post, USA Today, The Boston Globe, Boston News Network, and The Associated Press. Through his work and industry experience, Casto has acquired a deep understanding of the struggles developers face and a passion to serve the growing mobile app community. He is now the Chairman & Founder of App Demo & Drinks (a mobile non-profit) and holds an advisory position for numerous start-ups.