2012 Illinois Technology Association - CityLights Finalist


MPS Partners provides functional and technical expertise and insights into business process management trends and Microsoft technologies.

Contact Us
Interested in reviewing our current job openings or submitting a resume?
Home » Blog

Mobile First – Cloud First Simplified (3 of 3)

Mobile First – Cloud First Simplified (3 of 3)

<-Previous post for this series

The conversation about business outreach (service first) and infrastructure elasticity (cloud) does not feel complete without including…

Big Data

Every generation of technology upgrade has created a need for the next upgrade in some ways. User created content and social media initially drove the need for big data techniques. However, the drivers to this movement added up pretty quickly because what big data analysis and prediction can do for business was quickly understood.

A Quick Introduction

Big data is commonly referred to as the mining and analysis of extremely high volumes of data. The data in question is not structured since it is collected from a variety of sources. Many such sources might not be following any standard storage format or schema. The data in question is also described by its characteristics, primarily – volume, verity, velocity, variability and complexity. The techniques for analyzing this data involve algorithms that engage multiple processors and servers that distribute the data to be processed in a logical way. Map-Reduce is one of the many popular algorithms, and Hadoop is one of the popular implementations of Map-Reduce.

Big data techniques are not something that only the corporations that collect social media dust need, it is something that every business needs to look into, sooner than later. It is a separate topic that every business needs to factor in social media data in some form or the other. Even if that part is ignored, the volume of structured data is increasing by the day.

Keeping all that in mind, it should be important to explain how well big data fits into the elasticity of the cloud. Imagine an operation where data needs to be segregated by some specific parameter on different servers. These different servers might run some processing depending of the type of the data or just store that data to improve access time. A true cloud environment will be the perfect host of such an operation. You can spin up new servers, having specific configuration, with just a few lines of scripts at run time.

Where are we heading

In 2011 Google Fiber announced Kansas City to be the first to receive 1 Gigabyte per second internet speed followed by Austin, TX and Provo, UT. As per the company’s announcement in February 2014, Google fiber will be reaching to another 34 cities. AT&T stepped up by announcing that its new service, GigaPower, will provide the gigabyte internet speed to cover as many as 100 municipalities in 25 metropolitan areas. Besides Google and AT&T many other large and smaller providers are working on targeted areas to provide superfast internet speed such as – Cox, Greenlight Network, Canby Telcom, CenturyLink, Sonic.Net etc.

Considering this new scale of data on bandwidth, the way application technology works is going to change, specially the part that involves Mobile and Cloud. It will be much more convenient to have a huge memory and processor centric operation running in a cloud environment, streaming status and results to the browser running on your laptop or a small hand held mobile device.

Moving the heavy lifting work to the cloud and keeping the control on low resource devices is not something that is going to happen. It is happening now; only the scale and outreach is going to increase exponentially. Everyone connected to this field should to pay attention to the changes and keep a strategy for the future, be it providers, consumers, decision makers, technology workers, business users and consultants.

Mobile first cloud first simplified.

Posted in Cloud Computing, Mobile Solutions | Tagged , , , | Leave a comment

Enterprise Social – We are the Champions!

We talked in the last blog, Countdown to Launch, about identifying Champions to manage the communities in your new social network. You can’t do it alone! A successful launch requires a team of people. We know that we are looking for committed people who have responsibility to get the word out and utilize the social network we are looking for, but what types of people are these exactly? Among other things…they AIM. AIM? AIM for what? They may be “aim”ing to have a successful social platform, but really I mean Act, Inspire, and Maintain.


In sports, a champion (with good sports conduct) takes success and defeat in stride, keeps their goal in mind and never stops working to achieve it. Your champions should be the same. They must DO to see results. There will be times where it may seem that their efforts are not making as big of an impact as they hoped, but they need to remain committed. Their actions will set the tone for the rest of your users, their actions will drive other actions, and they will be role models for this social network. Their commitment to keep pushing for success is key.



All of us have people in our lives who have made an impact, positive or negative, but enough for us to change our minds, direction, or attitude because of them. I am not saying that your champions need to be the next Gandhi, but I think there are a few key traits that inspirational people have.  Inspirational people are….

  • Proactive – they take initiative to get the job done and don’t wait on someone else
  • Passionate – no one’s going to buy into what you’re pushing, if you’re not sold yourself
  • Tactful & Diplomatic – people aren’t going to listen if you’re message is one-sided, negative or delivered rudely. Having tact and diplomacy will help your message be heard even by the skeptics
  • Creative – often time inspirational people are creative. Creative in the way that they present their ideas, go about completing their tasks, or solving their problems. Creativity is intriguing; a little creativity can go a long way to gain some interest.


Being a champion isn’t all about the glory, it takes work. Your champions need to be willing to put in the time it will take to be successful. The work does not end once there are users on your social platform, the job is ongoing. Champions will need to maintain content, continuing to push content, encourage others to do the same, and remember to bring social into the arena when others may not be thinking about it. They will also need to help maintain the community of users who are on the network. What if they have a question, need help, guidance, or are looking for tips on starting their own community? The champions are their guide.

Are you a champion? Have you identified some names in your organization that might fit the champion role? Now we understand why we need the champions, who we are looking for to be champions. Next time we will be talking about some tips for your champions to succeed in driving social. In the meantime, maybe play a little Queen for your team to get them motivated, “We are the champions, my friends…”

Posted in Enterprise Social | Tagged , , , , , , , , , , , , , , | 1 Comment

Predictive Analytics for the Masses with Power BI and Office 365

Power BI is Microsoft’s cloud based service that leverages Excel to enable self-service business intelligence. The term Power BI has also been used generically to reference the components and technologies that compromise the Microsoft BI suite of tools.  Specifically, PowerPivot, PowerView, PowerQuery, PowerMaps, Question & Answer (Q&A) and now Forecasting.  The Q&A and Forecasting features are currently supported only in Office 365 and SharePoint on-line.  The other features are fully supported in the desktop (Office Professional Plus) and Office 365 versions of Excel 2013.

The latest incarnation of Office 365 implements time series analysis to provide forecasting capabilities.  It is this version and its forecasting capabilities that will be discussed in this article.  The description and definition of the specific time series algorithms related to forecasting  is beyond the scope of this discussion but, the implications of providing this capability are not.

The methods and techniques for time series analysis are well documented and understood in academia and in the field of statistics, but now this capability is being placed in the hands of the masses that may or may not have a thorough understanding of the associated techniques or how to interpret the results.  This may present a change management issue for an organization, but with some planning a great deal of benefits and insights can be obtained that would otherwise not be realized.

From a change management perspective, it is imperative that a consistent approach be defined and implemented to ensure consistent results when developing an analytics solution.  This should also include a training program on terminology,  techniques, methods and practices.

Let’s take a detailed look at the process that will lead to obtaining useful insights from a forecasting exercise and then how this process applies to an example implemented in Power BI.

Process Flow

  • Business Understanding – Understanding from a business perspective of the project objectives, requirements and what the specific outcomes should be.  This may also include an initial reference to an analytic methodology or approach (forecasting, classification, etc.).
  • Data Understanding – Understanding of the traits/personality (profile) of the data.  Are there data quality issues? What are the valid domains of attribute values? Are there obvious patterns?
  • Data Preparation – Does the data need to be reformatted?  How will missing values be handled?  What are the relevant attributes or subsets of data?
  • Modeling – Identify potential modeling techniques to meet the requirements of the business solutions and its objectives.
  • Evaluation – Evaluate the model and determine its fitness for use.  How accurate is the model?  Does it address the business requirements?  Have new insights been exposed that change the understanding of the data?
  • Deployment – Present the model results.  Make sure the appropriate visualization is used to present the results.  Does the deployment require a simple report, or is a new process required to closed the analytic loop?

This process is depicted in the following diagram:



The above process steps define the CRISPtm  data mining methodology which provides an excellent foundational approach and process for development and deployment of predictive analytic and data mining solutions.  It has been around for some time, but the basic tenets are very applicable.  Let’s now look at an example of how Power BI forecasting can be leveraged and how the process steps are implemented.


The following data represents new and used car sales from 2002-2014.  The data is stored by month. Examining the raw data, this is the opportune moment to address business understanding and identification of the business problem and requirements.  In this case the business problem is to forecast future new car sales to help better manage inventory. Also, understanding the nature and characteristics of the data should be accomplished at this point.  This can be done via data profiling (min, max, null counts, standard deviation, etc.) and through data visualization.  It would also help to have a domain expert available to provide additional insights.   With regards to data preparation for Power BI Forecasting, there should be an attribute that can be used for time series analysis.  In this case, a new attribute is created named [Period Ending] that is a combination of the [Year] and the [Month] represented internally as a date.




The above data was loaded into a PowerPivot workbook and uploaded to Power BI where some visualizations were applied.  The line chart shows new car sales units over time.  This line chart will be our candidate for time series analysis (forecasting).  Note that there appears to be a cyclical pattern in the data.  This is a good reason to generate a visualization to provide insights into the nature of the data.


Currently, to perform forecasting, Power BI must be placed in HTML5 mode.  This is accomplished via an icon in the lower right corner of the web page. Once that has been done, then hovering over the chart will expose a caret that indicates forecasting may be performed.


Clicking the caret produces a forecast and displays an additional panel that contains adjustable sliders for confidence interval and seasonality.  The forecasting algorithm will attempt to detect seasonality and display the calculated cycle in terms of units. The seasonality slider allows for manually setting the number of periods over which cycles will repeat.  For example,  If  based on domain knowledge,  it is known that the seasonality is different from what is calculated then it can be adjusted accordingly.  This may change the forecasted values.  In this case, the seasonality is detected to be 12 units (1 year).



The confidence interval slider displays a shaded area that indicates the number of forecasted values that fall within a specified number of standard deviations.    If there is a need to have a very high correlation for forecasts, select one standard deviation.  This will also be an indication of how well the forecast model fits the data.  The nature and requirements of the business problem and the user will determine an acceptable value for the confidence interval.  For this data, 68% of expected values fall within one standard deviation.


There is also the ability to perform a hindcast.  A hindcast produces a model that uses historical data to predict future values based on a preceding selected point in time.  New predictions are generated that show how the current predictions would look if the prediction was generation at some past point in time.


Prior to this point, the appropriate model would have been selected (time series) and the model applied and evaluated.  Within Power BI, the option to select a specific time series model is not available.  With regards to model evaluation, adjustment of the confidence interval and hindcasting provides the ability to evaluate the overall fitness of the model.

Finally, the model is deployed and can be used for revaluation.  This can be done via exporting the model along with its data to Excel and running it back through the forecasting model again.

It has been demonstrated how Power BI forecasting can be leveraged using the CRISPtm methodology and how advanced analytics can be placed in the hands of the masses. Power BI as a solution is simple to understand, uses existing technologies  and is straightforward to implement.  Over time, more and more advanced analytic capabilities will be exposed to the masses and to be successful, a well defined process, approach and appropriate training must be used to ensure that proper results and insights are obtained.

Questions and comments can be addressed directly to:

Ray Johnson

Director, Data Management – Strategist
e-mail: ray.johnson@mpspartners.com

LinkedIn: http://linkedin.com/in/rayjay

Posted in Business Intelligence, Microsoft | Tagged , , , , | Leave a comment

Enterprise Social – Countdown to Launch

So you have support and buy-in from the powers that be at your company to launch a social network, you have the platform setup and you’re ready to “Go Live.” The platform will be ready tomorrow, so you will launch next week, but are you really ready? Do the users know about the platform? Will they use it? Who are your social champions to help spread the word? Let’s take a step back and look at the preparation that goes into a successful launch.

 1. Pre-launch Communication
No one sent you an email and asked you to join LinkedIn or Facebook, but you must have heard about the platform from somewhere or you wouldn’t have known to join. The same goes for your social network. Get the word out! Communicate with your users that social is coming to your workplace and this tool will be available to them soon. Communication can be via email, but we all get so many emails in a day, many of them get overlooked. I would instead suggest posters,

table tents or even a game. Post teasers, to drive interest like “A new way to communicate…”, “Breaking down barriers…”, etc. then enhance the message to include “with social” or “with yammer”. social_whatwhenwhere

This will drive some buzz and curiosity about what’s coming. Awareness is half the battle of a successful launch and long term adoption.

2. Write a Usage Policy
Usage policy is kind of a strong term, for what we really want to create here. I have heard many clients tell me they don’t want social because they can’t govern it. I have two things to say about that, 1. There are ways to govern these platforms, 2. You shouldn’t have to. Your users have access to e-mail, phones, laptops, and other devices that allow them to communicate with each other, your external partners, and access company information. There are also policies around what they should and should not be doing and saying. The same applies to social. These policies apply, just because there is a new communication channel, does not mean that your employees are suddenly going to toss the rules out the window when they join your social network. Instead of a usage policy, put together a social etiquette document. Remind users that the same polices that govern other areas in the company still apply, but more importantly tell them about the purpose of your social network. Whether it is intended to connect with external partners or provide a space for project team collaboration.

 3. Identify Social Champions
Social grows organically, right? Facebook was created, people heard about it, people joined, and it grew to be bigger than anyone had ever imagined. That’s how social networks are supposed to work, and this is true, BUT if people joined Facebook and then no one posted anything, and everyone was just an information consumer do you think it would’ve succeeded? Probably not. Your social network is no different.

social_evangelist We need people who are going to champion this network. People who are committed to making this initiative a success. As people join they will start to utilize the platform, just like people did with Facebook, but someone has got to start the movement. Your identified social champions (or community managers) are responsible for pushing the social platform in places where email or another tool may have been the solution before. Write posts, respond to questions, and help users understand the benefits of the platform.


4. Create Network Structure
Your file shares have structure, and so does your document management system, your social platform is no different. Social has some level of organization just like everything else. What networks will you create to start? Will they only include internal users or will external users be allowed access? What groups will be created in your network? Will they be organized by subject matter, project, working teams, or something else? Your entire roadmap doesn’t need to be defined to launch social, but you should have an idea of what your network will look like. After you write your social etiquette document, you have identified the purpose of your social network which should help you guide how content should be stored. Know that your users are going to grow this network, and more than just the admin will likely have access to create new groups, but setting the framework for organization will help your users understand how content should be organized.

Your social launch is important, it’s going to drive the success or failure of your platform. This is a critical time for initial adoption and finding those who will champion this new tool. Next we will talk about what your social champions will need to succeed.

Melissa McElroy
User Experience & Social Collaboration Evangelist – Senior Manager
e. melissa.mcelroy@mpspartners.com
LinkedIn http://linkedin.com/in/melissamcelroy

Posted in Enterprise Social | Tagged , , , , , , , , , | 1 Comment

Mobile First – Cloud First Simplified (2 of 3)

Continuing the simplification of mobile first, cloud first from the previous post…

Let’s highlight the two big objectives that are achieved by separating core business services and platforms specific client in the last post:

  • Platform and device outreach – HTTP being understood by all modern devices, makes your service consumable by any device that can host a client application and understand the language of the web.
  • Heavy lifting done on the server – With the separation between a client app and business as a service running on a server somewhere, all the heavy lifting is done on the server where as the user’s device is doing mostly the user interaction. The heavy lifting work is generally referred to complex computations that consume a lot of hardware resources like CPU, RAM which is generally a limitation on small mobile devices.

Now let’s talk a little about the server.


Is your application business ready or feature ready?

So now we have built our application in a restful manner to reach a broad spectrum of devices and we moved the heavy lifting on the server. At this point our business idea can either take off or send us back to the drawing board. In either case the load on the server that is doing the complex operation is going to fluctuate.

The question here is – is the application infrastructure elastic enough to support that… or is such increase and decrease in the infrastructure going to come with a heavy cost?

It is a difficult question to answer for any developer – how many users (or traffic) would the current server infrastructure be able to hold? The best answer that you will get would be a very careful calculation based on perhaps stress testing, overly padded with seasoned wisdom. In fact, in case of a new application or a rewritten application with the newer frameworks, it is very difficult to evaluate the ideal infrastructure requirement until the rubber hits the road. To be on the safer side, every team tends to overestimate.


Cloudy with heavy awesomeness

Moving the infrastructure to cloud will help you achieve such elasticity. You do not need to worry about contacting data centers really, you can spin off new servers and shut them down when not needed, using a few lines of scripts. Depending on the service you are using, you could do many infrastructure operations using a self-service portal and be charged for only the infrastructure you use, for the duration you used it.

Suppose after we launched our application, we found that out target customers are in a specific geographic location like the east coast or some other part of the world that our analysts never imagined. Can you quickly respond to the new found opportunity? Most cloud service providers will allow you to select the geographic location of your infrastructure, allowing to place more servers closer to the customer for optimized user experience.

Global cloud providers are large organizations that have heavily invested in the infrastructure over the years thus providing you high security and availability. Therefor, there are many benefits that your business gets by moving to the cloud that might be difficult to estimate beforehand.

Next post of the series ->

Posted in Cloud Computing, Mobile Solutions | Tagged , , , , , , , , | Leave a comment

Enterprise Social – Continuing to Engage with Business Integration

How many systems do you access in a day to get the information that is critical to accomplish your job? I can think of a MINIMUM of four without even spending more than a moment. I navigate between systems to get communication from my co-workers, clients, and to review information. How much time is spent flipping between systems to get to this information? Think about the amount of time it takes for you to log in to each of these systems to review, create or update the information and make business decisions. Wouldn’t it be nice if the business critical information was at your fingertips? It can be, with social integration.

  1. One location means less places to hunt for information
    We effectively only work 3 days a week. Statistically, we spend the fourth day searching for information and the fifth day inefficiently dealing with data, such as reformatting, updating, versioning, copying, pasting and getting data out of one application to put it into another.[1]

    Integration with social can help reduce both the searching for infomration as well as moving information between systems. Social feeds can be integrated with ERP systems to display important transactions, reporting tools, and CRM systems. social_calendar_waste

    Instead of opening Salesforce to view the latest sales information, new sales leads can feed into your social news feed. Not only will the need for additional licenses be reduced, but in addition to your sales team knowing what’s in the pipeline, your sales support members are also in the know before they get that invite to help with and RFP they didn’t know was in process.

  2. Sharing Knowledge – Information that may once be unavailable is now sharable
    Consider this…you have a question on a report that was recently released via email and you respond via email to a few key members on your team that you think can help and wait for a response. Instead, you reply to the feed post with this report with this same question, mentioning those team members that you think can help with your question. Not only do those users see the post, but anyone following them does as well. You have now increased the knowledge base that you are tapping for the solution. In addition, you may have now helped someone who had the same question.
  3. Driving users to social – Social is more than just posting & hashtags
    I often get the question from our clients about what the point of social is. Isn’t it just posting random stuff? No, it’s not. Social can be successful in your enterprise environment. Integration with your other systems brings social to light as a business tool and not just a “social” tool. Your business information can benefit from the social features however. When that report shows up in the newsfeed, it can be tagged with topics like the system it came from and the topic of the report. People who are following these tags will instantly have the report show up in their feed. Also, when people are searching on these tags, the report will be returned in the results. It’s social metadata if you will.
  4. Keeping up to date on other information because they’re going there for their job
    You integrate your first system, let’s say CRM, with your social platform. You have told the sales team that they will get their sales updates via the newsfeed and not an email. The team begins the transition to going to the newsfeed regularly to get their information, when they may not have in the past because they had no reason to. Now, while perusing the feed and looking at the information tagged with #Sales, they also notice comments about a recent meeting a partner had with a client that may turn into a sales lead and a project that is ending at another client that may turn into another phase. The sales team may not have known about these events and there would have been missed business opportunities.

So how do you get started? What systems do you integrate first? My suggestion here around getting started is think about who in your organization has started to adopt the social platform the most, but also who hasn’t. If there is a team in your organization that you think has missed opportunities from not participating, maybe it makes sense to include some of their data. Drive them to the platform with their business critical information, and allow them to reap the benefits of the other information that is shared there.

Melissa McElroy
User Experience & Social Collaboration Evangelist – Senior Manager
e. melissa.mcelroy@mpspartners.com
LinkedIn http://linkedin.com/in/melissamcelroy

[1] Feldman, Susan, Hidden Cost of Information Work: A Progress Report,‖ International Data Corporation (IDC), Framingham, MA, May 2009.

Posted in Enterprise Social | Tagged , , , , , , , | Leave a comment

Mobile First – Cloud First Simplified (1 of 3)

The device and service situation


Over the last decade, the tech industry has seen the exponential growth of a variety of devices (laptops, mobile phones, tablets, gaming consoles sensitive to touch/voice/motion/gestures). This is only going to get more diversified, whether we talk about 10 new devices within the 5.75 inch and 6.85 inches sector or the consoles / wrist bands that will replace medical equipment or watches that will talk to phones, glasses and TVs. Yes, the forecast is intense.

Relax, take some REST.

Given we can only partially foresee which future devices will be available, how do we maintain consistent delivery of business functionality to the devices that are still to be developed? Well, build a service that can communicate with all the existing devices and can also take care of the REST.

For decades we were happy with XML and SOAP messages communicating across applications. But now this communication has grown beyond traditional applications and devices. From some remote server hosted somewhere in the cloud to smart touchscreens, from set-top boxes to gaming consoles, some of those devices understand SOAP but many do not. However all of them positively understand HTTP. HTTP is what connects everything to the “Cloud” and staying away from either might not be a good idea.
Although the term “cloud” is heavily misused for sales purposes, I will come back to it a little later, let’s first talk about…

What is Service First?

So once you have identified that your business functionality will be delivered via HTTP, you should build your logic and let it be consumed via the HTTP service. HTTP service is more commonly known as RESTful service or REST service Web APIs. This is an architectural pattern that embraces HTTP as transportation protocol. So RESTful services are basically services built to be consumed over the web via HTTP.

Once we have functionality ready and available to be consumed across the spectrum, we can go ahead and create client apps for as many platforms and devices as we want. As far as maintenance is concerned, any change in the business logic will be one change to your service, and a consistent UX will represent the brand.

Next post of the series ->

Posted in Cloud Computing, Mobile Solutions | Tagged , , , , , , , , | Leave a comment

Salesforce, Microsoft Partnership – strange but very strategic!

I am sure I was not the only one to be surprised (or even shocked) by the recent partnership announcement between Microsoft and Salesforce. It might be strange at first as to why, when Microsoft has Dynamics CRM, a platform that has been gaining market traction since its latest release, they would signup for a partnership with Salesforce. But if you align the decision with some of the recent announcements from Microsoft after the change of guard, I believe it is a strategic move.

Microsoft CEO Satya Nadella’s goal to deliver cloud for everyone on every device resonates with all the company’s recent strategic moves. As Microsoft tries to transform itself to a cloud and mobile company, Salesforce can support Microsoft Azure, giving credibility to the platform among a large customer base. As SAP and Oracle have already done, Salesforce wants to ensure that it is positioned at the forefront of this cloud-first push from Microsoft.

I see this partnership also strengthening the “engagement workplace”.  Enterprise social is no longer just about providing koodos to other employees, it is about engaging the employee/user throughout a business process using inline social conversations. Such employee/user engagement creates business value and boosts productivity. Microsoft with its O365/Yammer social platform and Salesforce with its Chatter platform can create a cohesive, engaged CRM workplace.

Nadella stated at the World Partner Conference 2014 that he focuses on the partners with development capabilities, particularly those that extend and customize cloud and mobile using Azure and Office 365. For MPS Partners, we’re glad we already focus on these capabilities. To embrace the newest partnership with Salesforce, we’ll make a few slight modifications to our offerings to incorporate the platform into our practice to best serve our customers.

Posted in Cloud Computing, Enterprise Social, Microsoft | Tagged , , , , , , , , | Leave a comment

Targeting a wide range of devices with your application (4 of 4)

<- Previous post of the series
<<- Start from the beginning

Let me start this post with a small incident that happened in our organization a couple of years back. We had switched our insurance provider and the representative of the new provider was giving a presentation of the benefit plan. Then came a slide that had their “mobile app” mentioned, among other things. While they talked how one could look up health care providers and other information via the app, someone mentioned that they couldn’t find the app in the store. After a few seconds of confusion, the presenter assured to get back with the information about the app.

The disconnect was – the app they were talking about was a mobile web site, where as people were instinctively searching in the app store. This brings out many interesting points. One of the most important being – the discoverability of your application. When you look for an app that provides a functionality do you open the browser and search online? Maybe, depending upon what are you searching for, but it is highly likely that you will look for it in the App Store of your device.

Which leads us straight to the ultimate option of targeting multiple devices and platforms:

Publishing the application in the app store of the platform.

There are a few ways to go about it –

One would be to choose the device/platform and re-write an app using the platform’s API and language. But given that right now we are talking about targeting multiple devices and platforms, I would not recommend it.

The second will be to abstract the business logic / functionality to a restful service and write multiple UI clients (AKA Apps) using the native platform. That is a decent option, however there is a cost associated with hiring multiple developers each with their own platform skills (Objective C with iOS, Java with Android, C# with Windows 8/Phone etc.). The cost for development and maintenance adds up, every time a new version of the platform is released and newer devices stop supporting older platform versions.

The ultimate goal is to implement this option using the existing skills and without re-writing the entire application. This can be achieved in two ways. But to achieve either, the application has to be well structured. Any well written application defines the boundaries of at least the three traditional layers – UI, Business layer and Data access later. To be able to reuse most of the code across apps, it is rather required to separate out at least the UI layer from the rest of the application logic.

Let’s take a look at these options now:

1 – Speak the Universal language – HTML5

Each and every mobile platform supports HTML based applications in their native platform. Some provide JavaScript based APIs to work directly against (like Windows 8 and webOS), while others allow HTML files to run in a control that works like a browser, inside the app.

There is a great framework to keep the application suite consistent across and independent of the platforms – PhoneGap. PhoneGap allows an application built using HTML, CSS and JavaScript, to run on a variety of mobile devices, packaged to be delivered via their platform’s app store. It provides JavaScript based APIs that give access to native resources of the device, otherwise not available to a web application. This includes Accelerometer, Camera, Compass, Contacts, File, Geolocation, Media, Network, Notification and Storage. PhoneGap is also known as Apache Cordova and is a free open source software.


To get the full benefit, the reusable business and data access logic should be abstracted into a RESTful service which would be consumed by your application that will be consuming the PhoneGap framework.

2 – Hire an interpreter – Xamarin

Xamarin allows you to write native iOS, Android and Windows store apps using a single application platform (Microsoft .NET) and language (C#). Applications build in Xamarin enjoy full native access to platform APIs, get native performance and user interfaces. Xamarin provides the ultimate ease of development and maintenance by integrating its tools right into Visual Studio and by extending Microsoft tooling. Microsoft released Portable Class Library (PCL) to develop functionality using C# to be used across a verity of platforms. This was initially created to support Microsoft platforms like .NET and Windows, Windows 8 Store, Windows Phone, etc. In 2013 the PCL feature was extended to iOS, Android and Mac using Xamarin. Since PCL is independent of the platforms it does not support some platform specific features, like certain encryption. Also Entity framework 6.X is not supported PCLs, but as per the forums, EF 7 will be.

That said, you can create the shared business logic of the using PCLs, which each separate client application can use. The new release of Xamarin includes a new feature – Xamarin Forms which allows the sharing of UI logic across platform too.


PhoneGap packages your HTML, JavaScript and CSS based application to create a hybrid application, whereas Xamarin creates a truly native application using C#.

Posted in Mobile Solutions | Tagged , , , , , | Leave a comment

Power BI: Part 3 – Deployment Scenarios

This is the final part of a 3 part series on Power BI.  Part 1 discussed the tenets of self-service analytics and how Power BI and be leveraged.  Part 2 provided a more in depth discussion of Power BI capabilities.  Part 3 will look at Power BI deployment scenarios.

Before deploying Power BI, you must clearly understand who your content creators and content consumers are.  The following personas typically exist within an organization:


The Executive needs information that is highly aggregated to give a high-level picture of the state of a business or functional area. Often presented in the form of a dashboard or scorecard, information for the executive is intended to spark questions and drive strategic decision making.

The Analytist needs raw or lightly summarized data to consume for the purpose of creating a detailed analysis of a specific business problem or opportunity. Analysts present data in the form of spreadsheets, presentations or ad hoc reports that have limited use beyond the specific problem they are tasked to solve.

The Manager needs information that provides a detailed analysis of a specific business area or function. Data for the manager is used in planning future activities or assessing past performance. It is at a level of detail that can help define specific actions, such as a territorial sales plan or marketing activities for a product launch. Data for the manager is generally provided as reports or detailed scorecards.

Operational users deal with data presented at a transactional level. Examples of an operational report may include invoice registers created by accounting or a daily production plan published by a production planner. Operational data has been traditionally presented in the form of reports. Increasingly, data for the operational user is being presented on-line via Intranets or mobile devices.

Consumption Modes

Desktop applications, Web Browsers, Smart Phone/Tablet Applications

The mix of personas, audiences and consumption modes along with core business requirements provides input into deciding on how best to deploy Power BI as a whole or its individual components.


Deployment Scenario 1 : Desktop Excel 2013

This is the simplest scenario and can service the needs of individuals accessing local and remote data sources.  In this scenario an Analyst is typically trying to address a specific domain problem related to an assigned task.  The output of the solution may provide insights into a related issue or it may be a one-time solution.  At this level Power Pivot, Power View, Power Maps and/or Power Query may be leveraged to address the specific analysis.  One important characteristic of this scenario is that it may never venture far from the Analysts’ desk. Also, the content creators and consumers may be the same individual.  The consumption mode is generally at the desktop level using Excel.

Deployment Scenario 2 : Desktop Excel 2013 Power Pivot workbooks deployed via SharePoint

This scenario expands on deployment scenario 1.  This scenario also facilitates using multiple disparate data sources via Power Pivot and Power Query.  A specific domain problem has been identified but the value of the analysis is far more reaching than an individual analysts’ desk.  The problem may address a department need or the broader need of a functional area.  SharePoint is leveraged for the dissemination of information to a wider audience.  Data can be refreshed on a regular basis using Power Pivot refresh.  Since the data is stored in the Excel/Power Pivot workbook, it is possible to drilldown into the transactions that support the analysis.  This deployment scenario can support the operational, managerial, analytic and executive personas for domain specific problems.  Any limitations are related to managing the volume of data stored in an individual workbook as well as preventing duplication of effort within an organization.  The consumption mode is via desktop applications or Web Browsers.  This includes smartphone and tablet based web browsers.

Deployment Scenario 3 : Power View, Excel workbooks deployed via SharePoint Leveraging Tabular/Multidimensional mode Analysis Services

In this scenario,  the analysis can be much more detailed, and encompass much larger volumes of data.  The physical data is typically external  but may also be embedded in an Excel/Power Pivot workbook.  Disparate data sources have been integrated via a Tabular model or an Analysis Services cube.  Complex solutions can be deployed via Power View in SharePoint or Excel Services.  This deployment scenario supports all of the personas and provides a great deal of flexibility in how the solution can be processed and delivered as well as a rich interactive user experience. The consumption mode is via desktop applications or Web Browsers.  This includes smartphone and tablet based web browsers.

Deployment Scenario 4 :  Power BI via Office 365

Power BI via Office 365 provides the ability to service all of the above personas as well as all of the consumption modes.  As in deployment scenario 3, the analysis can be much more detailed, and encompass much larger volumes of data.  This includes full access to all of the Power BI components (Power Maps, Power Query, Power View, and Power Pivot).  Additional information consumption methods are available above and beyond the base interactive functionality.  For instance,  there may be a situation where a specific analyses does not exist.  Power BI via Office 365 provides a question and answer mode in which natural language queries may be executed against the associated Excel/Power Pivot workbook data source (e.g.  “Show total sales by product category”). A dictionary of business terms (synonyms) should be created to fully leverage this capability.  The synonyms map information consumer concepts to the underlying analytic model.  Information may also be consumed via a Power BI app available via the Windows App Store.  The Power BI app is linked to an Office 365 site supporting the deployed Excel/Power Pivot workbooks. One item to note is that Office 365 BI capabilities (question and answer) are cloud based as a component of the Office 365 subscription.  In deployment scenarios 2-3 on-premises or off-premises SharePoint can be used for information delivery.  This raises the additional question of should the deployment mechanism for an BI content be on or off premises.  This in itself is a complex topic and cannot be fully addressed without understanding an organizations specific requirements.


The above deployment scenarios by no means cover all of the possible options available for the deployment of Power BI, but they do represent the more common ones.  If you are considering using and deploying Power BI the above scenarios can be used as a starting point and modified as required to fit an organization’s specific requirements.

Posted in Business Intelligence | Tagged , | Leave a comment
View By Author
  • View By Category
View By Date
© 2014 SPR Companies. All rights reserved. About | Capabilities | Products | Solutions | Clients | Events & Resources | Careers | Site Map | Legal/Privacy