August 2010

Monthly Archive

“It takes dozens of microprocessors running 100 million lines of code to get a premium car out of the driveway, and this software is only going to get more complex.” ROBERT N. CHARETTE, IEEE

Those of you familiar with InnerWorkings will know that we talk about helping our customers “build great software organizations”. The core elements of our company vision include a focus on developer skills, individual and team productivity, as well as rigorous software processes, with the objective of helping our customers build software of very high quality.

Producing high quality software products requires a high performing organization at every stage of the development life cycle. Inherent in all of this is the notion of “consistency”. Faced with the staggering ubiquity and the complexity of contemporary software implementations, organizations building software need to be consistent on a global scale. They need to have common practices across distributed teams, better means of collaboration, more visibility into their capabilities, and ways of establishing baselines as the basis for measured improvements.

There is just so much software out there now and its footprint will continue to increase over time. The cost of fixing stuff when something goes wrong is horrendous. Just to compete, the standards in software companies need to be higher and higher.

I was reminded of this forcefully while reading the article This Car Runs on Code — my thanks to Paul Kedrosky for bringing it to my attention. Here are some of the key facts stated in this fascinating article:

  • While the avionics system in the F-22 Raptor contains about 1.7 million lines of software code and Boeing’s new 787 Dreamliner requires about 6.5 million lines of code to operate its avionics and onboard support systems, a new premium-class automobile probably contains close to 100 million lines of code, controlling everything from your brakes to the volume of your radio
  • More than 80 percent of car innovations come from computer systems, and software has become the major contributor of value (as well as sticker price) in cars
  • For a premium car, its software alone represents about a billion dollars’ worth of investment
  • Approximately 50% of car warranty costs are now related to electronics and their embedded software
  • Within 10 years, some experts predict that the percentages relating to the cost of electronics as a percent of vehicle cost are expected to rise to 50 percent for conventional vehicles and 80 percent for hybrids.
  • It isn’t just the automotive industry that is experiencing the effects of software ubiquity, however. This trend is occurring in so many industries today – think about the expanding role of software in the military, aviation, and financial services industries for example. Software is everywhere and its influence is extending into every dusty corner of the modern economy.

    In this context, it’s clear (to me at least) that software quality can no longer be treated in an ad-hoc way or left unmeasured as it often is today. There is simply too much economic activity and underlying business value at stake. Every organization, from a small business to a large enterprise, needs to put into place scalable, repeatable and data-driven processes and commit to them. Just to stay alive.

    Add this post to: del.icio.us:This car runs on code digg:This car runs on code spurl:This car runs on code simpy:This car runs on code newsvine:This car runs on code blinklist:This car runs on code furl:This car runs on code reddit:This car runs on code Y!:This car runs on code google:This car runs on code technorati:This car runs on code stumbleupon:This car runs on code windowslive:This car runs on code

    When buying almost anything, there is key functionality that we all use immediately. However, there are always a number of other features that are useful, cool or extend the value of the purchase we made in some way. Too often these benefits are not realized and this is particularly true with enterprise software purchases.

    Enterprise Software ValueThe key to maximizing value for enterprise software is customizing the solution to take full advantage of as many features as possible, not just the primary ones. Key functionality will always get used, but taking advantage of other features will often improve value, save time, and add to the overall user experience. You will have to invest more time upfront, but that investment will more than pay for itself in increased benefits and ease of operation.

    While ROI is a key factor in making an enterprise software purchase, I am often surprised at how little time some companies invest in order to really maximize their ROI. Think about the smart phone you bought not too long ago. Of course, it can make and receive calls, send texts and emails — all primary functionality that you used immediately. Was that enough value to purchase the smart phone? Probably, but the other compelling reasons to get one were to listen to music, post to social media sites, and run apps to check weather, home prices, sports updates, GPS navigation, etc.

    Many of us have customized our smart phones to far beyond the primary function of a basic communication device. Secondary capabilities are built in by phone vendors but it is up to the individual to unlock and activate them. I argue that enterprise software is no different in this regard – in fact, the benefit of activating “hidden” functionality is much greater.

    I know that the most successful customers using InnerWorkings’ .NET Learning Platform really leverage those additional features. During the sales/evaluation process, those customers are keen to explore all of the available functionality, and make great efforts to use it in their deployment efforts.  Customers that fail to delve beyond the primary functionality are often less successful in their deployment and leave substantial value on the table as a result.

    The simplest thing you can do is ask your sales person or sales engineer for assistance. A professional sales team does not disappear once the sale is completed. We want you to deploy our solution successfully, use as much of the functionality as possible, and be a happy reference customer. We are domain experts in the capabilities of our products and we can offer suggestions on successful deployment techniques. Granted, we are good at buying lunch and constantly calling you (!) but we do offer other value as well.

    Activating all the available functionality in enterprise software does require someone to take ownership of the deployment and identify key value points for your organization.  Getting feedback from other stakeholders is important but it shouldn’t become a roadblock to implementation.  Too often things don’t happen because consensus can’t be reached and the default is to just use the basic functionality. No decision is often the worst decision, so it’s important for someone to take the initiative for the deployment.

    Changes can always be made but temporary can become permanent pretty quickly, so implement as much functionality as is reasonable upfront. Anyone can make changes, leaders make decisions. Senior management is always looking for go-getters that show initiative, take ownership and provide leadership. Not only will owning the implementation improve the ROI and maximize your value, it will also likely get you noticed.

    Add this post to: del.icio.us:Getting more value from your software purchases digg:Getting more value from your software purchases spurl:Getting more value from your software purchases simpy:Getting more value from your software purchases newsvine:Getting more value from your software purchases blinklist:Getting more value from your software purchases furl:Getting more value from your software purchases reddit:Getting more value from your software purchases Y!:Getting more value from your software purchases google:Getting more value from your software purchases technorati:Getting more value from your software purchases stumbleupon:Getting more value from your software purchases windowslive:Getting more value from your software purchases

     VS 2010The April release date for Visual Studio 2010 and the .NET Framework 4.0 was accompanied by the usual “hubbub” and evangelical zeal that we’ve come to expect from Microsoft.

    It’s fair to say that initial feedback on the changes in the Visual Studio IDE and enhancements to the underlying .NET Framework were broadly positive.

    However, it really takes a few months for adoption to ramp up and the real story to emerge from developers in the trenches, so to speak.

    In today’s blog, I’m going to focus on our latest .NET training release titled New Features in C# 4.0. While InnerWorkings is a longtime Microsoft partner and we support adoption of the .NET Framework in many ways, we try to keep our heads about new releases.

    Our community expects us to focus on the key features that professional developers need to master. So consider us “fair and balanced” but not in the Fox News kind of way…

    So what’s important for developers in the latest release of C# and why should you care about it anyway? Let me list the core areas of C# 4.0 that we think developers should focus on:

    • using the dynamic keyword as a data type that supports runtime lookup
    • using optional parameters for constructors and methods
    • explicitly naming an argument being passing to a method
    • working with the enhanced COM Interop features in C# 4.0
    • dynamically importing COM APIs and deploying without Primary Interop Assemblies
    • skipping the passing of optional parameters when making calls to COM objects
    • omitting the ref keyword when calling a method on a COM object
    • using the built-in .NET interfaces that have been made variant in .NET 4.0
    • making generic interfaces and delegates covariant

    And that’s really all there is! Our latest Drill on New Features in C# 4.0 is available to all InnerWorkings enterprise customers from today — contact us if you’d like to learn more about our subscription options for developers and software teams. We’ll be adding more .NET 4.0 training (think ASP.NET MVC 2) to the bundle before making it available from our web catalog, so watch this space.

    In the meantime, you should check out this Channel 9 video titled Inside C# 4.0 for a behind-the-scenes look at how C# 4.0 evolved at Microsoft. Enjoy!

    Add this post to: del.icio.us:New Features in C# 4.0 digg:New Features in C# 4.0 spurl:New Features in C# 4.0 simpy:New Features in C# 4.0 newsvine:New Features in C# 4.0 blinklist:New Features in C# 4.0 furl:New Features in C# 4.0 reddit:New Features in C# 4.0 Y!:New Features in C# 4.0 google:New Features in C# 4.0 technorati:New Features in C# 4.0 stumbleupon:New Features in C# 4.0 windowslive:New Features in C# 4.0