Inspiration from Dyson CEO and West Monroe Partners

A little while back I read a great interview with Dyson Chief Executive Max Conze that really made me think about my career and the firm that I work for: West Monroe Partners.  In this article, which really was fascinating to me considering how innovative Dyson is and how high profile their founder is, Mr. Conze states: “The best you can do is hire a lot of smart young people, give them a lot of responsibility and they’re going to grow on it”. 

That is a truly profound statement – and the exact opposite of how most organizations work, but not all.  Nowhere in my fifteen year career have I seen this done more effectively than at West Monroe Partners, where I have been for nearly three years.  We hire bright young people and very quickly they have a lot of responsibility and a lot of freedom.  This helps them develop extremely fast and I find myself trusting people ten or more years my junior with tasks I hardly trust myself with. 

Dyson is obviously doing amazing and innovative work, and so is West Monroe.  I am really coming to realize it is because the way we hire and the people we hire that we are able to be so agile and so innovative.  It can be very tempting to not delegate to junior staff, but is important for them, for you, and for your company to do so. 

Mr. Conze credits his military background with this philosophy and it reminds me of a quote by a military legend: “Never tell people how to do things. Tell them what to do and they will surprise you with their ingenuity” – General George S. Patton Jr.

I really am proud and fortunate to work at an organization that places such value on its people.  At the end of the day it is all a consulting firm has.  We do hire smart young people (and smart older people like me as well).  And we’re hiring now!

 

The biggest change in BizTalk 2013 and how to undo it

As I said earlier, been doing a lot of BizTalk lately and I’m definitely loving the BizTalk 2013 changes. The XSLCompiledTransform is one of the things I’ve been really happy to see. I’m planning some real Side by Side benchmark numbers for a blog soon, but this is a feature that I think came out of research Paolo Salvatori wrote about in How To Boost Message Transformations Using the XslCompiledTransform class. Paolo you are my hero.

I was recently working on a very large very complex BizTalk implementation that is being upgraded and stumbled upon some very strange behaviors I could not fully understand. The first issue was that maps that I have good reason to believe are exactly as they are working in production now started to fail during testing. Eventually I tracked down that the maps used inline C# in scripting functoids and did not mark them as public. At first I thought the code must have been changed in these maps, but it hadn’t (thanks ILSpy). So I tried the maps back on an older BizTalk machine and sure enough, they worked. I know the XslCompiledTransform replaced the XslTransform class back when .NET 2.0 came out (and was happy as I did a lot of XSLT and XML in .NET before my BizTalk days). I also know BizTalk 2013 uses this much faster transform class. I decided to check out Migrating From the XslTransform Class on MSDN. Sure enough there was my answer under Extension Objects and Script Functions:

XslCompiledTransform introduces two new restrictions on the use of script functions:

  • Only public methods may be called from XPath expressions.
  • Overloads are distinguishable from each other based on the number of arguments. If more than one overload has the same number of arguments, an exception will be raised.

So this was a bummer, but thanks to some handy RegEx skills I found all the places this was an issue in every map in the very large solution quite quickly (one of my computer science professors is smiling right now).

So life was good, or so I thought. Deeper into testing some results were not as they were expected. I looked at these issues and again ended up looking at maps with inline C# in scripting functoids. Testing these maps on my workstation I could see they were not working as I had expected. It seemed like implicit Boolean conversion issues were happening. I changed a few maps and went on with my work, but eventually the scope of the issue dawned on me. This wasn’t some maps, it was all the maps that used inline C# (which is something I don’t like anyway) with Boolean parameters. Now I had a real problem. I reached out to the super-secret group of BizTalk experts I’m a part of, but I must not have used the proper secret handshake as no one replied.

I got my testing to the point that I could walk through the maps, which was complicated by the fact that they also used external classes (thank you Maxime Labelle for Debugging XSLT Stylesheet with Custom Extension Objects from Within Visual Studio). I ended up dropping the method calls and extension objects and being able to reproduce this just inside of Visual Studio with XSLT debugging. The strange part was that the value in question would be a Boolean in the XSLT debugger. The BizTalk Mapper turns all such parameters into strings (for good reason) and even debugging the string($valx) in Visual Studio returned the correct value, but as soon as the .NET method was invoked the parameter would be passed in as true – no matter what, even if it was false.

Eventually, exasperated I turned to a Premier Field Engineer from Microsoft who I had crossed paths with. I showed him what was happening and he confirmed I hadn’t completely lost my mind – or at least not on this issue. He soon came back to me with this: http://support.microsoft.com/kb/2887564/en-us which despite my best Bing-ing I was unable to find myself (I even tried that other search engine out of desperation, but nothing). Here was the answer! As I read on I grew slightly concerned that this would be a “by design” sort of answer like other software companies give, but this is Microsoft! The company whose biggest weakness is staunchly maintaining backwards compatibility IMO – another blog perhaps. But there was hope, further in the article was my salvation:

It is also possible to configured the BizTalk 2013 Transform Engine to use the older XSLTransform class. This approach is not recommended since the environment will lose the many performance and memory usage improvements provided by the XSLCompiledTransform class. This change can be made by adding DWORD UseXslTransform with value 1 at the following locations:

  • For 64 bit BizTalk host instances: HKLM\SOFTWARE\Microsoft\BizTalk Server\3.0\Configuration
  • For 32 bit BizTalk host instances and Visual Studio’s Test Map functionality: HKLM\SOFTWARE\Wow6432Node\Microsoft\BizTalk Server\3.0\Configuration

Not only was there a way around it, it was already built into the product! No patch, or hotfix, or anything!

I know I’m losing performance with this, but I’m also not changing dozens or hundreds of maps either. BizTalk ran fine before and will run fine still for these needs.

Thank you to the BizTalk development team for doing this right and to that PFE who saved my bacon.

Configuring the AS2 Runtime on BizTalk 2013 – one small caveat

I’ve been doing a lot of BizTalk lately, even by my standards, and a lot of BizTalk installations as well.  I’ve blogged and written (in BizTalk 2010 Patterns) about how important it is to change the default configurations that come out of the BizTalk Configuration Wizard.  The most important item is to create separate BizTalk hosts for processing.  I normally do at least four: send, receive, processing (orchestration), and tracking.  In keeping with this I also create handlers for all the adapters for the send and receive hosts.  I also remove the handlers for the default BizTalkServerApplication host. 

 

This has led me a small but important detail.  Although BizTalk easily accommodates configuring further features later (like EDI or BAM), I did run into one issue.  The AS2 Runtime configuration creates a SQL receive location (Classic SQL not the WCF kind) and it expects, nay demands, the default host to have a receive handler for the SQL Adapter.  This wasn’t that hard to track down, but could cause headaches for others so I thought I would share. 

Surface Pro – Deep Dive

In the past few weeks I’ve had the time to put the Surface Pro through its paces and decided I would write about this user experience in depth.  I’ve already shared my overwhelmingly positive views of the Surface in previous write ups covering both the retail experience / packaging and the hardware design.  Now it’s time to get into the nitty gritty of using the Surface Pro.

Background

Before we start a little background is probably in order.  First off I am a professional software architect so I spend a lot of time with computers and use some heave hitting tools like Visual Studio and SQL Server (oh and yea, I’m a BizTalk MVP).  I also work for a consulting firm which means that in addition to my ample keyboard time programming I spend a considerable amount of time in PowerPoint, Excel, Word, and Outlook – and Lync.  I also speak frequently at conferences and travel extensively adding to both my presentation and portability demands.  More often than not over the last ten years I have carried two laptops with me at most times.  Today my work rig is a Lenovo W530 with an extended battery.  This is a pretty heavy hitting machine with an i7 quad core, 16 GB RAM, and a large SSD.  Oh it also has a Kepler GPU in it, which I actually use for GPU coding – not gaming.  I even spoke at GPU Technology Conference recently in San Jose.  It is definitely a workhorse, but it weighs in excess of ten pounds with the charger (which is so large it has rubber feet on it, really).  In the past I have normally purchased my own hardware relying on Fujitsu for very small, but very powerful laptops.  Today we might call these ultrabooks, but the Japanese have been making these for more than a decade and they probably still make the best hardware in this space.  As a result I’m used to 10-12” displays on small and powerful machines with excellent battery life.

Setup

So getting the Surface Pro going was quite easy.  The instruction card is a fold out pamphlet of a few pages and less than about 300 words total.  Almost all directions were just pictures.  Turning on the device walks you through a setup process that could not be simpler: select language, accept license, personalize the look and feel.  Then enter a username & password or Microsoft account of some sort (and an internet connection if you have it).  I was impressed by the fact that despite not having an internet connection working when I initially configured the machine it was easy to later tell it my Microsoft account and it just worked without any new Windows login or different library settings.  This is a challenge I’ve had before with Windows tablets (my old Q550) – changing user accounts can mean all new libraries and settings and is generally something I try to avoid.  Thankfully this was not an issue.

Windows 8 & Surface Pro

The user interface of Windows 8 really comes alive with the Surface Pro.  It has the power in both CPU and graphics to keep up with fast and fluid touch motions and provides a very natural experience.  Even some of the same apps like the PDF reader that got complaints in the Surface RT are fast and responsive on the Surface Pro.  I particularly like the deep use of context based gestures and zooming that happen in Windows 8 apps.  This seems to go much farther than any other touch enabled platform at this time.

Admittedly the gesture stuff can take some getting used.  I don’t think this is the fault of the OS or device, but really of the user (in this case me).  The technology we live with really begins to program us over time and I’ve certainly been programmed quite a bit over the years.  Despite heavily using touch devices for a decade it’s been in a point and click world.  Even phone UIs, which are touch centric, are still within a small touch box and generally made for single handed operation.  Windows 8 apps bring new paradigms with them that expand beyond what is being used in any other platform at this time and sometimes you just need to experiment to find what they are or how they work in a specific app.  It’s not always apparent what gestures will do what in a Windows 8 app.

I actually had this happen while writing this piece.  I was using the Maps app which is a full Windows 8 app not a legacy desktop app.  I was zooming in and out of areas in Japan that I will soon be visiting and wanted to change the perspective.  Using the same two fingers I had zoomed with I simply rotated the map and my perspective changed from the North-up orientation that is typical of all maps into whatever direction I wanted to see it from.  A small compass shows which direction is north giving me a clear visual cue as to what I was looking at. This was really a unique experience for me as I never would have thought to do this if I hadn’t accidentally turned my hand while zooming.  The result was a smooth fluid transition with a bounce forward visual cue to alert me that I could keep moving in this gesture.  I was impressed.  Especially when I took this out in the field – where I’ll would imagine the maps app will be frequently used from a table.

I think someone who had never seen any computing device before, like a child, would probably have a lesser learning curve because they don’t have the contextual box they’ve been living in.  I still find myself thinking inside the non-touch box that most of us live in.  I am impressed, however, with at least how some of the apps are taking advantage of the immense capabilities of Windows 8 to leverage new touch paradigms.

The Desktop

There is really nothing new here.  Being a true Windows 8 laptop all current desktop applications run as you would expect in the Surface Pro.  For me this mostly means Office.  I have installed Office 2013 and must say I like the new interface a lot – though again I did have some learning curves with this as well.  That said it is quick to settle into a much more productive flow and I definitely like the new Office experience a lot.

I have chosen not to install Visual Studio on this machine despite having the ability to do so.  Like I mentioned before, I still carry a full featured desktop replacement with me (though currently in my roll aboard now – yes, I’m on a flight writing this).  I like the fact that this machine boots in less than ten seconds and want to keep it that way.  Also I’m increasingly using Azure Virtual Machines to host my development environments which I just RDP into and everything works fine.  Since most of my domestic flights even have internet that tends to work well for me.

I will say that the pen works pretty well in Desktop mode and Office fully supports inking in all applications.  I still use the mouse quite a bit though, which is why I purchased the wedge mouse with the Surface Pro.  My desktop interaction is now basically multimodal in that I often touch (which is supported fairly well) and use the touchpad, pen, or mouse depending what I’m doing and what is closest at hand at the time.  This is actually the first serious indicator of how different this device is from other computing experiences.  The pen, magnetically affixed to the right side of the device is easy to grab and use – so is the touch screen.  I’ve stopped using the zoom bar in Office as I can simply touch the screen and accomplish the same thing (which I just did to make this font larger for reviewing).

I will agree with some previous reviews that the amazing resolution of this device can make some programs hard to read or use.  The place I see it most is in Remote Desktop where the increased font size settings don’t translate over to the remote machine.  This can make fonts quite small, but is a small price to pay for such a crisp and amazing display.  Since few people really use RDP (I think mostly IT types) I don’t consider this a major issue.

Charming Indeed – Search & Share Contracts

Perhaps the features of Windows 8 that get the least media coverage, but stood out to me when I first learned of them, are the charms in Windows 8.  By this I mean the deeply integrated extensibility features of the Windows 8 operating system in the RT / non-desktop mode.  Windows 8 allows something significant that other touch focused operating systems (and yes, I am talking about iOS) do not: namely the ability of apps to share data and actions with each other.  The Search and Share charms allow any app developer to build these capabilities into their app.  The result is that in the Windows 8 IE app I can share a page with Email or People (or Twitter in my case).  If you’re on a page that doesn’t have Tweet icon you can still share it just as easily thanks to IShareable.

Unless you have a good imagination this may not seem like a big deal at first, but it really is.  In the iOS world only Siri can share information between apps and that’s not really sharing or searching between them, it is just Siri being able to access them.  In Windows 8 any app can announce itself as Shareable or Searchable – doing so is extremely easy as well.  As the Windows app ecosystem grows (which is certainly happening already) this will only become more significant.  It becomes easy to search inside of application data, not just inside files, which really changes search at a fundamental level that is still in its infancy.  This will eventually make for a profound change in our computing experience.

Again, this is an opt-in approach meaning that if you don’t want your app (perhaps a banking or personal finance app) to share or be searchable, it will not be by default.

One Note

If nothing else OneNote makes this entire SurfacePro package worthwhile – seriously.  People may think they can ink on their iPads and other passive digitizer devices, but they’re wrong.  They are basically using markers or crayons on a two state canvas: their ink can be on or off.  The active digitizer of the SurfacePro is truly amazing.  I have used other active digitizer tablets before, notably the Fujitsu Q550, but they’ve lacked the horsepower to really use InfoPath well.  This is most definitely not the case with the Surface Pro.

For instance I take nearly all of my meeting notes in OneNote and also have been using it to plan my presentations (in the style of Presentation Zen – Garr you rock!).  I find that the Surface Pro makes both of these activities even more natural than before.  Not only is the inking experience fluid and easy to use the zoom experience is amazing as well with zero lag.

Digital Ink on Surface Pro

Digital Ink on Surface Pro

The right click feature I have come to love on the pen makes highlighting and moving content in OneNote very easy and natural.  Again this is really improving the usability of InfoPath – a tool that is good with a keyboard, but outstanding with digital ink.  I have completely stopped carrying notebooks – which is something I have done consistently since university.  Not clear in the screenshot above is that I also uses color extensively in my notes and InfoPath does this well.  Interestingly it is this ability of OneNote to use screen shots, web pasting’s, and digital ink that really makes it feel like my old notebook.  The palm block technology works very well and this is by far the best digitizer I’ve ever seen on a tablet.

Conclusion

As a general computing device the Surface Pro is really a capable device.  For a person who lives in the Microsoft ecosystem it has a lot more to offer than the Surface RT or any other tablet on the market at any price.  In fact, it is a totally unique form factor and computing experience.  It is a quality hardware platform with an exquisite user experience.  This device really makes Windows 8 shine and has taken over almost all of my daily computing responsibilities (including writing all of my Surface blog posts and PowerPoint presentations).  This is the best technology purchase I have probably ever made.  In the month since I bought the Surface Pro I have had few issues and am even considering putting Visual Studio on the device.

Presentation Notes Overview

Presentation Notes Overview

Digital Ink in Surface Pro

First Impressions of the Surface Pro

After being so pleased with the packaging of the Surface Pro I was eager to start using the device and formulate an opinion about my experiences.  This write up will mostly be about my hardware impressions as I am still formulating my broader experience opinion.

Hardware First Glance

The device itself is solidly built and sturdy.  It feels very good in the hand with no flex at all.  The weight is substantial, but not in a bad way.  Anyone who is comparing the SurfacePro to any ARM based tablet really is missing the mark by a long shot so the weight issue isn’t as big a deal as they may claim.  The two pounds actually feels lighter than I thought it would, possibly due to the evenly distributed balance. The device appears to balance center from both the X and Y axis (yes I tried this, over a soft pillow).  The bevel around the edges is just long enough to handle at any angle without interfering with the screen (which is a minor issue anyway and a non-issue while using the pen – more on that later).  That said the Windows button can occasionally get in your way and may be something I disable in the future.

The stand, which flips out of the back of the surface, is solidly hinged and fits into the design of the venting system perfectly by continuing the small line that is the vent.  Even after a week I sometimes can’t tell which side the pops out when I’m looking at the device from the back.  The only real visual cue is that the rear camera lens is in the fixed part of the backing.  The extended stand keeps with the entire visual motif of the Surface.

The visual impression left by the SurfacePro is stunning (as it is by the RT).  It is a sleek and ultramodern design that extends the clean lines of a Mies van der Rohe creation with contemporary rounding where appropriate.  The result is a device that looks sharp and draws both the eyes and the hands in.  Everywhere I have taken this thing people notice it.

Views of the SurfacePro with the stand and Type keyboard

Views of the SurfacePro with the stand and Type keyboard

The charger that came with is also pretty slick and follows the same cubic, but rounded design approach.  The charger is very light and includes a USB charging port that I had read about.  This is a great addition and something I’m surprised to have not seen before.  Not only does this free the single USB 3 port on the device for other duties, it is a fast charging port as well.  I immediately threw my USB/AC adapter from my Nokia Lumia in the parts bin after using this once.  The charger attaches to the surface via a magnetic strip on the right side of the device (the same place the pen does).  It clicks into place easily and fits well.  It’s a unique design I have grown quite fond of.

The Pen

Now about that pen.  I would not call it a stylus; it has the real size, feel, and balance of a true writing instrument; although it is slightly lighter in weight.  It is batter free (I believe) and has several design features I have already come to appreciate.  First is the blue tip.  It looks like the tip to a ball point pen and gives a clear visual cue that this instrument is ready to write.  Picking it up it almost begs you to do so.  Another is the right mouse click button which is vital to using legacy applications in the Windows desktop (and OneNote as I’ll cover another time).  The right click button is long and sticks out enough to be noticeable but not too much to be in the way no matter what side to hold the pen from.  Better still the right click action requires a just firm enough press to not inadvertently trigger right clicks while writing.

Moving further aft you come to a curious inclusion for a digital writing device: a pocket clip.  Aesthetically this adds a nice real world feel to the pen as it is a feature found in nearly all real pens.  I think it helps drive home how central this is going to be for you and makes it easy to clip into your shirt or coat – which I must admit I have done several times already.

At the end of the pen is perhaps my favorite feature: an eraser.  I’ve never had a stylus that included this before and I have say it is awesome.  It requires a physical press onto the screen, but works great.  I will have a complete post on how significant the ink experience on the SurfacePro is shortly, but I can say this already – it is the key to making this device into a must have piece of hardware for me.

The Keyboard

I have heard many criticize that the SurfacePro does not come with one of the keyboard options.  I am a heavy typer and definitely could not imagine this machine without one of its only currently available accessories.  The two options for keyboard are Touch and Type.  As I am a very heavy type user I opted for the Type variety.  It is only $10 more than the Touch keyboard and I am glad the device did not come with a keyboard that I did not want.  This is not to say the Type keyboard is bad.  I felt at home on it within ten minutes in the store (though it did remind me of when I put my dog’s winter shoes on him; he walks fine by he lifts his legs unnecessarily high for the first few steps – hey there’s a lot of salt on the streets here, he does need shoes some days).

The keyboard concept for the Surface is really quite unique and very cool.  The magnetic attachment mechanism is every bit as good as you have probably heard – and yes, it does make that noise from the commercial if you just let it go.  It guides right in and is strong enough to hold steady from either end of the merged machine.  Being magnetic it will not wear and weaken over time.  Importantly the keyboard is designed to be attached and detached quickly, easily, and often.  This starts to get into some of what I think people may be missing with the SurfacePro: it is not a laptop replacement – it is a whole new category of computing experience.  An experience I am just learning now.

The Touch keyboard is beautiful.  It has excellent feedback that is short and responsive and feels like my favorite laptops did (all Fujitsu ultra-portables by the way).  Again the keyboard also fits the design of the Surface itself.  The touchpad is slightly small, but is fully functional and the best design in the space available.  As much as some have criticized the inclusion of page up/down, home, end, and other keys I can’t disagree more.  The keyboard is perfect.  I already regularly write several thousand words per day on it already and am glad to have these buttons.  The backside of the keyboard was unexpected for me.  It is a cloth like material that is not matte black like almost everything else on the Surface: it is charcoal.  It actually looks quite nice and makes the Surface almost look like a book or portfolio when closed over it.  The material provides very good traction for the Surface when deployed as a keyboard.  I am slightly concerned about cleanliness over time or staining it, but it feels rugged and probably is treated to resist some things.

Type

Textured back of Surface Type keyboard

I have heard some people say that the device is hard to balance on your lap as a laptop.  Balancing the device is quite easy in my experience, but the keyboard is not as firm as the surface and has a give that I find uncomfortable / unsettling to use on my lap.  If I put my briefcase on my legs it works better.  Also, I don’t type with any laptop on my lap very much as it is far too precarious for my tastes and doesn’t give me somewhere to use my mouse or spread out.  Normally when using the Surface without a table I just take the keyboard off.

Surface Edition Wedge Mouse

Although I can live with the touchpad I did buy the Surface edition Wedge Mouse, which was a great investment.  I don’t like using any touchpad when I’m designing PowerPoints or doing Visio or BizTalk work.  This little mouse is small and works great.  I’m still getting used to basically having a touchpad on my mouse, but so far it is a very good device.  I already like the scrolling feature a lot.

The Screen

In most computing devices the screen is sort of the make or break component.  I had high hopes for this screen and I have to say the SurfacePro makes it.  The resolution is amazing and crisp and the ten touch points of contact are stunning.  To anyone thinking that the iPad/Air has a higher resolution keep in mind that this is also an active digitizer (neither of those devices has that).  I guess the first thing people would look at would be a movie and I decided I would use this as a gauge too.  I bought Tron Legacy and watched it early into owning this device.  This is definitely a visually compelling movie that showed this screen in all its full 1080P glory.  Coincidentally Tron Legacy has a design aesthetic that fits closely with the Surface.  The movie looked better than on my TV – what can I say.

The screen is rather small (although all my Fujitsu Lifebook’s had similar size screens).  This is a format you can either live with easily or not, but again, this device isn’t made to be a one and only.  It is one of many devices you will likely have in your life and for most of what I do the screen is great.  If anything my main complaint is that when Remote Desktop-ing into servers the resolution makes just about everything too small (something that’s easily fixed anyway).

Speakers

The speakers on this device are what they should be.  Personally I only use speakers on anything when I’m alone or with one other person in a quiet location and these cut it for that purpose.  Anything else is headphones for me, generally so as not to disturb others.  I have my Jambox paired so when I want a little more oomph I go for those.  I’ve never seen any laptop that can beat a Jambox.

Battery

The battery life in this device is pretty good.  I haven’t changed any of the settings, but if you’re used to using a normal laptop then you will be used to looking for power every 4-5 hours anyway.  If I plug it in at lunch I’m set for the day.  I suppose some may argue that the RT (or the iPad) have a 10 hour battery, but that’s not really a valid comparison.  It’s actually like complaining about the gas mileage in your Ferrari.  The SurfacePro is a Ferrari and it actually has a pretty low price point for all that it is.

I am formulating my thoughts on using the Surface Pro and should have those complete soon.

Upcoming Speaking Engagements

This is a busy month for me.  I will be at both the GPU Technology Conference and Hadoop Summit Europe.  Both events are in the same week with my dates on March 19th and 21st respectively, which will make for fun travel  Both promise to be amazing conferences with a lot of knowledge share and I am honored to be a part of each. 

Being from the Microsoft camp as I am both my sessions will involve these technologies from a Microsoft context or standpoint.  In the case of GTC this will be using .NET to write CUDA (GPU) applications.  For Hadoop this will be using Hadoop within the Microsoft ecosystem (which if you have not noticed is a very large ecosystem). 

I’m very excited for both of these events and eagerly looking forward to them and the discussions and learning that accompany both.