Posts in category 'management'

« Older Posts   

Balancing Order and Chaos with Process

Whether it is software development projects or I.T. operations, many larger organizations seem enamored with process as the solution to their problems. The default reaction to negative outcomes or variances between people in performing activities is to add more process. Process provides an ordered structure for keeping such chaos at bay. This reflects an underlying […]

Are Organizational Standards Harmful?

As a senior architect I work with and in some cases help create a wide variety of organizational I.T. standards: Architectural guidance Build and deployment standards like semantic versioning Development practices like unit testing and continuous integration Enterprise libraries, components, or services providing reusable functionality Enterprise infrastructure like single sign-on, backups, or corporate desktop support […]

Funding by Backlog

Managers responsible for a portfolio of existing applications must decide how to allocate their budget for application enhancements across their portfolio. For the purposes of this discussion, I am going to assume the following constraints: There are too many applications for the manager to make decisions on individual application enhancements. Instead, the manager must delegate […]

My Concerns with Process Certification

In I.T. there are a number of process-based certifications that organizations can obtain based on standards like ISO-9001, ITIL via ISO 20000, and CMMI. The process of qualifying for a certification is similar across these standards: the organization defines and/or revises their internal processes to comply with the requirements of the standard, documents these processes, […]

Meeting Milestones via Swarming and Reserves

No matter what method of software development a team uses, there will be times when the team struggles to meet planned milestones. The milestone could be completing committed stories for an iteration or reaching the feature-complete point in a release. The struggle to meet the milestone might be caused by any number of factors like […]

The Importance of Hiring

One of my many responsibilities at work as part of my role as Java Practice Lead is the hiring of Java programmers, developers, and architects in collaboration with human resources. Recently I have been adjusting our hiring process and clarifying the roles and people involved. I am always juggling a multitude of requests and demands […]

Stop Staring at the Spreadsheet

As a scrum master or technical lead do you find yourself frittering away your time staring at the spreadsheet (or other tool) you use to track progress of the team? Do you keep studying the velocity and burndown or keep tweaking the numbers or formulas? I have heard of this becoming a chronic problem for […]

Mistaking Plans for Goals

I believe there are two primary flaws in focusing on plans. The first flaw is the assumption that following the plan will achieve the goal. Sure, the plan is assembled with the intent of meeting the objectives, but what guarantee is there that this will actually happen? The second flaw is putting one’s primary attention […]

Ten Audit Warning Signs

I describe in my prior article how formal audits suffer from a number of drawbacks, and hopefully I have alerted you to the potential harm they can do. But some audits are necessary or can be helpful. So how do you detect when audits are causing you harm? Here are ten specific warning signs you […]

Drawbacks of Formal Audits

In heavily-regulated or bureaucratic environments formal audits are a common occurrence. Such audits typically consist of an auditor external to the team or organization who analyzes historical evidence of the work done to find non-conformities with respect to the documented process being audited. To those with a bureaucratic mindset process and audits are the answer […]

Predictability and Planning for Done

There is an interesting relationship between having predictable estimates for project management and using a thorough definition of done. Achieving the full definition of done for a feature or release (often called being done-done) is surprisingly difficult. You may have heard the anecdotal rule of thumb that it takes 80% of the time to achieve […]

Using Feature Done Checklists

I have written previously about the importance of having a definition of done that the team understands and adheres to. At the level of features (use cases, user stories, etc.) a comprehensive definition of done will often consist of a number of items, some involving non-developer roles such as tester, business analyst, and architect. Tracking […]

Problems with Typical Definitions of Project Success

My previous article discussed the importance of defining success as it relates to software projects and products. Now I want to look at some typical definitions of success and identify problems or short-comings with these definitions. From this analysis I aim to point the way towards a better definition of what success entails. Typical Definitions […]

The Importance of Defining Success

Can you define what makes a successful software development project or product? Do you know the criteria by which your current assignment will be judged a success? Does everyone associated with the project or product share the same definition? Defining what it means to be successful may seem obvious or trivial, but I expect that […]

Why You Need a Definition of Done

Whether you are working on a small task or a large project, do you and your team have a clear understanding of what it takes to complete a piece of work? The Scrum method of software development calls this Definition of Done and touts this as a critical practice for high-performing teams. While I have […]

Cyclic Incremental Growth in Software Systems

I recently read an interesting research paper titled Metrics and Laws of Software Evolution – The Nineties View by Lehman et al in the 1997 proceedings of the Software Metrics Symposium that discusses eight laws of software evolution. One set of graphs within the paper jumped out at me: they show the incremental growth of two systems over a series of releases. The graphs shared a common pattern: releases with higher than average incremental growth tended to alternate with one or more releases with lower than average growth. What are the implications of this commonly observed behavior for developing and using software? How can we use this pattern to our advantage? Read on to see my answers to these questions.

Why is Estimating so Difficult?

Working as a software developer offers many challenges ranging from tracking down an elusive defect in third-party software to trying to determine what a client really wants. Perhaps the most difficult challenge, however, is succeeding as an oracle who can accurately divine the future – more commonly referred to as creating an estimate. A layperson […]

Seven Attributes of Change Leaders

How can organizations change? Given my interest in perpetual learning and continuous improvement, I find this an interesting question whether you are talking about a small team or an international corporation. While organizations can slowly evolve by accident, significant transformational change only happens due to focused and deliberate effort. The people responsible for championing this […]

Are You Silver Bullet Proof?

I recently attended a presentation titled “Are You Silver Bullet Proof?” at the ICE Technology Conference by Sharon Stanbury and Joni Mines of the City of Edmonton. As non-I.T. people, they revealed an interesting perspective on how enterprise I.T. departments and the business should work together. They started by introducing two myths concerning I.T.: Myth […]

Release When Ready

There are several strategies for producing software releases. One approach is to release by schedule – the software ships on a fixed date defined well in advance. Another method is to release based on budget – the work stops once the money available is exhausted. I believe, however, that the best strategy in general is […]

« Older Posts