Notes from Michael Avila

Null-Pointer Exceptions Considered Annoying

By on in Development, Java


If computer programs have needs, data is one of them. Usually, this data is available, but sometimes it’s not. Why not? Who knows. It’s just not there. What’s worse, this situation is common and, when improperly handled, results in runtime exceptions.

To explore this problem, let’s contrive an example using Java 8. Suppose we want to save a record given some data provided by the user. Since humans are fallible, let’s express the data they provide in terms of the Optional type. Here is what we’ll start with:

Function<String, Integer> saveRecord = m -> {
    System.out.println(String.format("Saving record %s", m));
    // do something useful
    return 0;
Optional<String> message = Optional.of("Hello World");
// call saveRecord with the String in message?

Continue reading …

Same Team, New Tricks

By on in Process

I am writing this to explore the following line of thought:

  • We can increase the value we generate without expanding our talent pool
  • Improving quality creates the most value
  • Inflexibility keeps us from improving
  • Ignoring queues is the primary cause of our inflexibility
  • Kanban is the method for managing our queues
  • Once flexibility exists, we can use it to add value by increasing quality

I will be exploring this in two major sections. The first will describe why flexibility matters. The second will prescribe a possible solution: Kanban. Get comfortable, this post is a little long.
Continue reading …