The secret of successful software development

Like any organization also a software development organization is constantly challenged to deliver more with less, reduce time to market and show more agility to respond quicker to market needs. Many articles and books have been written about different development methods and processes like RUP, Scrum, XP, etc... These methods are all great, but sometimes we do forget it's all about People.

Image credit: Sara Petagna 

Software development is done by people and I believe people come before process, so I've developed a little model to explain why software development in general is so damn difficult. In software development there are in general 2 types of people involved, Functional people to define and review the functionality of the solution and the Technical people to do the actual realization of the proposed solution. Now lets compare these 2 types of people.

Functional Technical
Extravert Introvert
See opportunities See risks
Want it now! It's difficult, it takes time!
Think solutions Think frameworks
It's simple, just a few things How about Security, Performance and Scalability?

The above chart now shows clearly that there is a natural incompatibility between the Functional and Technical people. Off-shoring and outsourcing often make it even more difficult with 12 hour flight, an ocean and multiple time zones in between. This is a serious challenge, because it's essential for success that they work as a team. It's usually not the team with the best individual players that wins, but the team with good players that understands and complements each other. This is why a good coach is important.

The secret of successful software development is the coach that makes sure you have a software development team that understands and complements each other. The coach bridges the gap between the different personalities. It's up to the coach to decide how to do this, I personally like to bring the Functional and Technical people together at every stage of the projects. Especially in the requirement phase I like to do 'reality checks' and come to a shared concept solution. This scopes the solution down,  manages the expectations of the Functional people and makes the Technical people more involved in the whole process. I also realize that it's difficult to formalize the role of the coach, because every team and organization is different. Sometimes it's just the Product Owner and in other situations it's the Development Manager. It can be anybody, as long the gap between the different personalities is narrowed.

The coaching part doesn't dismiss your organization from having a formal software development process. A well defined process is still  necessary to keep track of events, control your quality and for compliance and responsibilities. However the process should never be placed above the people that are doing the actual work, instead it should guide them to better results.

How many ideas can you handle?

In today's world information is everywhere and it's impossible to imagine there is ever an information shortage. I love it, it inspires and makes me think and gives me a constant stream of new ideas. Sometimes I wonder, how many of these ideas can I handle?

Image credit: Sara Petagna 

The ideas are great, or not so great, it doesn't really matter. They make me feel good and in my enthusiasm I always want to put some action behind them. Sometimes I can, but more often it requires more thought and brainstorming to further visualize the ideas. It's an energizing process, but also exhausting... especially when reality kicks in and planning, capacity and deadlines get the overhand.

How do you deal with inspiration and ideas?

How I keep track of all my services

I've already written how I use FriendFeed to aggregate all my services into a live stream. You probably have already seen on my About page the different services I use. How did I do this?

I keep track of all my services with 'Retaggr' It allows you to create a profile, register and store all you services in a central place and gives you heaps of possibilities to use this in various ways, some examples are:

1. A profile card to show anywhere. The card can be customized to your needs.

2. A profile page that shows all your information in a central page.

3. An embed able profile button:

4. Widget to use in you blog as I did on my About page.

5. A cool a Add Me button. Feel free to click the button.

I really like this Retaggr - The Definite Online Profile. You can read more at the Retaggr Blog

How ready are we for social computing?

This week I was presenting and giving a demo of some Exact Research prototypes. During the presentation I got an interesting question: Where do you find that this is the direction the industry is going?

Image credit: Shelly 

Before I dive into the details I will first set the context of the question. Exact Software provides solutions to small and medium-sized businesses, and subsidiaries of multinationals. This is business software covering a wide range of solution areas. The solutions historically focussed on data entry and less on getting information out. This is why there are today many specific business intelligence solutions. Today this is all of course a lot better, but the heritage is still there.

I presented a solution that added social components and emotional value into the business solution. It was  using existing information in a social context to create additional value. This based on the concept that a business transaction is essentially based social interaction.

Back to the question. The answer was simple:
1. Competitive analysis shows that it a common trend, in order to improve collaboration and efficiency we need to add social components.
2. Studies on Generation Y behavior show different expectations related to communications. See also: Unified Communications, bridging generations
3. Participate, Feel, Share and Enjoy social computing. This sounds strange, but the true value of social computing must be experienced.

But much more important, what did I learn from this? It became immediately clear that only a very small group of people is comfortable with social computing. In many businesses, including many of our customers, there are probably many novice and sceptic people towards social computing. Education and guidance of these people is actually more important that implementations.

What do you think?

My Dopplr annual report

A few days ago I wrote how I use location based services. Today I received my Dopplr annual report. It's pretty sweet to learn that I spend 271 at home and 95 days traveling. Now I got the proof that I travel about 1 week a months. Until now this was just my gut feeling...

Now lets see which trips 2009 brings. You can already check my upcoming trips at my Dopplr profile

My favorite Social Media presentations

I love SlideShare, it's the great source for information and the dudes already featured twice one of my presentations. They also have this create 'presentation pack' widget to simply display a set of presentations.

I've used the widget to show you may favorite 'Social Media' presentations. Enjoy!

In case you can't see the show, you can also find the presentations here. Credits and Kudos to all the authors.

How I use location based services

A while ago I wrote about how I use Twitter and how you can follow me on my Lifestream. This time I'll share how I started to use some location based services and applications.

Image credit: Susie 

I started out with Yahoo's Fire Eagle, but by itself it's not really useful. As with so many services, ease of use is again the differentiator. Manually updating your location if you are moving around is just too much of a hassle.

Next service to try was Dopplr... I love it.. I can keep track of my trips and can plan them for the future. The FriendFeed and Facebook integration nicely informs my friends. This already saved me once when my coworkers thought I disappeared, although I was just on a business trip. I look forward to my annual travel report.

The iPhone changed the ease of use for location based applications. My favorite Twitter application is Twinkle, because it's nice to find people near you.  However I'm becoming more and more a fan of Brightkite. Especially the iPhone application is nice for making location based notes and photos. Brightkite also has nice Facebook and Twitter integration to update your friends of your whereabouts.

However, all these services are only cool if you go somewhere... Lets see what trips come up in 2009

Choose your product and services names carefully!

By now everybody should know that people write about you, your products and your services. Trying to fight is a lost battle, instead become aware listen and if necessary join the conversation.

I use some Google Blog searches to track the conversation around products in Exact Software. Unfortunately this is not very easy, because the product names (Exact, Globe, Synergy) are very generic and usually I only track irrelevant information.

I've included some screenshots of my Google Reader to give you an impression.

At least I'm well aware now what happened at the Golden Globes.

Why Software + Services is do damn difficult!

A while ago a published a presentation on SaaS Adoption, addressing the influencers for adoption. Today I was working on a presentation on the impact of changing from a Software company towards a Services company. This is a topic very likely on the mind of many traditional software companies.

Image credit: Balaji

Let me share some of the observations I've made:
1. Software companies usually deal with software releases about every 18 months with a few service releases in between. The main releases contain many new feature, often a new look and feel and a significant effort is put in launching the new release. Product development, Training, Support, Marketing, Sales etc.. all function groups operate on the rhythm of the product releases.
2. Services companies operate on a different rhythm. The product almost constantly update in very small steps and product launches are history (except for complete new ones). There are no product releases as the heart beat of the company.

Changing from a Software company to a Service company is a complete DNA change of the organization. Traditional companies making this shift have a hard time. I've learned it's very hard to make this change. The establishment (Software) doesn't understand the future (Services) and the other way around. For this reasons the two are often separated into independent organizational structures.

Combining the 2 different DNA's required for a Software + Services solution looks to me as almost impossible. You take on this?

How to create a Tweet This button in a blogger blog

Inspired by 'How Bloggers Should Inspire Retweets' by Jeremiah Owyang I decided to create a 'Tweet This' button in this blog. It was actually a lot harder that I first thought.

The first step I did was to figure out the URL needed to start the Twitter Web application with prefilled information. This was easy, I just reversed engineered the ShareThis button. This gave something like:<url of the post=> <the url of the post >

The next step was to add some HTML to my blogger template, using the provided data tags <data:post.title> and <data:post.url>. This at first looked simple and successful, but I did run into encoding problems with post titles that containing ' (quotes). I needed a new approach.

In the <head> section of the template I created  simple javascript function.
<script type='text/javascript'> function ShareTwitter(t, u) { p = &quot; &quot; + t + &quot;, &quot; + u; s = &quot;&lt;a class=\&#39;stwButton\&#39; href=\&#39;&quot;; s = s + p; s = s + &quot;\&#39; title=\&#39;Share on Twitter\&#39; target=\&#39;_blank\&#39; &gt;Tweet This&lt;/a&gt;&quot;; document.write(s); } </script>

The function takes care of the correct encoding and writes the appropriate HTML for the button and Link. Copy this function just above the </head> tag in your template.

Next you need find the place in your template where you want to add the button. This is usually somewhere near <div class='post-footer'>. I put it after my ShareThis button. At the right place you copy the following:
<!-- twitter --> <span> <script type='text/javascript'> tt = escape(&quot;<data:post.title/>&quot;); uu = &quot;<data:post.url/>&quot;; ShareTwitter(tt, uu); </script> </span>

.. and that is almost it.. Now it's only necessary to do the correct styling. Again I look carefully at the ShareThis button. All what was necessary is and image to show and the following styling that you put again in the <style> section of your template. Just put it just above ']]></b:skin> tag'.

First find a good image and upload in your Picasa Album linked to your Blogger blog. In the album you can find the URL to use in the style info below.
/* Twitter button -------------------- */ a.stwButton { padding:1px 5px 5px 22px; background:transparent url(<image you want to show>) no-repeat scroll 0 0 !important; }

Good Luck and success... Feel free to Tweet This post with the nice button below...

The evolution of my RSS usage

Today I spoke to my employers legal responsible. He told me that he had been extensively reading my blog. Oops... did I write something wrong? No nothing of that at all, but he did refer to my post about RSS being for everyone. He didn't understand anything about RSS at all! I guess RSS still far from mainstream and I probably have to write another post to explain. But now I first write how important RSS has become for me.

I was and early adopter of Google Reader, it was actually the first Google tool I adopted for mainstream work. Later I also move my email to GMail and write everything in Google Docs. Google is great, all my information always accessible, anywhere, anytime. I don't like client tools, because I use too many different computers to access my information.

At first I was just following a few RSS feeds and I would occasionally check my reader for new articles. This changed with the adoption of iGoogle and a Google Reader gadget on my homepage. Now I could see new articles immediately and I noticed how convenient this was. It became very easy to scan thru the articles and read what was interesting. The new canvas view of iGoogle improved on this even further.

Since it had become so easy, I started to add more and more RSS feeds and today scan uncountable number of articles. I try to read most articles immediately and share interesting articles so they show up in my lifestream. Sometimes I need more time to read and want to safe them for later. I use the 'star' functionality for this purpose. For me 'starred'  articles is a 'still to be processed list'. This works for me very well.

RSS feeds do not necessary have to be related to websites or blogs, but can also be the result of searches. For instance I've a few Twitter searches that return Tweet with certain criteria directly into my reader. I also like the social feature that the shared items of your gmail chat buddies appear in Google Reader.

Now my daily routine starts with checking overnight Tweets in TweetDeck and scanning for interesting articles in Google Reader. This with a fresh espresso makes a perfect breakfast.

Windows 7 - First Impressions

Are you fed up and frustrated with Windows Vista?

I am, Windows Vista just never works. All I need is a PC that can surf the web and I can occasionally use to download music and edit pictures. The key troubles are resume from sleep and internet connectivity. I recently solved most problems by buying a MacBook for my girlfriend, so at least she can work and I don't have to troubleshoot anymore. This resulted in the 'Home' Vista PC not to be used anymore. Actually I sort of forgot about the troubles. Until, I just wanted to edit a few pictures. First I needed to reboot to get an internet connection and than I refused to add tags to the images. All I got was 'Unknown Error'.. WTF.

Ok, I had reached the limit and decided to download Windows 7 and upgrade. I had nothing to loose, because the current situation wasn't working either. The download was quick, it's all over the place and I decided to upgrade the current machine. I took a long time, the 'This can take a few minutes' messages turned out to be hours.. but the result was excellent. Everything was nicely migrated, the feel was quick and snappy. The few applications that I use seem to work, except for connecting to other machines in my home network, but this got solved by rebooting once again.

I've been working with Windows 7 for a few hours and I have to say, this Beta is already heaps better than Vista ever was (and probably will be). Well done Microsoft.. There are a few issues that are bugging me, Microsoft you are confusing me... Try to keep stuff simple..
  • What are accelerators? Actually I don't need to know..
  • What is the idea behind Libraries?
  • How to I get rid of this Homegroup thing? Right click - Delete doesn't seem to work..
Further there are of course some smaller bugs and incompatibilities. Microsoft if you are reading this, please supply me with a Product Key so I can give some additional feedback.

Browser Share

Yesterday I was reading about the slowly but continuesly declining market share of Internet Explorer in the Silicon Alley Insider article: Microsoft Takes Another Net Step Backwards As Global IE Share Drops To New Low. Below you see the Browser market share for Q4 2008

I work in an environment where traditionally the focus was on Internet Explorer only, just for the simple reason that our customers were on the Windows platform and Internet Explorer was the only browser they had... This is now changing, efforts are slowly moving to other platforms and browsers.. The Exact Research team is leading the pack.Out of curiosity I compared the overall statistics with the visitors of my blog (Q4 2008).

Only less than half of the visits is with Internet Explorer... I guess, my reader are also leading the pack.

Wassup for 2009?

I usually don't make any New Year resolutions, but this time I decided it would be good to write some down in my first blog post of 2009. It's up to you to remind me in case I might drift off.

Image credit: Paula Steele 

  • Be more efficient
  • Spend more time doing other things than work
  • Launch something
  • Get more fit
  • Loose weight
  • Eat healthier
  • Share more
  • See my friends more
  • Video Blog
  • Listen
  • Go out more
  • ... and I guess lots more..
... and further for starters.. What do you want me to blog about?