Trivial Software?

All software is hard.  Building good software is not trivial, but the challenges I face are different depending the intended use of my software.  For me it helps if I put software into three categories

  1. Critical – this controls nuclear power plants, medical equipment or aircraft control systems.  If it breaks a lot of people die.
  2. Enterprise Class – If it breaks I cannot run my business (pay my suppliers, pay my employees, serve my customers)
  3. Trivial – If it breaks I can’t check the latest sports results, or post my opinions on my lunch to facebook and twitter

The tolerance of the consumers of each of the above software for failure is quite different and as such the speed with which new features can be delivered and implemented will differ.  If the pilot of your plane sees a pop up on his screen right before he takes off saying “An update is available for your autopilot software, would you like to install it now?”;  would you want him to click ‘Yes’?

I build Enterprise software, which is the middle ground.  I certainly have to spend a lot of my time ensuring that what we build is robust and reliable, but there is plenty of scope to innovate.  I respect the people who build there other types of software as they each have their own unique challenges.  Critical software has to be totally safe and reliable and those pressures are obvious.  What I class as trivial software is a challenge because you have to move with the market and bring out new features and innovations very fast and keep your customers very happy and engaged because they can move easily to another product.  What is trivial software to the users may well be critical to your ability to make money and pay your own bills.

Do you agree with my categories, or do you prefer to slice it another way?  Is trying to categorize software a futile exercise?  Am I just trying to be controversial by calling some people’s life passion trivial?  Have your say in the comments below.

Little Data and The Semantic Enterprise

Small dataI have taken this term and the inspiration to get some of my thoughts in this area into a post from Jake’s recent post on the excellent AppsLab blog, I have been thinking about personalizing experiences in software for a long time but I had not ever called it little data.  It somewhat fits with thoughts I have had around The Semantic Enterprise, which is my preferred term but I think I have a different perspective on it than other people.

So my idea here is that we make use of the data we have about a person and what they do to get the small amounts of data that they really need to them, even though they didn’t know the data was there or that they needed it.  This is perfect for enterprises software because we have a lot of data about your life inside the enterprise and also a lot of data about other people similar to you and we have a whole load of data very relevant to you so we just have to pull those things together – should be simple right?

I will give an example that I noticed where this is done badly.  When I first had children, I bought new born diapers from amazon, then I started buying slightly larger diapers and then I bought a book on potty training, my buying needs progressed in a somewhat predictable way.  Amazon continued to recommend potty training books and diaper related items long after I had bought my past potty training book.  This is a case of good logic to figure out people who buy X also buy Y, but not good to be really smart and predict how my needs progress over time.  In the enterprise our needs also change over time, so we should try to predict that and help you get what you need.

So to give an example in the enterprise, I might want to recommend an online training resource on managing my employee’s expenses or doing performance reviews after I am newly promoted to a manager title, but I should not blindly push that to every manager even if they have been a manager for many years.  In finance the reports I have on my homepage would change based on my activities in the system, if last quarter I was the person approving last minute adjustments for the Slovakian Ledger, then maybe I want to see some reports on the Slovakian Ledger a little earlier in the cycle to get ahead of the process this quarter.  However if I happen to be set up as an approver for the Slovakian ledger but have never approved anything in that ledger maybe I am not going to be interested in having those reports pushed to me.

As you can imagine the possibilities are huge and very exciting, I have barely scratched the surface.  I’ll be giving this a lot of thought and bouncing ideas of smart people.  Your opinions are also very welcome, use the comments below.

Let me know your thoughts in the comments section below.

Observations from my 15 Years at Oracle

Office pictureLast weekend I completed 15 years at Oracle, all of those years have been spent in Applications Product Development, specifically financials.  That may sound like a long time to do the same thing, but I have been through a lot if big shifts in the IT industry and within Oracle during that time, it’s always been a challenging time and the only constant is change.

I started out in the UK for 2 years before moving out to California in 2000 where I have been ever since, in the 300 building you see on the left.

The earliest Applications release I started out working on was 10.4 and I think the database version was 7.  I still have a promotional VHS cassette that all employees were sent when the 8i database was launched and a license plate holder with the tag line ‘the internet changes everything’ which I got on my first day starting at Oracle HQ.  I also have more Polo Shirts, hats, bags and vests with the Oracle Logo on than I care to count.

As I said earlier the only constant has been change and I’ve seen a lot of interesting changes, shifts and fads come and go.  Here’s a list of the things I can recall in a somewhat chronological order

  • Character mode Apps
  • Client Server GUI Apps
  • Browser based Apps
  • The Millennium Bug
  • Providing 24 hour cover over New Year 2000, when nothing happened
  • The emergence of the internet
  • The dot com boom
  • The dot com bust
  • The Network Computer (including Larry showing a network computer on Oprah)
  • Oracle starting consolidation in the Enterprise Applications space
  • Web 2.0
  • Social Apps
  • The Cloud

So there’s a few of my favorite things, feel free to add yours or comment on mine in the comments section below.

Some thoughts on global development teams

By David Haimes

I joined Oracle in 1997 working out of the UK, in a team split between Redwood Shores in California and the UK; my first project was working with people in The Netherlands and my boss was in Finland. So working globally is nothing new to me. At the moment my team are located in California, New York, U.K., Bangalore and Hyderabad. I have almost 15 years experience working in remote teams, to me it is the norm but some organizations are still getting used to it. So he are a few techniques I have found useful.

1) One team – Everyone is equal regardless of location

If you try to have one team your treat as an outsourcing team you will fail. You need to treat everyone as art of the same team and have everyone involved in design, code, test, etc. Having one location do a design and pas it to another team to code is not going to work. If you treat everyone as a single team you will be more productive, get the best out of all members of the team and have better motivated people who will stay in the team longer as they will get better opportunities to learn and grow. If you disagree with this, the rest of the post is not going to be relevant to you.

2) Get to Know Each Other

I did something called “Knowing Me, Knowing You” where each team member has to interview another and write up a little article about them. This should be trivial and light hearted and it’s essential that you decide who interviews who, to make sure everybody talks to somebody they don’t know well yet. After you have all written the articles, then post them in a central place and you can all read about each other.

3) Use Timezones to your advantage

You can get 24 hour coverage, so nobody should have to work through the night on critical issues – pass them around the globe. There are challenges here as you can lose efficiency with different people working an issue if it is not done right. I always recommend a warm handover – so you speak live to the person you’re passing the issue to and they get a chance to ask questions. Dropping them a mail and going to bed is not the right way!

4) Pick Up the Phone

It is very easy, particularly in a tech company to use electronic communication (IM, email, blogs, ec) all the time. These are great tools, but when you are remote you should use all the different communication tools available to you and sometimes you need t pick up the phone and talk.

5) Regular team meetings

This is something I have always struggled with, I don’t want to create a meeting that people don’t want to attend and get no benefit from, people’s time is valuable. However if I stop having regular meetings people feel they are out of touch, so I do my best to bring valuable content ie. not me droning on.

6) Have some fun together

Take a few minutes of team meetings or interactions for something light hearted. This checks everyone is awake and listening and lightens the mood, remember it will be early morning or late a night for some people. It is also good to share pictures of any team meals or events in each location with other locations. I was amazed when some team members in Hyderabad shared this Bollywood flash mob they were part of, great to see another side to them.

So these are 6 thoughts I had, but it is not the complete picture and I’d like to here your thoughts. The comments sections is below…

Cool iPhone Expenses Video (and product)

It’s a video for a new Oracle Peoplesoft iPhone App called Oracle iReceipts, the product is cool, but I think the animation is worth watching for it’s own sake – very funny.

I saw this on a Theresa’s excellent Fin Apps blog, which I always read and you should too.  It’s a video for a new Oracle Peoplesoft iPhone  App called Oracle iReceipts, the product is cool, but I think the animation is worth watching for it’s own sake – very funny.

iPhone Apps are all the rage at the moment, but I do feel there are a lot of Apps created just for the sake of it and not well thought out.  Reminds me of the dot com era where all companies were desperate to have a web presence but didn’t necesserily know why they wanted it or what they wanted to get out of it.  That said, managing my expenses with a mobile device, taking pictures of receipts and entering them real time is always going to be a Killer App.

Anyway, enough of me, here’s the video…

How to Migrate from WordPress to Blogger

I was checking out Google Analytics on the blogger account I have had since 2004 but really not used much since. Big problem. I have very little content there and almost no traffic to analyze. WordPress don’t allow me to use Google Analytics on, so I can’t analyze all the wonderful activity here. This got me wondering how easy it would be to migrate my blog to blogger and the answer is as easy as 1,2,3.

1) In WordPress go to Tools Export and click on the Export button

This will give you an XML file to save to your computer in the WordPress eXtended RSS or WXR format with all your posts, pages, comments, custom fields, categories, and tags.  Excellent for loading to another WordPress Blog.

2) You need to convert this WXR format to something blogger can read, so got to

Load up your WXR file and you will get a file back in blogger format.  All powered by the Google App Engine (thanks guys)

3) Go to blogger dashboard and click import, select the file you got from 2) above

One thing to be careful about is it will also pull in your draft posts from WordPress, so I recommend that you don’t check the box to publish right away, better to review and publish after the import.

So now I have all my blog posts on blogger as well as on wordpress, next problem to solve is if I could keep them synched up automatically, which I think might be a more difficult problem.

What is Embedded BI?

As I glanced at facebook I saw a status from Deborah Lilley interesting enough get me thinking at 7am in the morning, she was talking about embedded UI.

This morning I went out of the house at exactly 6:59, ran down the hill and quickly across the road to arrive at the bus stop just about the same time as the bus.   I jumped on catching my breath, sat down and switched on my iPhone (this is a great thing about taking the bus to work, I get 12 minutes sitting reading, checking email or whatever rather than 12 minutes driving the car).  As I glanced at facebook I saw a status from Debra Lilley that was interesting enough get me thinking, even at 7am in the morning.


I applied the embedded BI concept to my habitual tardiness and I liked the analogy, so rather than write 500 words on a facebook status, I decided to put my thoughts in a blog post.  Here goes…

My operational activity is getting out of bed, ready for work, maybe doing some work/checking mails, maybe having breakfast, maybe getting kids dressed and finally I walk out of the door to jump on a bus to the office.

My traditional BI world is looking back on a week and wondering why I missed the bus three times, what impact that had on my life and how I might take some corrective action.  I may determine it takes 6 minutes to walk to the bus stop or 4 minutes if I run a little.  Maybe I notice that on two occasions the bus left 1 minute early and that was why I missed it.  I might analyze decide that for the next week I will set all the clocks in the house 1 minute fast, that way I should arrive at the bus stop 1 minute early and that ought to prevent me missing two buses a week that arrive early and make a huge difference to my punctuality and effectiveness in morning meetings.

Now as anybody who has tried setting clocks forward in order to trick themselves into leaving earlier and so preventing occurrences of tardiness will testify, it doesn’t work.  You look at the clock showing 6:50am and mentally subtract a minute and figure you have time for one more slice of toast if you eat it fast and then run a little.

So how is embedded BI going to help me more?  (I am getting to the point soon, I hope you’re still reading) Well the BI I get needs to embedded into my operational world and help me make better decisions in real time.  In order to do that I would need it to be relevant, timely and actionable.  Let’s look at these three three items in teh context of an example – I am considering eating one more slice of toast at 6:50, my next bus is at 7:05, the one after that at 7:40, the bus journey takes 12 minutes, then I have a 5 minute walk and I need to be at my desk at 8am to host a Web Conference, the fare is $2 and I only have a $20 bill in my pocket.

Timely – This is easy, I need information before I put the toast in the toaster.  If it comes after I put the toast in the toaster but before I start eating it then I might still get my bus but have to leave the toast behind and wasted.  If I get it even later I may miss my bus.  As you can see the later in the task I get the information the worse the result is.

Relevant – I don’t want generic information on my bus catching/missing history over the last 12 months.  I want to know how often does having a slice of toast 15 minutes before my bus is due causes me to miss my bus. Some information about how often the 7:05 bus arrives early would help too.

Actionable – In my bus example the action is pretty much down to me, I get up from the table and head out of the door, the action is in my own hands.  One action I might need to take is to break my $20 bill to make sure I have the correct change for the bus fare, embedded BI would remind me of this and might even present the alternative option of borrowing $2 in change from my 5 year old’s money box (A further action might be to remind me when I get home to pay it back)

The example I am using is fairly trivial and most people would tell me to just arrive 5 minutes early all the time to be sure of catching the bus.  However in business the decisions are much more important and the results translate into operational efficiencies, less mistakes, higher productivity, higher sales, customer satisfaction, employee satisfaction better profits all those good things.

So that was my attempt to explain how I see embedded BI.  Agree, disagree or otherwise express your thoughts in the comments section below.

My name is David and I used to be a blogger

So many bloggers are blogging less and spending more time pushing out 140 character packets of info on Twitter. I have no problem with Twitter, I blogged about it and hang out there now and then, but for me it is no replacement for blogging. My lack activity here has nothing to do with Twitter as it is for Justin from Oracle tech net (for the record, I think Justin tweets plenty of really good info), my silence is due to two factors.

1. Lack of time – busy job at Oracle, arrival of our 3rd and 4th children, spending summer in Europe, moving house…
2. I can’t discuss my day job – I have the pleasure of managing a development team building truly amazing and ground breaking Fusion products. Downside is we can’t talk much about it yet as it isn’t released.

Regarding the second point, I should still blog about R12, all the reasons I started this blog are still valid, but I find it increasingly hard to switch gears from Fusion to R12 (maybe something to do with age?).

As for lack of time this will always be a problem.  I have tried to respond to comments and keep up reading some of the other great oracle blogs, but only now whilst starting out on a 22 hour flight to India do I feel I have a little time to think about blogging… So when I next get connected I can hit publish and I am a blogger again.

What a difference a year makes

Written by David Haimes

This blog turned one year old this week, so a short review of the year is in order.

I started this blog after Open World 2007, mostly as a way to put answers ‘out there’ to the questions I was being asked multiple times during the conference. I was hoping to do a couple of posts a week and have managed a total of 74, or 1.4 per week, which considering I have got a lot more responsibility at work than 12 months ago I’m pleased with. Most of all I enjoyed the conversations, there have been 400 comments including one from Charles Phillips (indirectly) but I didn’t hear form Larry when I posted a picture of his Yacht which incidentally gave me by far my highest day of hits, the majority coming from Digg.

What has pleasantly surprised me about blogging is how much I have learned in the past year from the comments on the blogs and from following the plethora of other excellent Oracle bloggers that a year ago I didn’t really know existed. I’ve also spent a lot of time on twitter, following a lot of interesting, entertaining, knowledgeable and helpful people many of whom are also bloggers.

So all in all a good first year and now I look forward to the next one and wonder what the stars have in store for me over the next 12 months…

One Laptop per Child – the perfect gift

XO Laptop
XO Laptop

Written by David Haimes

I blogged some time ago about the One Laptop per Child Foundation and how myself and others had taken part in the give one get one program last year. I think the XO laptop is an amazing machine and more importantly I fully support the goals of the foundation.

I got an email and a message to thank me for giving the laptop and as it suggests I will tell 100 people (I hope I have that many readers) and be taking my XO laptop to work this week so I can show people the machine and spread the word about the excellent work the foundation is doing – feel free to drop by my office to check it out. If you want to give then you can do this at