Leveraging the Cloud as your application development platform


Imagine that you are an electronics retailer and on Cyber Monday every year and around Christmas your website needs to handle 15M+ transactions in a day.  You would need to make sure that your environment can scale to handle the load while minimizing your CAPEX and OPEX. Microsoft’s Windows Azure is a Platform as a Service solution that provides businesses the flexibility to scale their platforms up/down based on demand.

Here is a quick primer on Windows Azure

We recently delivered a webinar on the benefits of Windows Azure and how it could fit with your long term application development strategy.

Click here for the webinar on Windows Azure

Driving IT efficiency by moving to the Cloud


The cloud is now on every IT Strategist’s mind.  There are many flavors of the cloud, Public, Private, Hybrid, Outsourced etc.  Microsoft’s newest offering, Office 365 allows organizations to move their critical services like Exchange, IM & SharePoint to the cloud.  There are multiple versions available and each organization must assess their internal readiness and develop an usage profile to identify the right flavor of cloud for them,

At the recently concluded SharePoint conference Jesus Salazar & I  presented on “Driving Efficiency & Innovation by moving to Office 365”.  In this session we focused on the differences between the various flavors of Office 365 and how to choose the version that is right for your organization

You can view the slideshare presentation here

Windows Phone 7 Enterprise Support –5 Reasons to wait


In a previous post, I discussed five reasons to consider Windows Phone 7 for your enterprise mobile communications needs. In this post let us discuss the top five reasons to wait before you take the plunge with Windows Phone 7.

Windows Mobile and Blackberry were the most viable options for the enterprise before the arrival of the iPhone. The iPhone 2G was a great consumer phone and its popularity eventually led to businesses adopting it for their enterprise needs. Unlike consumers, business users need better mobile device management and security, standardized hardware, ability to deploy applications easily to their mobile workforce and better connectivity to enterprise applications. Windows Phone 7 falls short in fulfilling these requirements.

#1: Windows Phone 7 – VPN Support – Non-existent
In my view, this is the single most important reason to stay away from Windows Phone 7 at this time. If you need IPSEC VPN access or use a third party VPN client for your mobile users, Windows Phone 7 is not for you. You may be expecting third party VPN vendors like Cisco, SonicWall to develop VPN applications. However, these types of applications are not possible at this time, since the device does not support a low level access to the network which is required by these VPN clients. This lack of socket support is also the reason why there are no VOIP  applications like Skype on WP7.

#2: Windows Phone 7- Enterprise Security with EAS – Limited

Exchange Active Sync(EAS) allows mobile users to access their mailbox, calendar, tasks etc. from a corporate Exchange 2003, 2007 or 2010 sever. Since mobile devices are prone to theft/loss, EAS allows administrators to enforce policies on the device like a device lock password strength, minimum password length policies, idle time threshold before prompting for password etc. EAS allows administrators to remotely wipe your phones of all sensitive data. The current version of EAS supports about 30-40 policies. However if you invest in Windows Phone 7 you can only use a small subset of these policies. Want to disable the camera for your business phones? Want to block certain applications, and disable SMTP? You are out of luck because only the following policies are supported in the first release.

Password Required – Requires that a password contains numeric and non-numeric characters

Password Expiration – Enables the administrator to configure a length of time after which a Windows Phone password must be changed

Password History– Specifies the number of past passwords that can be stored in a user’s mailbox, and does not allow a user to reuse a stored password

Allow Simple Password – Enables or disables the ability to use a simple password such as 1234

Minimum Password Length – Specifies the minimum password length

Maximum inactivity time lock – Specifies the length of time that a Windows Phone can go without user input before it locks

Maximum failed password attempts – Specifies how many times an incorrect password can be entered before the device wipes all the data

#3: Windows Phone 7- Mobile Device Management –Non Existent

The iPhone currently supports Mobile Device Management through third party MDM servers. These third party servers allow enterprises to push configuration profiles, enforce security policies and provide the peace of mind that only trusted users can access data on your corporate network. The System Center Mobile Device Manager, Microsoft’s MDM server currently does not support Windows Phone 7. This leaves Exchange Active Sync (EAS) as the only available option to manage your devices.

#4: Windows Phone 7 – Application Delivery – Limited

The Windows Phone marketplace is a great location to discover applications that enhance your mobile experience. If you are in the business of creating applications for public consumption, Windows Phone 7 is a great platform to invest in. The development toolset integrated with Visual Studio allows you to create compelling mobile applications quickly. However if you are looking to develop and deploy internal applications, the marketplace becomes a constraint. The current release of Windows Phone does not have application side loading capabilities. So when you create an internal application the only way to deploy this to Windows Phone 7 devices is to publish it to the marketplace. You would have to build authentication into the application to limit unauthorized access. This lack of side loading support is detrimental for the deployment of line of business applications on Windows Phone 7.

#5: Windows Phone 7 -SharePoint and Office 365 Support – Limited

You may have seen some WP7 demos about SharePoint support. True, the support for SharePoint 2010 under the Office hub is the best SharePoint experience on a mobile device. However you will need SharePoint 2010 and ForeFront Gateway configured to access your sites under the Office hub. If you have not upgraded to SharePoint 2010 you are out of luck. If you have migrated to BPOS/Office 365 you are out of luck. Though Email hosted on the cloud is supported through Outlook Mobile, the hosted version of SharePoint called SharePoint Online is not supported yet on Windows Phone devices.

Final Verdict:

In my view WP7 is a great prosumer OS. If you are interested in increasing productivity, Windows Phone 7’s glance and go user interface, Office Integration, SharePoint 2010 integration and Outlook Mobile connected to Exchange provide the best productivity experience on a mobile device. But if you are looking to standardize on a device for your enterprise, look elsewhere. Windows Phone 7 is a great device to use, but not yet there for full enterprise support. However, Microsoft has committed to provide at least two updates this year and you can expect VPN, MDM and other capabilities within the next year or two.

Some helpful Links to get more information regarding WP7 for enterprises

Microsoft’s Enterprise Mobility Kit – Microsoft’s datasheet and presentation about Windows Phone 7

http://www.infoworld.com/d/mobilize/how-avoid-smartphone-exchange-policy-lie-004

http://windowsteamblog.com/windows_phone/b/windowsphone/archive/2010/06/07/windows-phone-7-means-business.aspx

EAS policy List for Exchange 2010

Windows Phone 7 – 5 Reasons to Consider it for your Enterprise


The release of the iPhone in 2007 opened the floodgates for smartphone adoption within enterprises.  Though Windows Mobile and Blackberry were significant players before the arrival of the iPhone, Apple’s entry into the market led to the development of an ecosystem around application development and delivery.  Forrester estimates that about 25% of businesses leverage mobile phones for Sales Force Automation, emergency response and field services by building native applications targeted towards platforms like iOS and Android.  The arrival and adoption of the iPhone has significantly dented Microsoft’s dominance in the mobile market.  After three years of development and missteps, Microsoft has decided to completely revamp it’s mobile strategy by releasing a new smartphone platform, Windows Phone 7.   Unlike previous editions of Windows Mobile which unsuccessfully aimed to bring the Windows experience to the mobile device, Windows Phone 7 takes a consumer first approach.  The goal for the platform is to deliver compelling user experiences while providing developers the capability to leverage their existing toolset to build enterprise applications.    Microsoft has publicly stated its commitment to regularly update its mobile offering and the platform is expected to evolve as a top notch competitor to iOS and Android in the near future.

Top 5 Reasons to Consider Windows Phone 7

Hardware Standardization: Microsoft has taken a page or two from Apple’s handbook and has standardized the hardware configuration for Windows Phone devices.  Every Windows Phone device has to conform to specifications around the core hardware, positioning of buttons and camera capabilities.  Gone are the days, where OEMs controlled the device specifications and the user interface.   With Windows Phone 7 you can rest assured that the application experience is going to be similar across multiple phones

Simplified Developer Experience:  Developers proficient in .NET can leverage Visual Studio and SilverLight to build compelling applications for the platform.  Graphic Designers can leverage Expression Blend to develop visual interfaces and seamlessly share their work with developers to build the functionality of your application.  Increased synergies(attained through better development tools) between the creative and functional tasks involved in developing an application can ensure that your end users get a compelling user experience through the mobile application.  The results of this are stunning.  There have been 6000+ applications released in the Windows Phone marketplace in the last three months.  While this is less than the apps available on iPhone and Android, these numbers do speak for the ease of development on the platform

Integration with Enterprise software: Windows Phone 7 integrates out of the box with Exchange for email, SharePoint for document management and collaboration and provides the traditional Office suite for viewing and editing documents.  Of all the mobile devices in the market today,  Windows Phone 7 provides one of the best integrations for Office and SharePoint

One Device for Work & Fun: If you are used to seeing your users carry a BlackBerry and an iPhone those days may be coming to an end.  Windows Phone 7 is a great phone for enterprise needs (email, document management etc.) as well as for personal use.  A contact centric UI integrates with your Social network accounts and provides an unified interface to access your contacts on the device, in your corporate network and the cloud.   With the integration with Xbox Live and the Zune Marketplace(for audio/video entertainment) and Windows Phone marketplace(for apps) you can rest assured that your employees never need to carry a second device just for entertainment

Microsoft is the underdog: The mobile market is projected to explode over the next couple of years and Microsoft is the underdog here.  Android and iOS have been eating Microsoft’s lunch in this space for the last couple of years.  This has led Microsoft to regroup and innovate again and this can only mean regular updates and enhancements to the platform.  This may change if Microsoft becomes the leader in this space because they have been known to go into an innovation lull once they dominate the market(e.g. Internet Explorer, Windows etc.).  But Microsoft has a long way to go to catch up with iOS and Android so you can expect to see a lot of innovation on the platform

Here are a couple of links to catch up on the latest Windows Phone 7 News

Official Microsoft Windows Phone 7 Site

WMPowerUser – a great blog to catch up on the latest Windows Phone 7 News

WPCentral – a great blog that has links to the newest applications released on the Windows Phone 7 platform

In the next post, I will detail five reasons to wait before you decide to take the Windows Phone 7 plunge.

Windows Azure–Simplified! – A quick introduction to Windows Azure


Over the last couple of years, Cloud Computing has risen to prominence as the single most disruptive technology in the enterprise software landscape. Unfortunately the word “Cloud” has become one of the most confused terms in IT terminology. It has been applied to almost any technology/software that is not hosted in your data center. There are also many flavors of Cloud, that it is almost impossible to get a clear idea of what the Cloud means from a platform and application development perspective. In this post lets look at one such Cloud initiative, Microsoft’s Windows Azure.

Microsoft has been promoting Windows Azure, its platform as a service (PaaS) solution for enterprises to move their critical business applications to the cloud. To describe Windows Azure it is necessary to take a step back and analyze the various steps you would take if you are developing a Line of Business application to run on-premise.

Step 1: Choosing the OS

To develop an application you need an Operating System for your application to run on. This OS needs to be scalable, flexible, extensible and secure and enable you to develop and deploy applications that leverage multiple programming platforms like .NET, Java, Python, Ruby etc. Traditionally Windows or Linux had filled this void for on-premise applications. If you decide to move to the Cloud, you still need an Operating system to run your applications. Microsoft’s answer to this is Windows Azure. Azure is the OS that enables you to run and deploy applications on the cloud. When you choose the Windows Azure platform you implicitly choose the Windows Azure OS to run your application. The Azure OS, which is built on Windows Server 2008, is designed for scalability and Microsoft manages this infrastructure so that you never have to worry about patching the OS, scaling it to multiple servers etc.

Step 2: Choosing your Data Storage

Any enterprise application needs to store data of some form. In most cases you have structured data stored in databases (like Oracle and SQL) and some unstructured data like images, videos, files etc. The Azure platform provides you solutions for both these scenarios. To store structured data when your application is running on the cloud you will need a relational database and Microsoft’s answer is SQL Azure. To keep it simple, consider SQL Azure as SQL Server hosted by Microsoft on the cloud.

To store unstructured data on the cloud, Microsoft provides the Windows Azure Content Delivery Network (CDN) and the Windows Azure Storage component. With CDN, files can be stored in one location and Windows Azure automatically caches and stores a copy of the file close to the user’s network. So if you have someone in Europe accessing a website that displays a video, the video is automatically delivered from a location close to the user. Windows Azure Storage allows you to store files on the cloud as well without the benefits of CDN.

Step 3: Data Integration

Almost every business application needs to integrate with external applications. If you ran every application on premise this task is easier. However when you run an application on Microsoft’s servers you need a way to consume external data that may be running on-premise. Microsoft solves this integration problem using its Windows Azure App Fabric solution. The Windows Azure App Fabric allows you to integrate data from anywhere using a service oriented model. With the App Fabric you can consume Cloud data into your on-premise application or consume your on-premise data into your cloud application. The App Fabric uses standards based Web Services model for data integration.

Step 4: The Development Environment

Now you have decided on the OS (Windows Azure), finalized the data storage(SQL Azure) and have identified the integration points(Windows Azure App Fabric) for your application. The next step is to go build the application. Windows Azure’s Cloud SDK integrates with Visual Studio and allows your developers to build solutions using familiar tools. The toolset promotes interoperability and the SDK provides samples for developing solutions even on non .NET languages like Python or Java. The SDK also provides a local environment for users to test their cloud applications.

Step 5: Deployment and Testing

Once your application development is complete, you will need to test and deploy this to the cloud for your end users. Windows Azure provides a one-click deployment option from Visual Studio to deploy your application to the Cloud. There is a separate Staging environment that you can leverage to conduct user acceptance testing before going live with your application.

As you can see, the approach to application development for the Cloud is similar to the steps you would take for application development on premise. The confusion comes from applying the word “Azure” to every component. So here is a short guide

Windows Azure – The OS that you never have to worry about

SQL Azure – SQL Server on the Cloud

App Fabric – The web services/integration component

Azure Storage – the Storage on the cloud for unstructured data

Azure SDK – Your development tools

image

Office 2010 Integration with SharePoint 2010 compared with Office 2007


Based on my recent work with SharePoint 2010 and Office 2010, here is a list of my observations of the differences between the two versions of Office when integrating with SharePoint 2010.

Click here to download a PDF version of this comparison

Some enterprises may decide to rollout SharePoint 2010 without upgrading Office. In this case, here are the features that you will miss out on!. This is not a comprehensive nor the official list and is based on my initial experiences. Please post in the comments if you have additional features or if some of these work in 2010

Legend –

Fully Available – Fully Available

Unavailable – Unavailable

Partially Available – Partially Available

Word

Feature Word 2007 Word 2010
Save to SharePoint Fully Available Fully Available
View and Manage Versions Fully Available Fully Available
View/Manage/Start Workflows Fully Available Fully Available
View and Manage Workflow Tasks Fully Available Fully Available
Co-Authoring of the same document simultaneously Unavailable Fully Available
Set Managed Metadata Properties Unavailable Fully Available
One click document synchronization with the server Unavailable Fully Available
Social Integration with Notes and Tags Unavailable Fully Available
Office BackStage Unavailable Fully Available

PowerPoint

Feature PowerPoint 2007 PowerPoint 2010
Save to SharePoint Fully Available Fully Available
View and Manage Versions Fully Available Fully Available
View/Manage/Start Workflows Fully Available Fully Available
View and Manage Workflow Tasks Fully Available Fully Available
Co-Authoring of the same document simultaneously Unavailable Fully Available
Set Managed Metadata Properties Unavailable Fully Available
One click document synchronization with the server Unavailable Fully Available
Social Integration with Notes and Tags Unavailable Fully Available
Office BackStage Unavailable Fully Available
Slideshow Broadcasting from Powerpoint through PowerPoint web app Unavailable Fully Available
Edit Video and Pictures within the document Unavailable Fully Available
Screen Capture Tools Unavailable Fully Available

SharePoint Designer

SharePoint Designer 2010 is required to edit SharePoint 2010 sites. It is not backward compatible with MOSS 2007 either.

Outlook

Feature Outlook 2007 Outlook 2010
Social connector to LinkedIn Unavailable Fully Available
Take SharePoint lists offline Fully Available Fully Available
Overlay Calendars Partially Available Fully Available
Plug-ins to connect to SharePoint social features Unavailable Fully Available

Visio

Feature Visio 2007 Visio 2010
Save to SharePoint Unavailable Fully Available
View and Manage Versions Unavailable Fully Available
View/Manage/Start Workflows Unavailable Fully Available
View and Manage Workflow Tasks Unavailable Fully Available
Publish to Visio Web Services from the client Unavailable Fully Available
Build Workflows for SharePoint Unavailable Fully Available
Import Visio Workflows to SharePoint Designer 2010 Unavailable Fully Available
Office Backstage Unavailable Fully Available

Excel

Feature Excel 2007 Excel 2010
Save to SharePoint Fully Available Fully Available
View and Manage Versions Fully Available Fully Available
View/Manage/Start Workflows Fully Available Fully Available
View and Manage Workflow Tasks Fully Available Fully Available
Co-Authoring of the same document simultaneously Unavailable Fully Available
Set Managed Metadata Properties Unavailable Fully Available
One click document synchronization with the server Unavailable Fully Available
Office BackStage Unavailable Fully Available
Improved Publishing to Excel Web Access Partially Available Fully Available
Excel SparkLines Unavailable Fully Available
Excel data slicers Fully Available

InfoPath 2010

InfoPath 2010 is needed for customizing the display forms in SharePoint. Forms can be filled in but will not support the features like BCS metadata controls and people selected controls.

 

Top 10 Pitfalls for a SharePoint implementation Part 2


This is a continuation of my previous post. Click here to view Part 1

 

6. Our Front office admin can manage SharePoint – A lack of good training/governance/maintenance policy destroys the user’s confidence in the portal solution. There is nothing more frustrating for an end user than waiting for a consultant to provide support within “48 hours”.

 7. We need to design every site before rolling out the portal – The traditional waterfall methodology invariably breaks down during portal implementations. Users need collaboration now and not 6/8 months down the road. An agile approach works great where you can obtain quick design wins and improve the portal adoption organically throughout the enterprise. It is a great feeling when people realize the benefits of SharePoint from their peers than a 45 minute sales pitch.

 8. Can we have our old documents please? – Migration of existing content is often overlooked until the end of the Build phase of the implementation. When user acceptance testing begins, users don’t have access to their existing data and it makes it tough for them to provide feedback and compare apples to apples. Data migration could end up becoming more complex compared to the portal setup, since the old metadata needs to be mapped to the new strategy.

 9. Over-Engineered Security – SharePoint provides tools ranging from self service site creation to completely locked down access to sites. Arriving at a security model that satisfies the business without constraining the users is crucial for success. Over engineering the security puts additional burden on the IT staff for support. Inadequate security leads to unmanaged site growth in the portal. Striking the optimum balance and documenting it early on is the key to prevent issues at a later stage.

 10. All our ASP.NET code will now be Web Parts– This is probably one of the frequent issues that I have run into. There are some applications that thrive well under the web part model. There are certain applications that do not need the constraints “offered” by SharePoint. Picking the right tool for the right Line of Business application ensures that undue burden is not placed on the internal IT staff to standardize their development on MOSS.

If you think I missed something or if you have additional points to add please feel free to link here

Here are a some additional posts that talk about similar pitfalls

http://www.sharepointjoel.com/archive/2008/05/06/insights-why-sharepoint-projects-fail.aspx

Why do SharePoint Projects Fail? – Part 1

Why do SharePoint Projects Fail? – Part 2

Why do SharePoint Projects Fail – Part 3

Why do SharePoint Projects Fail? Part 4

Why do SharePoint Project Fail? Part 5

 

 

 

Top 10 Pitfalls for a SharePoint implementation


 
 

Microsoft Office SharePoint Server (MOSS 2007) is a truly revolutionary collaboration tool. There are very few technologies that can sell by itself and MOSS is one of those. I have seen clients who have no idea why they need SharePoint, but they want it anyway. Microsoft has done an amazing job of showcasing what MOSS can do for the enterprise and based on initial feedback it is on track to becoming the WebOS for the 21st century. Just like any other Microsoft product, MOSS is relatively easy to install and setup and most businesses think they can get a portal up and running without any design process.

Based on my experience implementing MOSS at various enterprises, here are the top 10 reasons why a MOSS implementation might fail

  1. MOSS is a replacement for your network drive –
    It amazes me that even a lot of salespeople use this line as a pitch for MOSS. Most users end up trying to achieve document management/collaboration by storing all files in a document library. This makes MOSS a glorified network drive with a web front end. Using MOSS as a network drive replacement brings the same problems and users wonder why they don’t see an ROI for the implementation. Such an approach leads to
    1. Lack of visibility into relevant content same data islands exist on MOSS
    2. Lack of standardization across documents
    3. Proliferation of data islands with limited content ownership and contribution

    (I have seen users store SQL database backups on MOSS!)

     
     

  2. We know what we need, Just setup a default site – Microsoft has done a terrific job of showcasing MOSS 2007’s ease of use. This has resulted in a false sense of security about the product and most companies frown when you say you need to design the portal. An enterprise portal does not begin and end with the top level site. There are things like search, security, taxonomy and organization of sites, shared services etc. that can come back and haunt you if it is not well designed. Unless you truly want to leverage MOSS as a network drive, some amount of planning and design is needed to ensure you get the maximum benefit from your investment.

     
     

  3. Capacity Planning? – What is that? – Every MOSS implementation that I have been a part of has seen great user adoption. Capacity Planning becomes an important exercise if you want to ensure that your portal truly become the one-stop solution for your users. Excel Services, Business Data Catalog, Document conversion services are all resource intensive. Designing a farm that can scale with the business is of utmost importance to ensure a good experience for the users. Poor performance leads to poor user adoption which leads to a stale portal.

     
     

  4. Just setup a site, Joe User will love it – Improving information worker productivity is a central goal for MOSS and involving those workers in the planning phase ensures that there is adequate level of buy-in from all levels within the company. I am not recommending “design by committee” here. Key stakeholders should be introduced to the product during the early stage of the rollout to build their level of comfort with the tool and solicit feedback. It increases their sense of ownership and will lead to increased adoption. If the users don’t bother creating/maintaining content all you have is a stale portal that shows the local weather and displays the company stock price and you spent $200k for implementing it.

     
     

  5. Oh, while we are at it… – A good MOSS implementation forces businesses to look at their Line of Business applications and evaluate their integration within the portal. A lot of stakeholders use this opportunity to get carried away and want to
    1. Surface every Line of Business database on MOSS
    2. Integrate with every LOB into MOSS and setup 2-way synchronization
    3. Improve their Active Directory infrastructure and reorganize their domains
    4. Virtualize their entire server farm
    5. Upgrade SQL versions and their LOB applications during the portal implementation

    Now when one of these sub-implementations goes south, MOSS is blamed for the failure. It is important to have a phased rollout for the portal for organizations that have the above set of requirements. It is not rocket science to not perform a Peoplesoft upgrade while you are trying to surface the data on your HR portal.

    Click here for Part 2