Month: March 2006

Change management?

Just reading this while I eat my lunch:

Very interesting thought in amongst the excellent material:

A late change is a competetive advantage.

That’s well worth remembering, as long as you are using a method or practice that makes changes cheap and relatively easy to do.

Also

… predictable processes require components that behave in a predictable way. However people are not predictable components.

I agree so much. I believe very firmly that 90% of software development is people. The technology and the “methods” are at best 10%.

Some non-obvious things to do with PL/SQL tables

1. Test a lookup

PL/SQL tables can be indexed by varchars as well as simple integers, so,


type id_lookup is table of integer index by emp.name%type ;
emp_lookup id_lookup ;

— create a cache in a global package variable somewhere
for e in (select emp_id, name from emp)
loop
  emp_lookup(e.name) := e.emp_id
end loop ;

— Later define functions
function emp_exists( ename in emp.name%type )  return boolean is
begin
   return emp_lookup.exists(ename) ;
end emp_exists ;
function get_emp_id( ename in emp.name%type )  return integer is
begin
    if emp_exists(ename)
   then
      return emp_lookup(ename);
  else
    return null ;
  end if ;
end get_emp_id ;

Of course, you’ll have to do things like maybe force the ename to be upper case or some such to make it work properly but I didn’t want to clutter this up.

2. (more to follow)