Spark

Subscribe via Email

Subscribe to RSS feed

Archives

Archive for the ‘Innovations’ Category

Reconsidering Enterprise Wearables

I was talking to a colleague a number of weeks ago and the topic came up of where mobile was headed now that smartphones/tablets have become “commonplace”. The three areas that seem to get a considerable degree of focus is wearables (whose hype will be even further boosted if Apple releases the rumored iWatch on September 9th), Google Glass, and Bluetooth Low Energy (the catchier-named “iBeacon” to you iOS types). As a mobile architect, trying to keep up with all the things going on with mobile, I try to keep the deluge from being overwhelming by focusing on those mobile technologies that have enterprise applicability and that clients may come to Perficient seeking expertise. Therefore, I told my colleague that I had dismissed both Google Glass and wearables as more consumer-focused and that my focus was on the possibilities of iBeacons in the enterprise.

However, after a number of subsequent conversations with other mobile architects and articles such as “Salesforce.com sees wearables catching on with customers, partners” has caused me to rethink my position. While I am not confident in Gartner’s claim that by 2017, wearable devices will drive 50 percent of total app interactions, I moto360do believe there is a place where having access to data on your wrist (rather than digging into your pocket for your cell phone or having to have a tablet in one hand) or a headset will have advantages to various classes of enterprise users such as those who require hands-free access such as industrial (warehouse, transportation, etc.), healthcare or in the case of one enterprising firm, replacing access key cards with a wearable.

The challenge for mobile architects and enterprise IT in general is to understand how wearables could provide an advantage to the business (by actually going out and observing how warehouse workers may be using ruggedized tablets now rather than clipboards or rolling computer kiosks and how a wearable could provide an even more productive work environment) by starting to take a look at this technology. This means short R&D initiatives with minimal investments in both hardware and developer time (taking fail-fast to a new level) and developers open to new approaches in terms of screen size, data input, even further optimization of enterprise data access over what is needed for smartphones and processors/memory. In addition, after the issues that firms have had with BYOD in relation to security and mobile device management, determine if wearables create issues that smartphone access to the enterprise did not already expose. If so, better to address it now rather now in an R&D mode rather than later, when you are creating a true business application. The final issue of course is to determine which platforms will break out with many new watches (Apple iWatch, Moto 360, Samsung Gear ) being released and all of which are jockeying for position.

Microservices as a Mobile Development Enabler

A mobile application has very little function without data to work with and enterprise business mobile applications, even more so. This has given rise to the visibility of application programming interfaces or APIs within the enterprise. Businesses are using APIs to allow visibility to certain business data to business partners outside the company. This concept is nothing new, businesses have been sharing data through Electronic Data Interchange (EDI) and Value-Added Networks (VANS) since the 1980s. However, in the last two years, the spotlight has again shown on APIs as the linchpin to support mobile development.

Microservices as a Mobile Development EnablerOne facet of creating APIs to support mobile development is Microservices which are small, single-purpose, server applications and that can be composed together to form other server applications. The idea is that a microservice does one thing well and executes as a standalone application within a server container (which is one of the differentiators between microservices and their larger SOA brethren). A number of IT technologists have equated microservices with the idea of Unix shell pipeline apps in that they share characteristics such as “small”, independently deployed in their own container, may communicate with each other and are loosely-coupled. James Lewis and Martin Fowler of Thoughtworks published an excellent paper that covers Microservices 101:

In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.

You can say that the above statement could also fit SOA but Lewis/Martin call out how microservices are different enough to stand as its own architecture.

One of the reasons that microservices is a popular choice for mobile development is that each service can start out small, the developer can work both sides of the effort, creating both the mobile app and the service to support it, iterating the services to meet the needs of the mobile app and simply deploy the changed service without coordinating with other developers or the service development team.

This leads into the second trend besides mobile development that has pushed Microservices to the forefront which is the shift to DevOps and Continuous Delivery as another key enabler. The reason for this is that microservices support the need for quicker, independent development (no teams), easy rollback, developer-owned (no handoff to the service support team, it follows more of the “you built it, you support it”), and frequent releases.

Microservice allows an easy and flexible way to integrate automatic deployment with Continuous Integration tools familiar to developers such as Jenkins. That is not to say that microservices provide some type of free-lunch; once the size, number and complexity of the services move out of infancy, a number of issues need to be addressed including operational overhead, a higher level of DevOps skills and the complication of managing a large number of services, many of which perform some level of service inter-communication.

SOA has been around for quite a while and it is difficult to remember when it was the new kid on the block. For the most part, service development around REST and the JSON data interchange format has taken hold and microservices has made it easier for the mobile developer to easily and quickly build/deploy the services needed to support a mobile application.

Designing From A Fresh Perspective

As a designer, its easy to fall into patterns that conform to established models. But to truly innovate, you must bring a fresh perspective to every design challenge. I was recently reminded of the value of a fresh perspective, when my 7 year old daughter took on the challenge of making a computer for her American Girl Doll. Because we all know that any self-respecting doll, has gotta be connected.

IMG_3311

American Girl Doll Using Her Laptop

However, this was not an ordinary computer. It was a Mac, which was already enough to make me proud. But it was also customized to her doll’s very specific needs. First of all, it was purple, which is the doll’s favorite color, it was also sized perfectly so that it could fit into her purse and it even had a rear facing camera to take pictures of the other dolls while she was on “Facebook.” But what amazed me the most was the keyboard layout. Yes it included most of the typical numbers and letters that you’d find on a keyboard. However this keyboard was also personalized. It had special keys for her email address, zip code, and Facebook username “in case she got tired of typing.” This really made me realize how much I hate typing in my email address all the time, especially on mobile devices. Wouldn’t it be great if I could have a single key that take care of that for me? Yes, I know most web browsers retain email inputs to support an autofill function, however mobile browsers typically don’t support that capability as well. And in mobile interactions, that capability would have most value.

IMG_3313

Personalized Keyboard

In designing her computer, my daughter never considered the limitations that come with a standardized physical keyboard. In her mind, a computer should be customized to meet the needs of the user. And in today’s world of virtual keyboards and personalization features, there is the opportunity to make that reality. It might even change the way we think about our personal devices. So in your next project, try injecting a fresh perspective and you may be surprised with the results.

 

 

 

 

Flex that Box Model!

The CSS Flexible Box Layout Module Level 1 (or Flexbox) is a box model specification in which the children of a flex container can be laid out in any direction, and can “flex” their sizes, either growing to fill unused space or shrinking to avoid overflowing the parent.  In other words, it’s a neat way for front-end developers to layout content in a way that isn’t just “left to right, top to bottom”.

Flex that Box ModelBut I’m not here to tell you what Flexbox is, nor am I here to tell you how to use it.  At the end of this post are a few links that can cover that for you well enough.  No, what I’m here to tell you is that right now you in fact can use Flexbox.  Go ahead!  Use it!  Before vender prefixes were added, browser support for Flexbox had been sporadic and not very well adopted.  It was possible to use Flexbox on any project you wanted, but the problem was it wouldn’t work on a majority of browsers and mediums.  Now (looking at this Can I Use chart), adoption is so widespread it’s almost universal.

The only problem is (say it isn’t so!) Internet Explorer.  Trying to use the flex box model on anything earlier than IE10 just isn’t going to work.  This is the main issue, and unfortunately it’s a pretty dang big issue.

The solution? Go ahead and use Flexbox, just be sure to contain it to mobile devices (or progressive enhancements).  Most uses that I’ve had for needing to adjust the box model layout in a way that required Flexbox were design changes from desktop to mobile devices. Say you’ve got a two column layout with your main content and a right-hand sidebar.  If you wanted that sidebar information to float to the top of your page on a mobile device above the main content, you were going to have a difficult time. With Flexbox however, it’s pretty simple. And if used in conjuncture with media queries or Modernizr, keeping any usages of Flexbox limited to mobile device should be simple as well.

At the time of this posting, I’m not aware of any shims or polyfills to make Flexbox work on IE9 and earlier, so it’s not looking like widespread adoption of Flexbox in Internet Explorer will be happening anytime soon, but never say never!  And regardless of that, it is now finally a good time to start use Flexbox on mobile devices!

If you’d like to learn more about using and implementing Flexbox, here are two links from Chris Coyier of CSS-Tricks:

Invitation from Google to become a Glass Explorer

Earlier this year, Google had launched +Project Glass contest and offered a unique opportunity to experience Google Glass in-person. I entered into the contest as well and my submissions can be found here. Approximately eight thousand winners were selected and I was not one of them.

Recently, I received an email from “Glass Support” with an invitation to become a glass explorer! See email below:

Google Glass Invitation

I have not yet decided if I will join the program and purchase the Glass Developer Kit which has a price tag of $1500. Trying to figure out business value for Google Glass; from an enterprise IT perspective, I’m not sure how we can use Glass currently. In addition, I don’t think any of our largest partners are working/developing for Glass – example: IBM, Microsoft, Oracle, etc.

Since I am a technology enthusiast, I would like to get Glass for personal use anyway; it would create nice blog posts to share my experiences with especially how wearable tech is transforming user experience.

I would like to hear your opinion – Should I invest in Google Glass? Why or Why Not?

The CIO and CMO Imperative: Collaboration

Because technology is now a key tool that enables marketing, the CMO – CIO worlds have collided, requiring enhancements to collaboration not only among those two groups, but also across the organization. But what is it that has changed, and what are these new challenges that we face?

What’s changed?

  • quote_cioThe business is directing the technology budget. CIOs are no longer just managing an IT budget, but also a “business technology” budget – the costs of those technologies that support the customer, drive insights for the business about the customer (business intelligence), and more.
  • Big data is critical to competitive advantage. This is the “Age of the Customer”, which means that, according to David Cooperstein in an article for Forbes, “the strategies that matter most are those that don’t start with the channel, i.e. mobile-first or digital-first. Marketers need to put themselves in their customers’ seat and define the marketing activities they take on from a customer-first perspective.
  • Consumerization of IT has an impact. According to Andrew Reid, Founder & President, Vision Critical, “BYOD (Bring Your Own Device to work) is making enterprise IT cheaper and less relevant.”

What challenges do we face now?

  1. Clarity around responsibility is becoming an issue
  2. Changing allocation of budgets means that it’s no longer clear who, exactly, is responsible for investment in things like big data and enterprise social networks.
  3. As the technology trends and social business world change as fast as they are, business objectives are also changing rapidly, making it difficult to align objectives against common goals.
  4. CMOs and CIOs have to “get with the times.” According to Anne Park Hopkins, Client Partner in Korn Ferry’s Global Technology Markets, old school CMOs “are non-analytical, shy away from data, and focus predominantly on advertising and promotion while old school CIOs are back-office technologists who don’t engage in the broader business.” This causes conflict as the two leaders of the function fail to see the bigger picture. Read the rest of this post »

Turn Your Tablet into a Navigation System with a Mobile Day Pass

I am currently in the middle of the car buying process. The one upgrade that stops me every time is the navigation system. I love the idea of having it integrated into my car, but the $2,000 price tag that often comes with this upgrade seems utterly ridiculous given where we are with technology today.

My mobile phone maps are fantastic and they are updated on a regular basis…for free. The drawback is that the screen is small and it’s not integrated into my dash. I also don’t need wireless service on my tablet because I would only need it occasionally.

Today, AT&T announced a $5 day pass for mobile data service and a $25 prepaid plan for 1GB over three months.

Enter the mini tablet + mobile day pass navigation & entertainment device.navigation

A mini is about the size of an in-dash navigation system. When going on vacation or taking a road-trip, you will be able to pay $5 a day to use mobile on your tablet. The mini will become your navigation device. You will still need to determine a way to mount it on the dash, but I’m sure that solution is coming. Cars in the future may not even include electronic devices, but have a space for you to place your own device.

The mini navi/ent device can be used for maps for mom and dad or streaming Netflix for the kids. It’s the ultimate travel device at a very, very affordable price.

What do you think? Would you participate in the AT&T Day Pass?

Smart App vs. Stupid App

Have you ever asked yourself why my work applications can’t be more like my mobile phone apps? My Smartphone is just amazing. I asked my phone “where am I” and it pulled up a map and showed me. I didn’t have to learn a new command. It was just an intuitive question and I really did expect the phone to tell me. I start to do a web search and it figures out what I am looking for before I am finished typing. I like one piece of music and it plays other artists with similar styles.

Then I use my work applications and they just seem as dumb as a rock. I think it’s time for a wakeup call. If IT and commercial software vendors cannot improve their user’s experience expect them to bolt in droves to smarter apps. We have a generation of kids that are growing up with tablets and Smartphones. The applications we build today will be around a long time. It’s time to stop building applications without solid user experience design! This is an opportunity for real competitive advantage.

Event Processing and Predictive Analytics

II had a conversation with a product manager for a product labeled Complex Event Processing (CEP) but when I looked at the actual product implementation I asked why the product was labeled CEP versus Event Stream Processing (ESP). The product uses continuous queries and does not support Event Condition Action (ECA) rules. They responded that the use cases for CEP can be solved with ESP – i.e. they are essentially the same. Then they agreed that the product really was ESP but the distinction is lost on potential customers.

This technology is difficult enough for potential users to understand that confusing the products not helpful. The vendors also tend to talk about features versus use cases. And, when they do talk about use cases they often overlap – for example fraud detection is listed as a use case for CEP, ESP and predictive analytics.

At high level these products can accomplish the same use cases but in very different ways. Let’s look the use case of predicting product failures, a use case listed for all three products.

With predictive analytics, this use case could be solved by analyzing outages historically and predict future potential outages based on statistical models. These models can be applied against near real-time data to predict the likelihood of an outage. ESP could execute a continuous query against sensor data looking for a set of events that indicates a potential outage. CEP would similarly examine a set of events but apply rules to those events to generate a complex (or logical) event that is an outage alert. Read the rest of this post »

Google to Stop Using Webkit as Browser Rendering Engine

Yesterday Google released a statement on their Chromium blog that they are creating a new rendering engine based on Webkit called Blink. I encourage everyone to go and read the big news. This is clearly big news for web developers, as another rendering engine on the market means more browser variance to keep in mind when testing.

They say that for the time being, we won’t have to worry about any major changes.

In the short term, Blink will bring little change for web developers. The bulk of the initial work will focus on internal architectural improvements and a simplification of the codebase. For example, we anticipate that we’ll be able to remove 7 build systems and delete more than 7,000 files—comprising more than 4.5 million lines—right off the bat. Over the long term a healthier codebase leads to more stability and fewer bugs.

Adam Barth, Software Engineer

Once they do start the ball rolling in making Blink what they want it to be, it should prove to be a great step for Chrome.  The Developer FAQ on the Blink project page in Chromium sheds some light on the major questions we all undoubtedly have like will we be getting a new vendor prefix (e.g. -blink-box-shadow)? Looks like the answer is no to that, thankfully.

This news will definitely stir up the web dev community, but hopefully we’ll see that it’s a change for the better.