Would the last user of Windows Mobile please turn out the lights? (3/3)

Where am I? Read about how I got here.

Here I am in someone else’s platform. I need to migrate over to Android from Windows Mobile but retain the Microsoft ecosystem that has served me so well. Windows Central recently wrote their own piece on what is fast becoming a frequent task, but that was for switching to iPhone. This is my version, for Android.

Install the Microsoft apps

Microsoft have been busy building for everyone else’s platform whilst their own platform burned. Often, these apps were even better than the Windows Mobile equivalent. Nice. Kick your users whilst they’re down.

There are a tonne of apps available for Microsoft users, and I’ve focused on Office 365 and some consumer apps:

  • Microsoft Outlook
  • Microsoft Word
  • Microsoft Excel
  • Microsoft PowerPoint
  • Office Lens
  • Microsoft OneDrive
  • Skype
  • Groove (though it can’t read music on your SD card!)
  • XBox

I also included the MSN News apps, but quickly realised that without Live Tiles, I don’t have the same pull in to the app.

There’s actually an app “Microsoft Applications” which lists all Microsoft’s applications that can be installed. Well worth a look.

Reacquaint myself with Cortana

A feature I always used on my Lumias was Cortana. She was awesome. Excellent speech recognition, fast, clutter free and integrated in my ecosystem. Android has a Cortana app (one of my red lines) so I was hoping we could reacquaint with each other fairly fast.

Alas, she’s just not the same. She hasn’t got the same over-lock-screen access, she’s a little less available to my fingers and she doesn’t talk to me anymore. (I miss her “Wa-wa-waa”)

Sharing to other apps

Other than that, she’s been fine with everything I’ve thrown at her. She also notifies me on my Windows 10 desktop, as she used to with my Lumia 950 XL. I am counting on Cortana filling that gap between my phone and my ecosystem. She does still let me send text messages from my Windows 10 desktop, but the first message will likely fail because she needs permission.

How it’s working out …

  • I am really liking the Share contract that lets me select Share from any app and select which app should receive the Share. (Another feature killed from Windows Phone).
  • My weekly shopping trip using OneNote as a live-synced Shopping List still works. With the Recent Notes Home Screen widget, it’s actually easier. But the syncing isn’t as slick as Windows Mobile. There is no feedback to the user to indicate that a sync is in progress or that a sync has finished and what the changes are.
  • Microsoft Outlook doesn’t seem to be able to manage my Contacts, which is disappointing considering my primary repository is my Microsoft Account.
  • I’m really liking the keyboard. Much of this blog was written on a physical mobile phone keyboard. Finally, I have freedom from my desktop to perform equivalent actions. No need for Continuum, either.
  • Android Pay is awesome. I don’t think I’ll every use my card again. It’s so slick you actually doubt that the payment has worked and walking off feels far too like being a thief. Microsoft have Microsoft Wallet, but of course (with many things Microsoft), it’s only available in the US.

 


Ironically, Microsoft have gone to the effort of writing an app, “Switch to Windows Phone“. Perhaps they would have been better creating an app, “Switch from Windows Phone” to try and match what users loved from their own platform but with some degree of confidence in the longevity of the platform.

 

Would the last user of Windows Mobile please turn out the lights? (1/3)

Nokia Lumias 920, 930, 950 XLOk, I’ve finally given up the good fight. I tried, I evangelised, I contributed development effort, I bought 5 phones; but one man on an island cannot save Microsoft’s total lack of effort or enthusiasm for their own mobile strategy. I was an island on an island.

I’ve endured mockery, lack of support from broadcasters, companies and governments, absence of interest in support from peripherals (try to find a pair of headphones that has inline controls that work on a Microsoft Mobile phone); now even my partner has left (not me, the platform).

What went wrong?

App -gap. I’m not a fan of “apps”. They’re expensive to develop, inconsistent to use and difficult to support. Until the industry realises that the world’s best and most compatible app has always been available (it’s called a well written site on the internet), we’re stuck with native apps and companies who develop on one should develop on them all – or leave a percentage of customers (Windows Mobile) in the cold. Unless your app has good reason to be native, such as games or requiring access to hardware, all you’re doing is replicating what your mobile site is probably already doing – but worse. As app developers came and went, the reason to stay reduced. It was SmartThings what done it, in the end.

Windows 10. Windows 10 was an abomination when it first landed on our computers. Every aspect of its launch was a botch. Overly aggressive deployments of an operating system that was clearly not ready for market do nothing to help users. The idea is a grand one, and one which is appreciated, but some things must remain stable and reliable. Windows 10 is essentially always in beta. It’s much better now (though still wide of the mark of what Windows 7/8.1 was), but that first public version was Vista-in-miniature. The effect on hardware that demands performance and reliability, mobile phones, was even more acute. Older phones were left out in the cold, effectively abandoned; battery life suffered and apps were downright buggy. Yet, the Universal Windows Platform is awesome and very exciting for developers – but why are people like SmartThings not even bothering despite its benefits and ease of development? It’s a vacuum into which Google will fit with its Chromebooks.

Microsoft. I’ve often said there can be no greater curse on a Microsoft product than Microsoft itself (Silverlight, Windows Media Centre). They create awesome platforms and applications which identify key user requirements, yet successfully damage and burn their own products. Windows Phone launched in an aggressive marketplace and had to stand out, and it did. Not always in a positive way, but that would be improved, it brought a unique experience to the market: Live tiles, deep social media integration, Groups, Rooms, Kids Corner, Apps Corner, the list goes on. As the platform struggled, instead of doubling down and making a big deal of these unique selling points, each of these was strategically extinguished. Now, what used to be a unique platform with limited uptake has become yet-another-hamburger-menu platform with an even more limited uptake.

Nadella. Since Satya Nadella took over Microsoft, there has been a fundamental shift in Microsoft’s strategy, and one which is both welcome and exciting. Open-sourcing of Microsoft code with contribution from the community, free development products and cross-platform support of key Microsoft assets such as Office, SQL Server and Visual Studio have all been welcomed by the industry, even by the haters. But it is unfathomable when the apps developed for Android and iOS are better and updated more frequently than on their own platform. They are subscribing to the very same logic that has cursed the Windows Store: there’s not enough people to warrant the development effort.

Of the 10 people I know who have used Windows Phone/Mobile, only one remains with the platform, and I don’t suspect that is down to choice alone.

And now, I’ve left too. I held out, through the Nokia purchase (Nokia phones were always awesome, even before they were involved in Windows Phone), through the marked decline in product quality as Microsoft took hold of the Lumia line and into the “nothing to share” phase; waiting, always waiting for that distant Surface Phone to be realised into an actual product. But why? They want to redefine the Mobile platform, but when and how? All we have to look at is a patent filing. I’m not interested in a foldable phone, or a phone that is a hologram or anything else. I want a phone that works. If a Surface Phone was released tomorrow (or more likely, at this year’s MWC), there would still be a lack of support for it. It’s already dead.

So, I have chosen

Ned Maddrell lecture 2016: Bringing up a child through a minority language

The Ned Maddrell lecture this year was as high a calibre as any previous and just as thought provoking. The subject this year was particularly close to my heart, based on the research of Dr Cassie Smith-Christmas titled “The Affective Landscape of Intergenerational Language Transmission: A Case Study of a Scottish Gaelic-Speaking Family”. (You know it’s going to be a good research project when you see the word “affective” in the title.)

The talk was principally about how a minority language such as Gaidhlig could be used within the family to support the language passing on to future generations through the children in the family starting to learn and use the language. The subject is close to my heart, I’m planning on sending my own son to the Manx-Gaelic immersive-learning school, Bunscoill Ghaelgagh.

Dr. Smith-Christmas stayed with a Gaidhlig-speaking family and was able to record conversations which on the surface appear to be mundane but revealed how children adopt a minority language, even though it isn’t natural or easy. There were a number of takeaways from the lecture I can share.

  • Don’t let the use of the minority language become associated with authority. These can be quite easy situations to avoid. If there are authority figures in the home speaking in the minority language or if the only uses of the language become disciplinary.
  • “Recast” (a word Dr. Smith-Christian used I quite liked) the child’s words or sentences in the minority language, without judgement. Dr. Smith-Christian illustrated this with a transcript of her subject child using the Gaidhlig word “clach” for rock instead of English within an otherwise English sentence. I find this works well, particularly with nouns (for myself being able to be fast enough to recast, rather than expecting a response in the minority language.)
  • Going hand in hand with avoiding relating the use of the minority language in disciplinary or authoritarian modes, maintaining an association with the language being fun is important. Dr. Smith-Christian showed us another delightful exchange within her subject family where the child counted in Gaidhlig, again within an otherwise English sentence. I’ve found my son also loves to count things and it’s a great way to keep things fun. Meanwhile they can be learning advanced concepts such as mutations, plurals and pronunciation.
  • Children’s use of the minority language, even when a community is lucky enough to have an immersive teaching environment, is often limited to school and to authority figures such as teachers. When children socialise, they tend to use  a more liquid language such as English which is widely understandable and readily accepted across groups of friends. Therefore, reinforcement of the language outside of school is needed to help blur the lines of where the language can be heard or used. After-school clubs with similar social groups are an ideal opportunity for this.

The opportunity to learn this language transmission, both as a student of Manx-Gaelic and as a parent, was invaluable particularly as there are scant resources on the internet to help answer some of the inevitable questions that pepper a parent’s role.

The Lecture

Q&A afterwards

Post-Lecture Interview

Smart things

I’ve had my suspicions about home automation and IoT (“Internet of Things”), where your lights become internet connected (requiring firmware updates), your house becomes even more connected with the inevitable security risks that this brings. Where your family and home have to become accustomed to whatever system you have in place, possibly modifying their routines to fit the technology. My DIY skills are limited, my time even more so. I have what is becoming a niche smartphone and no appetite for fiddling to get things to work. It had to be cheap and – most importantly – it had to have SAS. SAS (“Spouse Acceptance Factor“) was fundamental. Automation invites suspicion from your family, who will be subject to its sensors which suggests a creepiness I didn’t want to have to defend.

SmartThings logoSamsung’s SmartThings has emerged as the best system for my family. It is relatively cheap, is an open system permitting integrations outside the SmartThings immediate ecosystem and has integrated itself into our home seamlessly. SmartThings isn’t restricted to the USA, as other tech. companies tend to. Whilst UK availability is limited, it is there via Currys/PC World and direct from Samsung. As a user, you add Smart Apps to your SmartThings ecosystem which join your “things” together to add useful functionality. Typical examples are turning lights off when there is no motion, raising an alarm when there is unexpected movements, etc.

I’ve set up a few neat automations, such as detecting when the freezer has been left open for a suspiciously long period (hopefully avoiding replacing another freezer-full of food) and turning outside lights on. As with anything IoT, one has to be careful about security so I’m not going to identify my specific configuration so patterns can’t be identified which may actually add risk.

Whilst SmartThings has a distinct ecosystem of branded sensors which include presence sensors, motion sensors, door opening/closing, moisture and power consumption/switching, a purchase win for me was the open nature of its interactions with similar IoT products such as Philips Hue (an otherwise expensive and rather pointless lighting toy) and ZigBee or Z-Wave IoT components such as light switches, thermostats, panic buttons, … the list goes on. This is not just an investment in what is an interesting idea from a single company, it can be extended should Samsung’s support of the system waiver. IoT is too new to go “all-in” on a company on the off-chance, I need reassurance that the product will remain supported and if there is interaction/integration with other components, even better.

Cost-wise, SmartThings is bearable. £200 for a starter system and an average of £30 per extra sensor is fairly reasonable, I’ve bought a few extra bits to extend the reach of my automations. It requires no rewiring, no fixings, no expertise. The consumer is able to pick a pack off the shelf and get started. But will it save money in the long run? It is possible to set up orchestrations that turn lights off when no-one is around (a bug-bear of mine), alert when power consumption is too high or when the freezer door is left open. Integrating with lighting requires expensive bulbs at least, or integration with the expensive Philips Hue system. As with purchasing LED lights throughout the house, are you really going to make the money back through savings? When do you stop buying sensors? The starter pack is almost the gateway drug, offering you the basic tools needed to introduce new ideas of automations – and cost.

Despite being one of the promoted benefits of SmartThings and the possibilities of IoT, I don’t think it’s reliable as a security system – certainly where security is a fundamental aspect of the purchase. I love that you can set it to silently and intelligently arm to differing levels of security based on whether you’re likely to have gone out, or retired for the evening. Even better that it automatically disarms itself if “things start to happen” in the morning, or you return home. We have never had to manually set this and mostly haven’t bumped against this intelligent arming/disarming. Unfortunately, the automatic disarming when you return is based on whether it detects your presence sensor or mobile phones before you “break” the security sensors. If you’re too quick and open the door before your phone logs in or it detects your key-fob, it sets off an intrusion condition.

As a Windows Phone user, and a happy one, (well, until Windows 10 Mobile) any smart-home system needed to support my ecosystem. All too often, devices and developers based themselves around so-called apps on either iOS or Android. The presence of SmartThings on Windows Phone was the clincher. Yes, it was expected that the app wouldn’t be as well rounded as its iOS or Android equivalent and it has mixed reviews, but it is fully functional. I do worry about a system that is fundamentally oriented around mobile phone apps and not offering an alternative interface from the hub itself, but the app has mostly performed brilliantly. Where the gap between big-screen accessibility and lack of app accessibility opens up, a labs tool called SmartTiles adequately fills this gap.

I say “mostly performed” because there was a short period where the app on Windows Phone stopped displaying my “things”. The system itself continued to work, executing my routines and reacting to conditions, but I couldn’t have a look at my “things”, I just got a blank screen. So not terminal, but annoying. I did contact the UK support team and I was very impressed with their response. It was both prompt, helpful and supportive. I was dreading the “we’re working on it” stock response, but received a personal response that was reassuring that despite the smaller app-market, I (along with the others affected) as a Windows Phone user was important. The app was fixed – and actually improved – soon after.

Another attraction to the SmartThings platform was its accessibility for developers to play around with their “things”. As a developer, you use a web-based IDE, editing a small script written in Groovy, atop the JVM. Very little knowledge is required, other than the usual coding techniques such as events, asynchronous patterns and reminding yourself that you might not be in the state you expect to be in. The “things” expose an abstracted API that is a breeze to work against. The SmartThings hub and cloud effectively marshal the messaging and hosting of your app, transparently executing code in the cloud or the hub as it sees fit. I have my first app in private testing already.

IoT and home automation, in my eyes, remains a gimmick. It is still immature, with limited integration across vendors’ products. We’ve still to learn how an increasingly connected home remains secure, both digitally and physically. It’s expensive in financial terms and is fundamentally dependent on Spouse-Acceptance-Factor. If your spouse doesn’t agree to having a key fob or the “app” on her phone (which has to be “Smart” and not a BlackBerry), then the system breaks down quickly. Within these negatives, SmartThings has pitched itself well. It is relatively cheap, has low-impact on the family and widely supported across smartphones and the ecosystem of IoT devices. I’ve had automations running for over a month and they were extremely easy to install, configure and have required no interaction. Disappointingly so, if you like playing and tweaking!  Like Windows Phone did, “it just works”. This is a system I would recommend a non-IT pro user to install.

 

 

 

Search the Bible and Taggloo Library

Taggloo has previously been updated to include results from selected books held in the Taggloo Library in translation results. Whilst this was useful, Taggloo now goes a step further in search.

Book search

You can now search a Book within the Taggloo Library using the search-form at the top-right of each page. This allows you to discover words and phrases without going via the route of Translation.

A subtle improvement that has already been made available is the highlighting of search results in the text, so when searching for “thie”:

Highlighted search result

Underneath, Taggloo fully supports any number of books and articles which will hopefully be made available soon. If you have any content that you wish to be published, get in touch.

Alas, the translation and searching is slower than I’d hope. This is being worked upon to strike a balance between performance and affordability. Hopefully there’ll be some modest improvements soon!

Translate and search the Taggloo Library (and The Manx Gaelic Bible)

There is a wealth of Manx Gaelic literature available for access both on paper and on the web. Taggloo launched a Library service last year, with what is possibly the best starting point for any library, The Bible. The Bible is a time capsule, showing us how the language was used when it was the primary language of the island – even before people started to use their own language in a written form themselves.

Using the Library function, it’s a short jump to providing the ability to search and translate the Taggloo corpus. You can enter a word or phrase for translation as you usually would and receive the results. If you’re interested in a deeper translation and understanding of the word or phrase in literature such as The Bible, you can Extend your search by selecting the book(s) you want to search and clicking the Search button.

Taggloo Library Translation and search

The translation and search has been deliberately broken into two steps, which was a carefully considered pattern to balance convenience with performance. Searching an entire book (or set of books) can be taxing on the indexes so results from books are held back unless you need them.

Once you’ve performed your search, you can expand the results as you would translations by word or retrieve the entire set of results.

Ayns y toshiaght

Below each result will be the translation (if available) and the book, allowing you to click to jump to that point in the text.

The Library function can support many texts with differing levels of translation. The next step in the Taggloo story is to provide the tools to allow additional texts to be added into the Taggloo Library, providing even greater insight into the words and translations of Manx Gaelic.

Pass the fork

Teams often work on shared code, shared resources and in shared time. We have ways of managing this, such as source control, one of the first requirements for software development maturity (falling within Levels 2 to 3 of the CMM for Software). However, not everything is easily integrated into such a process.

Developing on the example of source control, source control presents challenges that the mature team will be able to identify and overcome through the use of best practices or their own devised and agreed processes. Shared assets such as legacy systems, premium-licensed resources or even databases often exist outside of source control leaving the team requiring confidence that one developer’s work on that shared asset won’t affect others.

Meet the fork.

The DB Token of Power ("The Fork")

With the fork, a team member can wield power of access to a contended or non-source controlled asset such as database schema changes, SharePoint server configuration, leverage of a single-user licence service or other lock-required activity. The fork acts as a physical action and visual cue in the physical world, representing the reality within the virtual or abstracted world of source code, databases and servers. As a team member reaches for the fork, their wishes are explicit (“I have the fork”) and may be “blocked” by any other team member (“Oi, hang on, I need to do something first”). Without the fork, no changes may be made – or would be expected to have been made by the rest of the team.

Use of a token in this manner is predicated on the collaborative capabilities of the team, perhaps requiring that the team are co-located, small and cohesive. Such team environments aren’t always possible or available. Teams that are not co-located, are perhaps too large (spanning more than one pod of desks) or lack a cohesiveness that is conducive to casual conversation would inhibit the use of such a token; though in this case, one must answer much larger questions about why are these people working on contended assets?

There are alternatives. Use of a shared chat channel for the team such as Slack with an agreed protocol (even descending to the “claim” protocol introduced in The Walking Dead TV Show) would overcome the overly-large, distributed and communication-inhibited team; though this would require a level of buy-in or enforcement by a commonly accepted leader.

We’ve used the fork to great effect. Merging of sensitive assets such as Entity Framework .edmx files (this project has not yet made it to Code-first) can result in a whole world of pain if two developers tackle two work items that are either contradictory or contended. It’s simple and promotes added cohesiveness within the team. Our token was chosen based on what was sitting in one of our drawers and this remains a shared experience within the team and contributes to our mutual social credit.

Of course, you don’t need to use a fork, any token will do, so long as the understanding across the team is consistent and mutual. Such tokens have been in use for years. Ever since the 19th century, and remaining in use even amidst today’s modern computer-controlled signalling, railways have used the token to guarantee safe access to controlled sections of track to prevent collisions.

 

 

 

Source control your relationship

pipe-cleaner-people-1177056-640x480An interesting parallel was drawn by a colleague recently between relationships with your significant other and source control. Both need total engagement by all parties and both can quickly unravel when a lack of commitment or adherence to the agreed guidance and conventions isn’t all it could be.

There is the sitcom-esque “commitment issues” whereby either party is afraid to really commit to a relationship either monogamously or sealing the deal through marriage. Programmers who exhibit a tendency to hold on to their code, avoiding regular commits, store up problems both for themselves and their team.

Maybe your other half feels that she has been put on the shelf, forgotten about and fleetingly appearing in your life as you pass by over dinner or scanning the repo. And you better make sure you get your [file]names right first time if you want to avoid a rapid appearance of irreconcilable problems.

Source control remembers everything you did, all your commits, experiments (branches) and log comments (not as private as one might like). “She” is equally able to remember all your mistakes with unnerving accuracy. Your branches (experimental flings) are on your permanent record, as are your seemingly innocuous comments logged (“I’m fine”). When differences approach the irreconcilable, you start reaching for the Patches.

Any experiments you may have on your branches/flings, are always a time of nervousness to merge back into the trunk/relationship and can rarely be fully re-integrated. Conflicts and lost assets are inevitable. “She” prefers exclusive checkouts, you might prefer a more … distributed approach.

Perhaps where the metaphor starts to fail is the real-world relationship’s difficulty of reverting commits. A programmer can quickly back out of some embarrassing moments in code with a right-click, returning silently to the state of their source and team relationship as if nothing happened. On the other hand, “she” remembers all your mistakes and your attempts to repair them.

By the way, to save embarrassment, this tongue-in-cheek parallel is drawn with no reference to any relationships past or present, real or imaginary. So, no need to perform any Diffs here.

 

Introducing Agile to the corporate dark matter development team

Photograph of team with joining handsThe challenges of the Agile team within the traditionally-managed and hierarchically structured organization are discussed extensively in research. Artefacts of the burgeoning, hierarchical organisation such as company policy (“we don’t do it that way here”), imposition of arbitrary and incompatible standards, command-control management and poor project manager integration all contribute to inhibiting Agile operationalisation (1, 2, 3).

Alongside this research, I have come across some of these challenges, along with a few others surrounding the personal nature of the team. As a new member of a team, and having been indoctrinated by a fine Scrum trainer, it would be easy for me to lose friends and disenfranchise people had I preached to my new team about how they were doing it wrong and how Scrum would fix all.

But this is not about rehashing problems. Instead, I’ve compiled some lessons which may help others.

In introducing these, I could conclude right now with … Take it slowly

Understand why the team do what they do

It would be ignorant and offensive to assume that archaic processes continued to be followed due to lack of awareness or skill. There is likely to be a valid reason for filling out release forms, why users don’t get engaged or solutions are dictated before the problem is understood. Taking some time to observe and understand through casual discussion is ideal for encouraging titbits of information to be revealed which could explain the history of internal practices and procedures. Perhaps the reason is long forgotten or no longer relevant. Judgement should be withheld, lest you be judged yourself.

Prepare your tools

Creating a new process is made much easier if there are tools surrounding the process that allow the team to fall into the pit of success. I’ve used JIRA in these situations, which has been a first step in formalising tasks from which a backlog may be created. As requirements come in, the task of distilling tasks into User Stories (using the spirit of the terminology if not the definition) and then sharing them out to the team without the dogma of story points, retrospectives or stand-ups has allowed a degree of task ownership and collaboration to emerge over the medium of the tool. JIRA has an API, so if the wider organisation insist on their legacy tool to be used, it can be integrated within a wider process.

Embrace, Extend …

Stopping short of the entire terminology reputedly used internally by Microsoft, I’ve found that it is the team that determines the success of Agile, not the method. Therefore, I’ve embraced the Agile dogma such as Scrum, and extended it – or rather – evolved it, according to the personal nature of the team. During forming, storming and norming, personalities within the team are explored within a professional context, allowing me to learn a lot about the individuals and their motivations. Attempting to mandate process according to Scrum-doctrine will only serve to extinguish Agile all the more quickly and perhaps professional relationships within the team.

Know the assumptions of your method

Methods such as Scrum make sweeping generalisations across industries and fail to state their assumptions. Outside of the software development company, multi-project developers who have to balance ongoing support requirements are widespread. Scrum, and the admittedly useful and revealing metrics that fall out of it, assume that 100% of the time of developers is spent on the code. It’s all about the Story Points, NUTs or even breeds of dog (“that will be 2 Labradors and a German Shephard”) but this does not take into account time spent outside of the project. At any given moment, the **** could hit the fan robbing the project of velocity which would be unaccounted for in the retrospective reports. Equally, how well does Scrum work within a portfolio? Models like SAFe claim to allow multiple projects managed using Scrum-like techniques, but this is not necessarily the same contended resources.

 

The key to the success that I’ve seen with this is to introduce Agile principles gently. No great switch was needed from which all projects would be Agile. Each project slowly became more Agile than the last and the surrounding individuals (managers, Business Analysts, etc.) are understood first and introduced second. The Business Analyst is perhaps your greatest chance of success of implementing Agile concepts within the hierarchical organisation so they need to be brought on-board at their own pace. I’ve learned to listen and understand first, based on which, one can start to make the case using what can be highly adaptive models that are made to fit the team, not vice-versa.