Friday, October 24, 2014

Looking into Continuous Delivery / Lean Enterprise


After a conversation with my boss I just downloaded Continuous Delivery to my Kindle reader (Windows 8 / Windows Phone app). 

On first brush, I can see it’s akin to the next phase of a process I'm somewhat familiar with.  I've referred to it as Software Factory in the past, and even have a label for it in this blog.  I designed and delivered a "Software Factory" solution around some of these concepts at one of the few product based companies I worked at in my career…  

"Software Factory" took Continuous Integration (CI) up a  few notches by automating not just builds, but code generation, deployment packaging, and then an early stab at what might now be called a private cloud, where we automated spinning up an instance of target test systems, deployed the fresh baked product, ran smoke tests, and (if smoke tests looked good) notified the folks in QA for more complete testing of a solid candidate.   


I’ve been a fan of Domain Specific Language (DSL) for the purpose of custom build & automation ever since. 

For that company our solution was an on-premises deployment, so it was still a matter of convincing customers to deploy the updates…  but our automation produced both full install kits as well as patches that would upgrade a running system from a known build to a target build.    

That company was preparing to take the product into the SaaS model which was very new at the time, and this would have been a part of that, as well.   

I've worked with TFS to integrate smoke testing and build automation, as well.  That could easily extend to this sort of thing. 

That company suffered from lack of customers, unfortunately, but it was a process I’ve been looking forward to getting back to, and expected we’d get back to in the consulting world some day.    It's interesting that Software Factory (as Continuous Delivery) is working it's way back to top of mind relevance through the cloud...  I'm looking forward to reading what the authors of this book have to say about it.

Wednesday, October 15, 2014

An Alternative Profile, in C#

The folks at BlueMetal keep profiles of each team member on the web site.  They asked all of the recently added teammates to draft up a profile. The hard part for me was that it felt like I needed to model and express myself in terms of... C#, of course.  :)   I wrote this with enough supporting scaffolding to get it to compile...

using System;
using System.Threading;
using System.Threading.Tasks;
using BlueMetal;
using Microsoft;
using Database.SQL;
using Web;
using Mobile;
using Services;
using Cloud;
using Experience;
namespace Profile
{
   public class Jim_Wilcox : SeniorApplicationDeveloper
   {
     private Jim_Wilcox()
       : base()
     {
       Blog = "http://granitestatehacker.kataire.com";
       CommunityLeader =
         Community.NH_SharePoint_UsersGroup |
         Community.NH_WindowsPlatformApplicationDevelopers_UsersGroup;
       EventCoOrganizer = Community.SharePointSaturday_NH;
       YearsOfExperience = Qualifications.Decades;
       Vision = Qualifications.EnterpriseLevel;
       LearningMode =
           Qualifications.Continuous | Qualifications.EarlyBinding;
       Skills =
           Skill.NET | Skill.MVC | Skill.SharePoint | Skill.TFS |
           Skill.Azure | Skill.SQL | Skill.Many_More;
       Industries =
           new System.Collections.Generic.List<Industry>() {
             Industry.Military, Industry.Telecommunications ,
             Industry.Retail, Industry.Financial ,
             Industry.Healthcare, Industry.Hospitality ,
             Industry.Concierge, Industry.Construction ,
             Industry.Many_More};
     }
     public static async Task EngageAsync(StatementOfWork context)
     {
       await BlueMetal.Project.Execute(context).UsingDeveloper(Individual);
     }

     public static Jim_Wilcox Individual{ get { _unique = _unique ?? new Jim_Wilcox(); return _unique; } }
     }
}

Friday, October 10, 2014

Winds of Change

If you hadn't heard yet, Jornata merged with BlueMetal.  As part of the merger, BlueMetal organized a session of "BlueMetal Academy" to help transition the team.  In spirit of a true merger, Jornata members participated as trainers, as well, showing that Jornata's culture is really being assimilated, not purged.  (The merger is a solid marriage, rather than simple annexing of resources, both sides bring common values but distinct strength to the partnership). 

At the end of the training, we were asked to come up with one word to reflect what we'd learned over the course of it.  Just one...  on a moment's notice.  Responses were things like "Integrity", "Consistency", "Connection", "Inspiration", "Committed", "Legit" and a few other words of similarly positive connotation.

I had the advantage of being among the last in line to respond, so I considered each of them as they were spoken.   In my head, I responded to each word as it was spoken.  "Yes", "True", "Good one"... those all fit.  "What says all of that?", I thought.  Digging deep, I could only think of one word that conveyed all those qualities... everything we learned.  there's only one word that says it all, and I didn't say it to play Captain Obvious...  "BlueMetal"  

Ok...  the cool-aid is either totally Stepford, or totally legit.

Given my experience with BlueMetal teammates in both the SharePoint AND Windows Phone Dev communities, before I ever had the opportunity to join... it's not Stepford.

That said, I think the expected answer was "Mahan", as in Mahan Khalsa, author of "Helping Clients Succeed" which plays an over-arching theme across the company.  Someone may have even said that, but I didn't catch it. I still like my original answer.

This past spring I joined Jornata, mostly to shake up my career.  Jornata was/is a fantastic team to be a part of in its own right.  My prior experience with them in the SharePoint community was also first rate. 

I might have pursued a job at BlueMetal years ago on my own were it not for the daunting commute.

The winds of change clearly had more in store.

Now, I find myself thinking that BlueMetal really looks like the company I always had in mind to work for when I was teaching myself programming as a kid.. and I mean everything..  from its respected thought leaders to its community involvement to its extremely purposeful corporate structure...  being employee-owned...  I realize this team is top to bottom, front to back, enterprise ready, industrial strength, yet premium consumer quality... and they have my back. It will be my honor to have this team's back.

I'm very much looking forward to settling into the new team, and really looking forward to digging in on a nice juicy app development project.  Duty to the customer has pulled me quite a bit toward infrastructure build outs... Being successful at those things has had the curse of being asked to do more of it. The further away from C# I get, the further I am from my true passion & real value add, and that doesn't really cut it for me or my team, longer term.

so...  the commute sucks... but if that's all I can think of to "complain" about...  I guess that's what it takes to be "The Granite State Hacker", for keeps.  (I'll secretly blame NH politicians for making it so hard to find a sufficiently legit tech offices in NH, and work at home every chance I get.)

This marks a new chapter for my career, without a doubt, and I'm sure I'll be inspired to blog deeper than what had become all too common Microsoft cheerleading posts.  (Now I can be a BlueMetal cheerleader, too!   ok...  I'll try to refrain from geeking out about my team too much.) 

Thursday, October 9, 2014

Granite State 2014 Q4 Events - SharePoint Saturday New Hampshire, and the Users Groups

SharePoint Saturday New Hampshire 2014
Better late than never.   SharePoint Saturday New Hampshire 2014 is happening just over a week from now at the Radisson Nashua Hotel in Nashua, NH on October 18th.   (We traditionally have held this event in mid September, so we're essentially a month late.)

The SharePoint Saturday New Hampshire theme for 2014 is

"Cloud First" means SharePoint developments don't wait for major releases.

It's very true, with developments implemented in SharePoint Online, including Delve and social graphing, there's lots to talk about.  Incremental changes they may be, but increments happen at a more rapid pace than they did in the Pre-SharePoint Online world, and of course that has implications for SharePoint on-prem, on premise.

http://www.spsevents.org/city/nh/2014


Granite State NH SharePoint Users Group
Regarding the NH SharePoint Users Group, our schedule remains on the 1st Thursday of the month thru the end of the year with the December meeting being held at the Microsoft Store in Salem.  Our speakers and topics remain to be determined.

#NHWPUG is dead.... long live #NHWPAD!
The Granite State Windows Phone Users Group is in the midst of some bit of reorganization.   We had long discussed the idea of broadening the focus of the group to include Universal platform app development, and the topic got some hot debate when 8.1 was announced.   With the announcement of Windows Threshold as the unified version of Windows that will run on all hardware form factors (pc's, laptops, tablets, phones, and even Xbox consoles) it's become clear that we need to redefine our group and refocus it.  

With this post, I'll announce that the group will be called the "Granite State (NH) Windows Platform Application Developers".  I'll begin re-branding the existing LinkedIn, Facebook, Eventbrite and Meetup sites, and the community app.  We'll continue to support Windows Phone 8 app developers, but our focus will move to supporting community evangelism of developers in the Windows App Store space. 

I want to thank the my new teammates at BlueMetal for putting up with my agonizing over this change somewhat openly within the team's internal discussion, and for their support.   I'm not worthy, but I can't help but think it's a huge win for the Granite State SPUG and WPAD groups, and the greater New England technology community.

Our next meeting will be in November, but we'll get that announced soon.

Regarding the SPSNH schedule change.... To make a long story short SharePoint Conference 2014 pushed off SharePoint TechCon SF, which then push SPTechCon Boston right into SharePoint Saturday New Hampshire's traditional 3rd Saturday of September space.  Our choices were to have SPSNH before or after SPTechCon, and going after seemed reasonable.

Sunday, September 21, 2014

Candy Crush Saga Would Fail on Windows Phone

Several sites including pocketgamer.fr and WMPowerUser are reporting that King has decided to not bring it's popular Candy Crush Saga game to the Windows Phone ecosystem.  (It's "on hold indefinitely".)  I suspect Disney and Mojang have much more to do with this than Windows Phone's market share.

Most sites reporting King's changed stance cite poor growth of the Windows Phone ecosystem as the reason for putting Candy Crush for Windows Phone on hold.  I don't believe them.

The news, of late, ironically, has been loudly about two things.  1)  after a lull while Nokia was absorbed by Microsoft, Windows Phone has significantly improved its market share in the past quarter or so.  2)  Microsoft bought Mojang.

The more likely reason:  (and I would love for King to prove me wrong, but...) I'm reasonably certain that if King released Candy Crush Saga for Windows Phone right now, it would fail... and I bet they know that.

I speculate that King has been holding their Candy Crush Saga app hostage from the Windows Phone ecosystem for some time, possibly hoping Microsoft would buy King in... a Mojang/Minecraft-like multi-billion dollar play. 

Clearly, Microsoft buying Mojang was a smart choice, since Minecraft has almost become a gaming platform of its own. There is a Minecraft community and ecosystem with many vendors producing products and supporting it for their own continued success.  I suspect that for those vendors, Microsoft buying Mojang will multiply Minecraft's ecosystem success;  the ecosystem will be more broadly and more consistently available to more players.

King, on the other hand, is a one-hit wonder who's core titles are fading as all titles do.

Candy Crush Saga's fading brand isn't the reason the title would fail on Windows Phone, however.  

The reason Candy Crush Saga would fail on Windows Phone is because Windows Phone has developed its own ecosystem, and King's niche in that ecosystem has been filled by an even bigger fish...  namely Disney. 

Yes, Candy Crush Saga would have to compete with the likes of titles such as Frozen Free Fall and Maleficent Free Fall, which are both magnificent implementations of switch/match games that even I have burned some measurable amounts of time and real cash in.

To me, the message is clear.  King has made its bed. How embarrassing would it be for King to release it's flagship titles to Windows Phone only to be shrugged off by the Windows Phone app market for the effort?  Especially after trying to leverage its brand to strong-arm Windows Phone.  Frankly, a failure like that could put King's position in the iPhone and Android ecosystems at risk... which would bring potential value down in the eyes of, say, Apple or Google.

I suspect there are other app publishers facing similar choices.  Perhaps they have likewise made their beds. I believe the Windows Unified platform is the platform that successful iPhone and Android publishers can't afford to fail on.  Such publishers have two choices 1) get in before a competitor fills their niche, (and succeed), or 2) watch and miss out while realizing in ever more clear hindsight over next decade that Windows Unified was the opportunity they wish they hadn't written off.

Thursday, September 11, 2014

Trading iPhone for Windows Phone - What You Give Up

As Jornata continues to integrate with BlueMetal, lots of things internally are coming together.  One of the things I'm loving is the internal dialog with the team that I'm now a part of at BlueMetal.  Our "geek chat" messaging reminds me of the best dialogs I'd been a part of at other companies, except amped. This isn't coming from just any technology architect. These folks are well-known technology thought leaders, evangelists, and MVP's. With sincere respect, I'll try to avoid getting myself in trouble with them and BlueMetal, but I'm feeling a bit like a kid in a candy store.

Being the C#/mobile (and therefore Windows Phone) junkie that I am, I always watch what's going on in the space. 

While the Windows Phone market share at BlueMetal is significantly higher than the general population, BlueMetal's not just some extension of Microsoft.  There's a lot of the team internally that are Apple and Android fans.   Naturally, when the news of Apple Watch broke, the conversation really picked up, and it was all fantastic stuff to consider.

One bit that came up that I wanted to write this post about, however, was a number of misconceptions that Apple fans had about Apple vs. "not Apple" in the smartphone area.  I can't resist. There are good reasons to not consider Windows Phone, but some are just misunderstandings.

Here was a viewpoint:
-------------
The things I would be giving up by switching [from iPhone] to Android or Windows Phone:
  1. iMessage 
  2. Photostream
  3. Find My iPhone
  4. My apps - the ones which I’ve already bought and the free ones which all work so well.  Windows phone doesn’t have the volume of Apps and Android doesn’t have the stability and polish
  5. iCloud backup
  6. iTunes - songs  I purchase are automatically downloaded to other iPhones and Macs
  7. Apple Watch
-------------
 
The response was quick and, interestingly slanted in defense of Windows Phone... here's a synopsis, including my own viewpoint:
  1. iMessage is platform specific, locking out non Apple users.   Consider Skype, Lync, or even Facebook Messenger instead.
  2. Photostream - Windows Phone has this functionality built into the OS, uploading photos to OneDrive.  (and OneDrive has working multi-factor authentication, so you won't have to worry so much about selfies unexpectedly going viral.
  3. Find my Phone - yes, built into the Windows Phone OS... just a check box, and yes, it's saved several of my family members more than once.
  4. Apps -  I have to admit, there's no recovery for the investment made on iPhone/iPad apps, but there is this saving grace...  with Windows Unified apps, the app purchases you make on phone apps often entitle you to the same app for tablet and PC as well.   The marketplace is improving daily, so the general marketplace app gap is narrowing.  The Windows Phone app marketplace has better technical governance than Android's, but not as mature as Apple's, yet.
  5. iCloud backup - Windows Phone has OneDrive backups with much easier access to the content.
  6. iTunes - consider Xbox Music. With a low priced subscription, you can stream music to your phone, PC, tablet, and Xbox, and if you purchase or rip music, it makes it available thru the cloud to ask your devices... No need to sync your phone with a PC. Content just shows up.
  7.  Apple Watch?   Hard to say on this one... but I consciously traded my watch for a good smartphone long before iPhone came out.
Still others piped up and noted how well integrated Windows 8 & Windows Phone 8 (and I would add Xbox)...  All of them work independently, but put them together, and you have a ton of really great ways to do things like manage your home network, participate in entertainment, and even keep your kids safe while browsing the 'net.
 
In my opinion, Apple serves a few purposes...  they change folks' minds about what technology is socially acceptable.  The industry needs them for their competition and for their tech fashion sense.
 
It seems clear to me that the net result is that by trading in an iPhone for Windows Phone, you give up some investment in Apple, but you gain quite a bit of functionality and security for doing so, especially if you're also a Windows and/or Xbox user already.

Wednesday, August 27, 2014

#RandomAppOfKindness #PayItForward #WPDev Challenge

Yesterday, I happened to be at the Panera Bread café down the road with my family.  We took a table next to a sign that boasted an iPhone / iPad app for the company.   Out of curiosity, I checked to see if there was a Windows Phone app...  the search in the app store turned up four apps, none of which had much to do with Panera Bread.  

On a hunch, I redirected my phone's web browser to appstudio.windowsphone.com, and drafted a new project... a wrapper for Panera's mobile site.   In minutes, I had used my phone to generate and sideload a brand new app.  I realized I could publish the app with only a few tweaks, and from the time I sat down to eat to the time this new Panera Bread app was certified & available for download only about two hours had passed.

I've decided to issue a challenge to the Granite State (NH) Windows Phone Users Group (and anyone else who wants to join in) to a "Pay it forward" style friendly 'competition'.  

Whenever you see an app marketed for platforms other than Windows Phone, see if you can't whip up a respectful/respectable presentation of an app that provides some approximation of the functionality advertised... for the Windows Phone platform... and publish it as a free app with no advertising or in-app purchases.  It should be a "gift" of sorts in honor of the subject.

Then feel free to let the folks who might be interested that they are subject to our #RandomAppOfKindness pay-it-forward activity. 

If the subject of your app complains of copyright issues, you may be required by copyright holders to remove the app...  and you should comply.  After all, this app was created and published out of good will.

Here's my first #RandomAppOfKindness...
http://www.windowsphone.com/en-us/store/app/panera-bread/2b1e2cd1-a440-4657-910d-a0eec15ecc5e

I'd love to turn this into a real competition... Perhaps in the future we'll discuss crating a list of #RandomAppOfKindness apps and set a finish date to see who's published the most qualified apps... but I don't have a budget for that (as of yet)  :)

Have fun!

Addendum:
Three new #RandomAppOfKindness entries since the Panera Bread app: