Five Minutes That Will Make Users Happy

My kitchen has a very nice range hood over the cooktop. It has a powerful  fan and beautiful brushed steel finish. And it has a user experience like most IT systems: Lousy.

Let’s think about what a range hood does. It has two main functions:

  1. Start the fan to extract grease and fumes
  2. Turn on the light over the cooktop

Because of the shape of a range hood, the buttons to operate it are typically (more...)

Inflexible Security (MailChimp fail)

Maybe I shouldn’t have written about flexible security, because I immediately starting hitting inflexible security, locking me out.

Today’s fail is courtesy of, which I use for my newsletters. It’s OK that they decided they want a confirmation when I log on to my account from India, but it is not OK that they require a text message passcode with no other option.

I have my phone in flight mode, because I don’t (more...)

One Visualization is Worth a Thousand Rows

One of the under-utilized killer features of Oracle ADF is the Data Visualization (DVT) compontents.

It is easy to build bad visualizations as Oracle themselves show in the documentation:

However, the commercial application that Oracle build with ADF (Fusion Applications, Enterprise Manager) obviously have benefited from the skills of professional visualization designers. These products use of visualizations well.

You application could probably benefit from some visualizations, too. Check out Status Meter and LED gauges as (more...)

Success Factor: Framework Longevity

I just read an interesting article about  Longevity (or Lack Thereof) in JavaScript Frameworks, and Brian Moschel makes the same recommendations I make to my customers.

Mainly: You do not want to pick the tool that’s hot this year.

hot_js_frameworks(picture from blog above)

The reason is that choosing this year’s hot framework is an unnecessary leap of faith that places your project at risk. What happens if you choose wrong? You’ll watch your application (more...)

Matching Your Database to Your Application

I’ve just been troubleshooting an ADF application that ran fine on one environment and not on another. After some searching, I discovered that a script had not been run on one of the environments so the database was different.

That reminded me of a simple database check that I often include in my applications: I simply calculate a hash value of all tables and views with an SQL statement like this:

select sum(
+ (more...)

ADF 12.2.1 New Features

Oracle has just updated their ADF Statement of Direction, announcing that ADF 12.2.1 will be out in 2015. Here is what they are promising for this release:

The Next Version of Oracle ADF

Oracle is planning to deliver the next version of Oracle ADF – 12.2.1 – as part of the next release of Oracle Fusion Middleware 12.2.1 in 2015. Some of the focus areas for this version include:

You’re Cleverer Than You Think

I often train experienced developers in new tools, and I’ve found that most underestimate what they can do – their actual skill level is higher than their own perceived skill level.

Skill development

This is different from new developers, who tend to overestimate their skills.

The reason this happens to most experienced people is the “loss of control” feeling overcomes the feeling of accomplishment. If you are very skilled with one tool, you are acutely aware that (more...)

Hardware is Cheap, Developers are Expensive

When advising customers on ADF projects, I often find development environments where many or all developers are working against the same database. That introduces a hard dependency between different parts of the project – if one developer deploys a defective PL/SQL package to the database, nobody else can run the application.

This approach made sense back when hardware was expensive and databases had to be managed by high priests in glass-walled, climate-controlled rooms. Today, you (more...)

Do You Know It All?

Last week’s Technology That Fits newsletter (sign up here) stimulated some interesting discussions. I showed the following graphic:

Doomed Projects

Everybody agreed that projects that choose good tools for good reasons are good, and projects that choose bad tools for bad reasons are bad. But some disagreed on Learning and Lucky categories above.

I call projects that choose good tools for bad reasons “lucky”. They are CMMI level 1 – sometimes they succeed, sometimes they fail, and they (more...)

You’re Not Here to Write Code

Too many programmers think that their job is to write code. It isn’t.

The job of the programmer is to help the business solve a problem using appropriate technology for the task at hand. The programmer knows (or should know) the available tools and will hopefully select the right one for the task.

Unfortunately, too many programmers suffer from framework-phobia and don’t trust any code they have not written themselves. That takes more time, causes more (more...)