Proper Task Length

Glen Alleman in his post How Long Should Tasks Be gets to the heart of an important issue.  When planning, how long can you wait before you know that you are late.

In principle, it works like this – you don’t know you are late until you fail to complete a task on schedule.  How late you are depends on the remaining work in the late task.  How long can you wait to determine that a task is behind schedule?  That depends on where you are on the project timeline and how much “margin” is remaining in the plan.

In practice there are other dependencies.  Measurement frequency is important.  The more frequently you measure progress against the plan, the smaller tasks increments you will naturally prefer.  You want to see progress at every measurement cycle.Continue Reading

Estimation Purposes Beyond The Customer

In my last post about Estimation Purposes – I spent a little time talking about the reason that our customer might want to estimate, and how estimation informs our conversation with the customer.

But the reason for estimation goes beyond the customer, and into our own management and leadership.

Listening to the #NoEstimates conversations that have been going on, I realized that most were focused on estimation only in the context of a project.  As if the sole purpose of the estimate is to determine how much the project will cost, and how quickly it can be done.

On another post that I am working on I talk about management and leadership activities, things that are “meta” to the project and meta to the people who are doing the work.  Forecasting.  One of the things that managers are responsible for are forecasts.  They need to compare their incoming budget forecast with their resource forecast.  They need to plan when they onboard and release contract employees, and how leadership will be assigned to projects.  They need to forecast how resources will be deployed so that all projects will have access to the skills required to get to done.

Estimates give them the ability to look ahead, to forecast, to plan, to lead.Continue Reading

What They Want…

How do we get Enterprise IT to align with our customer? The questions we ask our customer are indicative of our assumptions. Those assumptions are correlated to our relationship with our customer, and our understanding of that customer’s pain points or frustrations with IT. But how do we get past assumptions, and how do we break out of our [current] relationship with our customer, to invent a better relationship?Continue Reading

Communication Patterns

In interacting with a software team recently, I realized that communication is often not the strongest suit that developers play. Here are some patterns that I observed that I find harmful to effective software delivery:

1) Communicate via status – When developers are using tools to manage tasks, defects, or other work packages, they often fall into the trap of simply updating the status of the work item as a means of communicating that something out of their area needs to happen. The primary problem is that while status may identify what needs to happen, it doesn’t communicate the following: Who is responsible for it, and when it needs to happen. It also does not provide that person any guidance as to what has gone before. If you need something from a team mate, (especially co-located) get up out of your chair and go talk to them. Failing that, send them an e-mail with the pertinent information, so that they can express the appropriate urgency and responsiveness.Continue Reading

A Buck Stop

Caution: Rant Ahead!

E-mail chains.

Ken sends a note to Carole, his boss: “I need to know what systems our teams use for client servicing activities, can you help”? Nothing wrong with asking for information. Unless you’re asking people who don’t have a reason to know about what you’re asking.

Carole forwards the note to Joe, a project analyst: “Hey Joe, can you help Ken with this?” PUNT! Carole is newer to the group, and not as familiar with what systems are used. She thinks that Joe who has done numerous projects with systems may have some information.Continue Reading

IT Patterns and Practices

In my prior post ( ITStrategyInternals ) I explained a little about patterns and practices. Patterns and Practices within IT go hand in hand, in that we have an established solution, and a body of knowledge and expertise around that solution.

I think that we sometimes think that by selecting a tool, we have defined a pattern. So let me say, that patterns are at a higher level of abstraction than a tool. A pattern may require some tooling, but it should not be specific to a tool. The body of expertise around implementing a pattern with/through a specific tool is a practice. So ORACLE DBMS is not a pattern, but a data warehouse may be. Likewise, MQ Series is not a pattern, but a message bus may be. We may have a practice around implementing a message bus using MQ Series, or TIBCO, or Tellurian sockets or Oracle SOA Suite.

Tools are really only valuable, in that they enable the delivery of patterns. Tools can be anything from an integrated development environment (IDE) to a component library to an operating system. Programming languages are not tools, but editors and compilers are. Programming languages are patterns. SQL is not a tool, but MySQL is. SQL is a programming language that is a common part of a relational database pattern. We have come to expect that any tool that enables a relational database pattern implements some version of the SQL programming language.

Those of us who have been in this industry for a few years, realize that the players (tools) change pretty frequently. As a new pattern emerges and is perceived as valuable, it disrupts the market for a while, then the tools supporting the new pattern prosper, and the others diminish and sputter towards irrelevancy.Continue Reading

IT Internal Strategy

So in prior posts about IT Strategy (The Goal of IT, Enterprise Application Value) I have talked about IT’s “Outward Facing Strategy”. So this post will be more about what are we doing to help ourselves deliver against our outward facing strategy.

At the top level of our Internal IT Strategy is our values: What we believe is important. What we value is the essence of our belief system.Continue Reading

Estimation Information

A recent exercise at the job around improving the accuracy of estimate for software delivery projects caused me to have a minor epiphany!

When doing agile software delivery, we generally get value from having more information sooner. But this plays differently in managing the backlog.

We have been working on writing basic stories for all the ideas in our backlog, and producing T-Shirt size + Confidence estimates on each story. The challenge, is to scope a release and commit to a schedule with greater precision. Our customer (and management) would like us to estimate with greater precision, to match the estimates that are performed at each stage-gate in our non-agile software delivery life cycle.

The problem is, that our backlog (“Chinese menu”) estimates do not contemplate the state of the code base at the beginning of the release. We do this intentionally, so that the customer (product owner) can move stories backward and forward in the sequence without considering any cost or schedule optimization that could be had if we delivered in some sequence other than VALUE OPTIMAL.Continue Reading

Enterprise Application Value

This is a continuation of the last post, The Goal of IT where I tried to separate out how IT as a business function contributes to the goal of a company. Most of my experience is in Enterprise IT – that is IT is a function of a larger business enterprise, not specifically creating IT products or services for sale.

Enterprise IT is typically regarded as a cost center, not a revenue center. We are a support service to the larger business model, not dissimilar to facilities, legal, or human resources.

In the last post, I claim that IT exists to support the goals of the larger business enterprise, which are ultimately, to make money. The way IT accomplishes this is by delivering application capabilities, period. Working application capabilities that are used by business people, to increase their throughput, reduce their operating expense.

The business gets value from application capabilities in the same way a manufacturing plant gets value from machine tools, it uses them to increase the throughput of the manufacturing process. If a machine is not used, it does not increase throughput. The same is true for software – if it is not used, it cannot add value. Continue Reading

The Goal of IT

I recently re-read a book called “The Goal” by Eliyahu Goldratt. I had read it years ago, and at the time it had resonated deeply in my mind. Sometimes it is beneficial to review concepts that resonate.

For years, I have been working in the application development domain within IT. Most of my views on IT are application software centric. I have held these views because it seems natural to me that without some application, all of the physical hardware and infrastructure software and tools don’t really deliver any value. Like principals of engineering, without application, they aren’t terribly useful.

So if we retain that as a principle, it leads us to imply that the purpose of hardware and infrastructure and tools is to support software applications. It does that in two main ways:

1) making application software capabilities available to the user
2) making application software capabilities easier (faster, less costly) to create and maintain

Those are the two main goals of IT infra. If you have another, I am open to see how it plays. If you agree with me, then I believe that infrastructure goals are completely subordinate to application software goals.Continue Reading