Give Up Control, Think Distributed – DLD 2009 Summary

Events, Software Business February 6th, 2009

DLD09_New_RealitiesI  was very fortunate to get invited to the 2009 DLD Conference as a participant (Thanks to Yossi Vardi!). This was my first time at DLD and I can definitely say it has been the most amazing conference I have been to so far.

As defined by Steffi Czerny "DLD is interdisciplinary, creating interfaces and connecting people from the most different worlds." the conference’s “New Realities” theme encourages participants to discuss and formulates perspectives on markets following an eventful year, setting the agenda for 2009.

Or as Yossi Vardi defines it:

I told people that of my generation no one will understand instant messaging. And I was told my generation was already dead. But our generation has experiences the new generation does not have: real handshakes and real warmth of the hand. This still has to  move into social networks. And this is what we provide here: This old style feeling.

We invite you for 4 things:

  • to get food for thought
  • to make new friends
  • to play
  • to laugh

Think Distributed

So what is the new reality we’re living in? the repeating theme in most panels I’ve been to was the same:
We’re going through a fundamental change from centralized control (over content, decision making, …) to a distributed structure.

This change becomes very clear when you go over the following panels (and most other panels too):

All these panels talk about a new reality where, in order to survive, you have to give up on centralized control and go distributed.
On the 100 Million Uniques and New Media Models we hear about new distributed media networks that distribute information rather than creating and controlling it. On cloud computing we learn about technologies allowing companies to lose control over infrastructure for increased agility and lower costs, and on On Leadership we have the story of Best Buy that transformed its culture from “communicating at employees” to empowering their employees using social media tools.

Distributed Media

DLD09-NewMediaModelsPanelOn New Media Models we’ve heard from Jeff Jarvis who says that the future of media distributed – aggregating content from a lot of independent sources rather than controlling the creation of content in-house.
On his latest book, “What Would Google Do?” (which I got signed at the event. Thanks Jeff! :) )  discusses the importance of building a platform for content, handing over control to users to build and distribute content, making your distributed network larger.

Traditional media companies think centralized. They create and control content and then spend a fortune on advertising in order to try and attract us, the consumers, to their content. This worked pretty well for big online media companies, like Yahoo for example, so far.
However, consumer today are relying more and more on social, self organization tools, to collect, sort, filter and rate content. Tools like Digg, Twitter, delicious and Facebook replace the functions that content portals used to provide.

In this new reality media companies need to stop thinking of themselves as an end – a closed content site (or portal) users come to in order to find content – and start distributing themselves.
Google distributes itself. It has its widgets, ads, maps and videos embedded in millions of web pages that it doesn’t own and it is making its profit of this vast distribution network.
Another example for distributed content is Glam. On 100 Million Uniques, Samir Arora, CEO of Glam described his company the following way:

“Glam is a distributed network that recognizes the fact that people go to many sites as opposed to a few, and that is the fundamental change that is happening today. So instead of bringing people to one place, we find out where people go and are there.”

“with every day that was passing, fueled by Google, its easier to find more sites, as opposed to one portal.

Instead of producing women targeted content and competing with all the other women content producers out there, Glam finds the best women content producers out there (some are lone bloggers and other can be bigger media companies) and invites them to join its network. It then sells ads on those sites and shares it revenue with them. It also aggregates the best content of its network to Glam.com, where it sells ads at a higher rate and shares its revenues too.
Glam helps sites on its network by sharing technology and content, and delivering traffic (and advertisers) to its member sites.

Distributed Leadership

DLD09-OnLeadership Changing from centralized control to a distributed structure is not limited to the media and advertising world.
On the On Leadership panel we see how Best Buy made a strategic decision to distributing control to its employees allowing them to self organize and interact using social Web 2.0 tools.
By changing the company culture  “Less control from the top, more taking responsibility” the role of the CEO changes from  to defining a common goal, not way to get there, and relying the companies human capital to do what it takes to get there.
So some control over what’s going on is lost, but according to Best Buy CEO Brad Anderson, “this stuff builds energy. if people have self accountability and can do something that they helped created and love they got more energy. what a customer would get when he gets into that store is that he could tell whether that store has got energy and engaged employees serving him or not”.

So if there’s one thing I have to take from my  time at DLD 2009 its this: give up control, think distributed.

More on DLD:

Recommended session videos:

Tags: ,

No Hope for Traditional Media Companies?

Events, Software Business February 4th, 2009

DLD09-NewMediaModelsPanel The Internet is a media platform based on content from traditional media companies (Times Magazine, etc.) as well as content produced by its users – blogs, forums and other social communication platforms.

This vast new world of content is taking the lead from traditional media. Newspapers, Magazines and TV Channels are all loosing their audience in favor of the internet. Those traditional media companies who do develop strong internet presence are still having troubles as income from online advertising does not cover the decrease in income from traditional advertising and subscription fees.

The New Media Models (video) panel, on last week’s DLD conference, tries to deal with the question of business models that media companies can use to profit on the web.

When asked about what kind of new media outlet they’d start today, non of the panel’s participants would start a print newspaper or a magazine.

“I wouldn’t start a newspaper. There might be a place for a magazine to sit on my coffee table, but not for a NewsWeek or a BusinessWeek or a daily newspaper I think its absurd… I understand why the do it, revenues on print are so great vs. online but it has to go way” said Michael Arrington. According to Arrington we’re going to be consuming our news and other content online or on digital devices and once a certain threshold is reached it’ll no longer be profitable to print. “It doesn’t make any sense for news to be on paper because of its just the cost structure” he summarizes.

Jeff Jarvis said he would start a distributed content network, like Glam. According to Jeff not owning and controlling the data is what allowed Glam to literally explode to more than 110 Million unique users in 3 years. While content owners have to spend a fortune advertising to bring people in, distributed networks just go to where the people are. People today reach content via rating sites like DIGG or Twitter messages and no longer require central content portals to collect, sort, filter and rate content them. Jeff says that media companies need to start asking “How can we build platforms on which others succeed?”, they have to become platforms for content distributed around the web (like YouTube for example) rather than producing and controlling their own content.

On that same note, Arrington added that traditional media sites, who’s cost structure includes all kinds of expenses that do not produce content – like programmers, office space – can’t compete with an army of bloggers who blog from their home using their laptop and free software.

Carolyn McCall, who is the CEO of Guardian Media Group (representing the “traditional” media companies) confirmed the fact that income from the printing business is going down while internet income, even for a huge company like the Guardian Group, do not compensate for these losses. However, she also mentions that 25 million users use the Guardian’s web and that its income is 300 million dollars a year and that both numbers continue growing.

The panelist could not explain why advertising budget that are taken from the print versions of the media do not move in their entirety to the online advertising world, and they could also not find a definite business model to run media company online (even Jeff’s example for a distributed network – Glam – is still not profitable and taking VC money) but they all agree that print is phasing out and that there’s a need for a new model for online media and journalism.

Tags: , , , , , , ,

Creating an Attractive Internet Company – It’s All About Emotions

Events, Software Business February 2nd, 2009

DLD09_New_Realities How do you create an internet company\product that can get the attention of more than 100 million unique viewers a month?

That’s the tough question that Yossi Vardi’s was trying to find an answer to on his panel at this year’s DLD conference100,000 Million Uniques (video) – together with Glam’s co-founder Samir Arora, YouTube’s co-founder and CEO Chad Hurley, CEO of the Mozilla Foundation Mitchell Baker and Toby Coppel who is a VP at Yahoo!.

The answer, according to Yossi and the panel speakers, who all run companies with over 100 million users, is that having a good product is not enough; there has to be an emotional connection between the product and its users.

After discussing the process of starting, marketing and improving their products the panel’s conclusion was that users engagement is the result of an emotional involvement between the users and the product and others users and a feeling of participating in creation of something new.

A good example for that is Yahoo’s Q&A service that, according to Coppel, has more than 140 million users a month. Although most users are passive and only read the questions and answers, 5%-7% of the users write answers, and they do so without getting paid – they share their knowledge with the world.
According to Coppel, the emotional connection to a product is achieved by providing a platform to self organize allowing people to create and share knowledge and experiences and find other like minded people.

Baker explained that Firefox’s success is based on the sense of mission – to build a piece of the internet that is a public assert – which turns out to be an emotional goal for a lot of people.

And what about YouTube? Chad Hurley explains its success on the focus on creating a simple-as-possible user experience and allowing people to distribute content by embedding videos  – “We try to associate our easy to use service with our brand – YouTube – and to allow people to take that experience, take that video code to embed and place on their own websites and blogs so that people can experience it there as well and drive traffic back to our service. Beyond creating a service that adds value people need to connect emotionally to the brand that you’re creating”.

To demonstrate the importance of emotion, Yossi Vardi showed two YouTube videos of the aria Nessum Dorma. The first video, sang by Pavarotti only received about 9 million views while the second video, sang by Paul Potts, a hobbyist opera singer, received well over 40 million views.

Vardi later asked Hurley why the second video was so popular. “Well he’s good” was Hurley’s answer.

Tags: , , , , , , , , , ,

ASP.NET MVC RSS Feed Action Result

Software Development January 11th, 2009

Guy wrote a post about rendering an RSS feed on ASP.NET MVC using custom feed model classes and a view that renders the feed XML.

There’s a better (shorter) way for achieving the same result while leveraging on the Syndication mechanism built into .NET’s WCF.
WCF exposes the SyndicationFeed, SyndicationItem, SyndicationPerson classes which represent our data model.
In order to render this model WCF also exposes the Atom10FeedFormatter, and RSS20FeedFormatter classes that can render the feed to a stream, so all we need to do is integrate that into the ASP.NET MVC pipeline.

The ASP.NET MVC framework introduces a concept of returning an ActionResult instance as the result of Controller Actions.
This ActionResult object indicates the result from an action (a view to render, a URL to redirect to, another action/route to execute, etc).

ASP.NET MVC ships with several Action Results:

  • ContentResult – Simply writes the returned data to the response.
  • EmptyResult – Returns an empty response.
  • HttpUnauthorizedResult – Returns Http 401 code for non authorized access.
  • JsonResult – Serializes the response to Json.
  • RedirectResult – Redirects to another Url.
  • RedirectToRouteResult – Redirects to another controller action.
  • ViewResultBase (abstract) – Renders an HTML content as a result.
    • PartialViewResult (inherits from ViewResultBase) – Renders a partial HTML response.
  • BinaryResult (abstract) – Returns a binary response.
    • BinaryStreamResult (inherits from BinaryResult) – Writes a binary stream as a result.

So basically, to return a feed result all we need to do is define our own ActionResult implementation by deriving from ActionResult:

public abstract class ActionResult
{
    protected ActionResult();

    public abstract void ExecuteResult(ControllerContext context);
}

All we need to do is override the ExecuteResult method and write our data model to the output http stream using RSS20FeedFormatter:

public class RssActionResult : ActionResult
{
    public SyndicationFeed Feed { get; set; }

    public override void ExecuteResult(ControllerContext context)
    {
        context.HttpContext.Response.ContentType = "application/rss+xml";

        Rss20FeedFormatter rssFormatter = new Rss20FeedFormatter(Feed);
        using (XmlWriter writer = XmlWriter.Create(context.HttpContext.Response.Output))
        {
            rssFormatter.WriteTo(writer);
        }
    }
}

Now we can simply return RssActionResult as a result of our controller’s action.

Here’s a simple example:

public ActionResult Feed()
{
    SyndicationFeed feed =
        new SyndicationFeed("Test Feed",
                            "This is a test feed",
                            new Uri("http://Contoso/testfeed"),
                            "TestFeedID",
                            DateTime.Now);

    SyndicationItem item =
        new SyndicationItem("Test Item",
                            "This is the content for Test Item",
                            new Uri("http://Contoso/ItemOne"),
                            "TestItemID",
                            DateTime.Now);

    List<SyndicationItem> items = new List<SyndicationItem>();
    items.Add(item);
    feed.Items = items;

    return new RssActionResult() { Feed = feed };
}

… and that’s it!

A more elegant solution that leverages existing framework capabilities.

Related Posts

Tags: , ,

Is Windows Live Still Alive?

Software Industry January 5th, 2009

Originally published on Cloud Avenue.

About a month ago, Microsoft rolled out its previously announced 3rd wave of Windows Live Services refresh.

The purpose of the release was to position the Live Services as the central hub for everything you do online – the new Live Home shows input from your various services (Hotmail, SkyDrive, etc.) as well as an activity stream composed of your friends’ activities on both Live Services as well as other external services such as Twitter, Flickr and blogs…

Tags: , , , , , ,

A Year’s Worth of Popular Posts

Blogging December 31st, 2008

report  It’s the end of the year, and like most bloggers I decided to take a look at my blog’s performance over the last year…

My Top Posts (According to Google Analytics)

Here’s are my top 10 posts from 2008, as ranked by Google Analytics:

  1. The Dark Side of LINQ
  2. 99 Ways to Become a Better Developer
  3. Wordpress – 10 Tips and Recommendations
  4. Scaling Web Applications – Recommended Readings
  5. Developing a Robust Data Driven UI Using WPF – The DataModel
  6. Developing a Robust Data Driven UI Using WPF – Introduction
  7. Microsoft’s Next Killer OS is… SharePoint?
  8. WPF Screen Saver Template for Visual Studio 2008
  9. Google Applications for your Domain – Does it Measure Up to Expectations?
  10. How Do You Define "Good Code"?

Personal Favorites

The following are a couple of my personal, somewhat overlooked, favorites:

That’s it. All wrapped up and ready for 2009!

Tags: , , , , , ,

99 Ways to Become a Better Developer

Software Development, Tips December 5th, 2008

I encountered this post on my weekend reading. 91 Surefire Ways to Become an Event Greater Developer contain a comprehensive guide linking to all sort of blog posts providing insights on improving your skills as a developer.

While the list is very long and sometimes debatable it does have some interesting pointers. If you do nothing else, delve into item #8: Learn Programming by Not Programming referring to the following post by Jeff Atwood.

The topic in question is why some developers outperform their peers regardless of their accumulated experience:

But the dirty little secret of the software development industry is that this is also true even for people who can program: there’s a vast divide between good developers and mediocre developers.

A mediocre developer can program his or her heart out for four years, but that won’t magically transform them into a good developer. And the good developers always seem to have a natural knack for the stuff from the very beginning.

The answer lies in the quotes taken from Bill Gates remarks:

“The older I get, the more I believe that the only way to become a better programmer is by not programming. You have to come up for air, put down the compiler for a moment, and take stock of what you’re really doing. Code is important, but it’s a small part of the overall process.”

“To truly become a better programmer, you have to to cultivate passion for everything else that goes on around the programming.”

“The nature of these jobs is not just closing your door and doing coding, and it’s easy to get that fact out. The greatest missing skill is somebody who’s both good at understanding the engineering and who has good relationships with the hard-core engineers, and bridges that to working with the customers and the marketing and things like that.”

Eric Sink makes the distinction even clearer in You Need Developers, Not Programmers drawing a distinction between Programmers who are only excited about writing code and basically only care about doing that, and Developers who contribute to the software product in many ways.

The Great Programmer\Hacker Stereotype

You all know that guy (hell, most of us were that guy when we just started out, I know I was) – he has great technical skills, likes writing code and can spend hours within his IDE writing code that’ll make most of us scratch our head. Yet, he views the world only in one dimension – code. Business? that’s for the managers to figure out. Sales\Marketing? annoyances for others to take care of. Documentation? but the code is so obvious…Builds? Deployment? Configuration? …

Passion for code is a great quality. But as a specialist its all too easily digging yourself deeper and deeper into a skill you’ve already proven yourself to be capable at when you’d be better of using the time to cultivate other skills that are part of the process of making software – rendering yourself obsolete over time…

The great hacker is a one trick pony – he writes great code but that’s about it…
Most of these guys end up working alone as consultants or freelancers where they don t have to care about that other stuff, or they end up as programmers at some big firms where there’s more room for specialists doing specific jobs (Architects to architecture, PMs do project management, Programmers code…).
On the other hand, those who truly like making software, open up to the other aspects of software development.
When that change in mindset happens, that’s when you can truly grow exponentially…

So what do I do?

Ok, I guess you got the point… But how do you get started?  Here are my own 5 cents on the topic…

Read, Read and Read Some More…

We’re in an industry that is moving forward at a fast pace. Technology becomes obsolete every year and a half or so and as developers we have to constantly struggle to keep up. Books are not only great to help you keep up but also to expand your knowledge to other fields.
There are plenty of interesting books and blogs about, well, pretty much everything.
Here are some recommendations to get you started:

The Inmates Are
Running the Asylum

The Pragmatic Programmer

Made to Stick

Crossing the Chasm

The Innovator’s Dilemma

Eric Sink on the
Business of Software


(most of it is
available online here)

Oh and one word about programming books: the best ones are timeless, transcending choice of language, IDE and platform.
I try to stay away from them thick, heavy, language\platform specific references – most of them go out of date after a year or so anyway and most of the information there could be easily obtained elsewhere (online – Google, the product’s docs, blogs…)

Most programming big are just a waste of your time (and money…)

Contribute to an Open Source Project

Back in the days of Delphi I was involved in Project JEDI dedicated to exposing different APIs (especially the Win32 API) to Delphi developers.
I learned a lot working with the JEDI code base, documentation, samples and other team members.
Later when it was time to get drafted to the Israeli Army (we all have to do it at 18 here) the experience, credit and code samples help me land a (very) exclusive position as a programmer. Who knows where I’d be today if I didn’t qualify and had to serve as a combatant…

Contributing to an open source project is a great way to gain experience, learn and get better.
There are no job interviews to pass, degree requirements or commitment to working hours or schedule required – you can just join in and start submitting patches or contribute in ways other than code (submit bugs, docs, support, …).

You can learn a lot just from studying the code and interacting with your peers…

Contributing to open source shows dedication and passion – its a walking talking resume.

Get a mentor

Find yourself a mentor or mentors who can teach you about different aspects of the business. I’ve had several at SAP and talking with them proved to be an invaluable asset (If you’re reading, thanks! :) )

It doesn’t have to be official mentoring which is part of the person’s goals or job description. Many of your peers are experts in their field and they’ll be happy to show you around if you just show some interest…

Become a Mentor

Great developer are eager to learn… and teach. Can you pass you passion and knowledge to others?

You can also…

  • Open a blog about your experience, opinions, etc.
  • Start answering questions at stackoverflow.com and collect achievements

Land an Internship

Try getting an internship in a different role. When I was in SAP they had a special program allowing employees to apply for a ~6 month position somewhere within the company. The reason behind it was to get employees familiar with different aspects of the company. Maybe product management, marketing or sales in not really your first choice of profession but why not try it for a couple of month without the risk of going through a career change? How cool is that? I’m sure many large corporations has something similar and even if not, it can’t hurt if you come up with such an interesting offer to your boss…

Own a Product Area

Get ownership on some part of the product your team is working on. Weather a specific component or a vertical (like Security) you should be in charge of getting it done – from getting the definition done with the product\sales\business team, through UX, development, QA, etc…
There’s nothing better than learning about the process of software development through experiencing the entire cycle…

Innovate

Start something new. When working on Duet we’ve had many issues getting the thing deployed. So I made a tool for (myself mainly) our QA and RIG (regional implementation group – the guys who work with customers) to help diagnose problems. This later became the official Duet Support Tool and got its own dedicated development time. Is your product, development environment perfect? I’m sure not… find a need a feel the gap…

Why? If by owning a product area you learned about the entire development cycle, here you’ll learn about defining and “selling” to the team…

Bonus Reading…

Another link worth visiting is the one about the Metrosexual Developer. Funny and true… ;)

Related:

Tags: , , ,

WordCamp Israel 2008

Events November 15th, 2008

2mu7qWe’ll be at the WordCamp Israel 2008 convention tomorrow showing off some of the latest Nuconomy developments (and of course, our WordPress plugin).

Here’s Niv surveying last year’s visitors:

 

See you there!

Tags: , , ,

Touch Panning (Kinetic Scrolling) in Windows 7

Software Industry November 14th, 2008

If you like the scrolling functionality as implemented in the iPhone (and Zune etc.) you’ll be happy to know its part of the Windows 7 operating system and implemented for anything with a scrollbar.

panning_tab

More Windows 7 goodies on Rafael Rivera’s blog

Tags: , , , ,

Microsoft Updates Its Windows Live Services

Cloud Computing, Software Industry November 14th, 2008

(Cross posted from CloudAve)

Microsoft announced today its rollout plans for the 3rd wave of Windows Live services.

The goal of this latest release wave, according to company officials, is to simplify the use of the offered services and unify the user’s entire online experience into the Windows Live interface.
Microsoft is planning to rollout the new services, currently in beta, to the public within the 1-2 months timeframe.

Windows Live Goes Social

One of Microsoft’s main emphasis with the current wave of services is on social networking between users using its services.

Microsoft finally figured out that its Live Messenger with about 268 million users worldwide, is by far the most popular instant messaging software in the world, is actually a social networks. With the new release, your Live Messenger contacts are now your Friends and you can see aggregated information about their activities on the net.

Very much like Plaxo, FriendFeed etc. Microsoft allows users to bring into their profile content they create in all sorts of services on the web (Live Services, Flickr, LinkedIn, blogs and RSS feeds, …) and share it with their friends and colleagues.
When users add photos, write reviews, and update their profiles directly on Live.com, that content will be put into their activity stream as well.
This activity stream is exposed in all sort of ways throughout Microsoft’s services interface.

For example, Microsoft’s new Live Home portal shows the latest events in your social network. When emailing a friend or chatting on Messenger you’re also able to interact with that friend’s activity stream and more…

Not just for private consumers…

I’ve been told that all these new service updates will not skip Windows Live Domains used by universities and organizations to create a personalized version of Microsoft’s services.
If that really the case, having all these new social capabilities as part of its domain offering can be amazing for collaboration and communication inside the organization.
While Google doesn’t seem to care about its Google Applications for Your Domains customers its good to see that Microsoft is going forward with Live Domains.
This latest update may just be the final straw I need to make the switch to Live Domains…

Where’s Live Mesh?!

It will be really interested to see where Live Mesh comes into the picture in regards to all of these Live services.
Live Mesh should be the glue bridging between Microsoft’s online services and its offline applications and devices (S+S) allowing users to sync all their content- contacts, photos, events, favorites, etc. – across devices and services.
Unfortunately, there’s no clear answer for that…

During the launch we’ve only heard about Live Sync allowing users to sync photos across computers. Some sources say its an incarnation of FolderShare and in any case it doesn’t seem to be based on Live Mesh technology.
With Live Mesh being one of Microsoft’s core platform offering its really hard to understand why we need to have Live Sync too…

Other notes…

  • All the services are released simultaneously in all countries and in 48 (!) languages.
  • Windows Live Skydrive size limit has changed from 5GB to 25GB
  • Windows Live Hotmail looks and feels a lot better to use.
  • I’ve uploaded all the screenshots of the new services to my SkyDrive:

Tags: , , , , , ,