The Importance of Time Completed and Time Remaining in Estimations

importance-of-estimates-time-completed-time-remaining/One of the first things many team members on Agile projects lose sight of is the importance of tracking their time spent on their tasks identified in their Backlog Item. Whether it’s a User Story, Sub-Task, Enhancement, etc., logging hours spent is of absolute importance to make sure further Sprint burn-downs, velocity, and estimates will continue to reflect increasing accuracy. The tendency of some teams is to use their Backlog Items (in either of the forms mentioned above), as a scope tracker. However, time-tracking on a daily basis is of absolute importance.

How Your Hours Should Really be Logged

Once a backlog item has been completed, only then do team members log their hours, and it most likely ends up being the hours set in the original estimates. Not only is it best practice to log hours spent on your backlog items on a daily basis, but also to re-assess what the remaining hours are. Just because an item was estimated to take 16 hours, and you performed 8 hours so far, it does not mean 8 hours remain. Sure it would seem logical that it would come down to a simple mathematical equation, but it’s truly not what is meant by “Time Remaining!” So what should be put in Time Remaining? It’s really about what should be required to complete the task at the moment of logging your time mid-course. What that means in our previous example; if you logged 8 hours for a task that was originally estimated at 16 hours, you may come to realize, there’s only 4 hours left. It’s as if you are re-estimating or re-assessing what is left to do. A number that does not match what was originally estimated, is perfectly fine either from a downward estimate or an upward one (assuming it’s done correctly of course!). This is by far the best way to know if original estimates were done accurately, and gives team members a gauge on whether those estimates continue to be assessed correctly in later sprints. Better yet, if needed, the variance of estimation accuracy can be calculated as well.

When Time Remaining is Not Taken Seriously

The problem arises when developers mark down remaining estimates as a straight-line mathematical equation, since it would imply that all original estimates were done properly, and makes it impossible to weed out the estimation imperfections during Sprint Planning from Sprint to Sprint. The other issue that may happen is that there could be a skew in estimations since some developers will take their time to complete a task (if they see that they’ve completed it early), and then hurry their task, or worse, bust the estimates if the task was underestimated. From there, it may escalate to having only underestimated tasks as being incorrectly estimated. What that gives is a mix of underestimated, and on-time estimates. As you can see, when the hours are totaled up for that sprint, the skewed results give an impression that generally all tasks were underestimated, and the lack of transparency will make the team draw separate conclusions. This also affects your burn-down charts and interpretation of velocity, all the while the cycle of trust within the team is broken.

How This Helps Continuous Improvement

Seeing the above situation in a different light, if you were on a trip where the original travel time was supposed to be 10 hours, only to find out the ride is shorter than expected, you would probably want to know, right? The same would apply if it would be longer than expected. To make the point clearer, your expectations, and that of others depend on the transparency of what remains to be done on any development effort. This aids efforts for future estimations and weeds out any further potential to be disappointed.

The next time you may be faced with a seemingly obvious question “How much time is remaining?” it may need to be seen as “How much time is needed to complete the task?” It’s not just a simple math calculation. Remember that estimates are called “estimates” because there is a chance that they will not be “accurate.” Having those numbers accurately represent “time remaining” allows for the estimation process to get better and better, as the team looks back in retrospect and compares their estimations for future Sprint Planning sessions.


 [Image courtesy of lekkyjustdoit at FreeDigitalPhotos.net]

6 Main Reasons Why You Must Identify Backlog Item Dependencies

6-main-reasons-must-identify-backlog-item-dependenciesWhen creating and grooming a backlog in an agile project, it may come as no surprise that there is a constant need to manage it throughout the product’s lifetime. Common expectations from those who come from the waterfall mindset, is that you would just set up a backlog and the rest should take care of itself. But as you will eventually find out, you must identify backlog item dependencies.

The reality is that the moment you create the first backlog item, metaphorically it becomes a living organism. Many may think that the most challenging part of the backlog item, would be to fully define and estimate it. It certainly is one the earliest challenges in the backlog definition phase. However, it is important to consider, that with each additional backlog item that is created, there is an increasing need to consider inter-dependencies between all items. Not a daunting task if your list is limited to 10 or 20 items, but what about a typical project where there are over 50, 100, or more items.

Without putting the carriage before the horse, it is important to consider those backlog item dependencies initially with a backlog roadmap. Then it is also necessary to make it an absolutely regular activity to take on when backlog grooming. Below we identify the many reasons why backlog item dependencies need to be identified and linked to their co-dependent items.

1. Reduced Overall Project Risk

One of the main reasons why projects fail, is that there is no planning or overview of a roadmap before starting. Certainly, an agile project will prevent most of that with the regular sprint iterations and planning that happens before each is ready to start. However, what we are referring to here is more about consideration of what needs to be built, the moving parts, before all pieces of software or product can be put together. As an example, you can work on the roof of a house long before the house is actually built, but you eventually need to know that you need to build the foundation and structure before you will get to the roof installation. Further to that, you would need to identify the structural specifications (dependencies) to know that the roof will fit when the time comes to finalizing the house.

2. Value-added Efficiencies in Process Workflow

When your project is in mid flight, the last thing you want to get stuck with is realizing you just randomly selected some backlog items that don’t make sense to be in the current sprint. In the worst of cases, you would likely just leave it out as part of the grooming process. But on the other end, you would want to avoid idle time mid-sprint realizing that there were a lot of items that could’ve, should’ve, or shouldn’t have been there to begin with.

3. Facilitation of Priorities

As you identify dependencies early on in the project, the priority of all backlog items naturally present themselves. Like a seemless puzzle being put together from top to bottom, relating backlog items to see if there are or aren’t dependencies is tedious at first, but it becomes easier to balance as the software or product is being built.

4. Early Elimination of Blockers and Time Wasted

On a day-to-day process, through scrums and standups, a well groomed backlog allows for all team members to avoid getting stuck on blockers. Some blockers are inevitable based on the circumstances of the development process. But there can easily be blockers present on some aspect that could have easily been prevented, i.e. environment availability for a developer who would like to commit their code. Some blockers can have workarounds, but inevitably, the longer it is blocked, the more likely there will be time waste later on.

5. Proactive Conflict Resolution within Teams

When the teams gets to see the benefits of dependency identification, they will go on to assure there is regular backlog grooming almost intuitively. Each member’s best interests will gear toward pro-activity so that there is the least amount of conflict. Further to this, the team will be better prepared to resolve conflict should there be at any point. This is mainly a result of “lessened” levels of conflict. 

6. Increased Morale within Teams

As a direct result of lessened conflict, there will be heightened synergy among teams. They will have a higher tendency to gel together and get along. Effectively, this will prevent turnover and burnout with members of the team. Low turnover means that the team stays intact over long periods of time, and they benefit from not only being at the performing stage of team synergy, but also from the experience of working together for long periods of time. This benefit is irreplaceable and highly valuable.

Keeping an up-to-date backlog certainly has it’s benefits, but as we can see, keeping specifications up to date is not necessarily all about updating scope or tasks, but also continuously identifying how they are all tied together.

[Image courtesy of tigger11th at FreeDigitalPhotos.net]


 

How an Agile Mindset Enlightens the Subconscious Mind

how-agile-mindset-enlightens-subconscious-mindAccording to many experts on the subconscious mind, there’s a very close correlation to our actions from what we think. That is to say, generally there’s a link to what we do because of the way we think, and vice versa. The interesting part is that the subconscious is like a database that is either controlling or being controlled. It controls us on a regular basis and is based on what has happened to us in the past, and can be controlled when we consciously choose to do so. Much like the example of beliefs, if we don’t know why we believe something, but continue to express those beliefs, we are being controlled by our subconscious. Somewhere and at some time, we were led to believe something and have locked it in so that our actions continue to reflect it. Knowing this, we can look to see how the agile mindset enlightens the subconscious mind.

Understanding our Thoughts

If at some point we ask ourselves why our beliefs are there, we may actually be able to change them if we ask the right questions, and refer back to the time when the belief may have been etched into our subconscious. We can however, de-magnetize our thoughts by performing actions that were purposefully and consciously done to overcome subconscious blocks.

Ever wonder why some companies have a culture of having constant meetings, with numerous (and possibly unnecessary) attendees? They may not actually realize that they are wasting each other’s time, and possibly inviting coworkers that could have been best left uninvited so that they could use their time more productively. This leaves many in the workplace crippled from doing their tasks when needed and may need to double efforts to catch up on the more important stuff. To a great extent it comes with learning to self-respect and then in turn that exhibits respect toward others. The best way to respect oneself is to know oneself. You owe it to yourself and others around you to understand the duality of our conscious vs. subconscious influences and the power they can give or take away.

Making Conscious Decisions and Following Through

When we practice agile on a daily basis, and follow the agile values and principles, we may have to take that first step in understanding why we are actually agreeing to do things and think along the lines of what agile represents. Is it because one person had an idea to do things according to agile values, or was it a collective decision? Regardless of the answer, this is the “first step” type of question you need to start asking. Some decide on what they heard, some from their experience, and others go by what is based on faith. If you really want to get your Agile teams set in the right direction, it is important as an agile coach, or as someone championing agile within the organization to ask those questions and get feedback. The result should be from a collective consensus to agree that there is a genuine desire to adopt agile methodologies.

The law of your mind is the law of belief, so all events will follow from that as you work as an individual and as a group in an organization. So as someone practicing agile, you have to make a conscious decision and commit that you will cooperate and apply what is available, and keep it simple and lean. As we know that beyond the agile tools, events, ceremonies, is actual thought process that makes someone do things in a way that promotes the agile values and principles. Have you taken the first step in actually reading the Agile Manifesto? Have you read a comprehensive book on agile to understand some of what the great minds and gurus on the topic have to say?

How This Ties into Agile and our Subconscious

We have a lot to owe to our subconscious mind in allowing us to follow habits whether good or bad. Something as simple as why we brush our teeth, was at some point a conscious decision to properly practicing good hygiene. At this point you probably brush your teeth guided by your subconscious. Putting this into the concept of agile practices with set time-box durations (sprint planning, sprint demos, standup meetings, etc.) we are programming the subconscious as if to say, “this is something that I’m going to commit to doing regularly and repetitively. For those who have been on their umptieth sprint or agile project, they have already realized the almost seemingly thoughtless process when starting and ending their sprints. It can also be said that there’s an almost intuitive insight as to what the consequences will be if things fall outside of time-boxed events or get left out entirely. With that we can see at that point how the action-based practices have tuned the subconscious mind and helps keep in place what the agile values and principles were meant to represent.

[Image courtesy of ratch0013 at FreeDigitalPhotos.net]

Adopting Agile – Breaking the Cycle of Insanity

adopting-agile-breaking-the-cycle-of-insanityMany personal and work-life goals run on the basis that there will be one expected result from our habits and behaviors. This assumes everyone is doing what they are supposed to be doing and that the track they are on is executed without error. The problem arises when we try to force expected results without actually knowing how to get there. Have you ever tried to get to a destination faster without ever changing your route? This relates strongly to our day-to-day activity. We can assume we do the same thing every time but get different results, and if not we get upset or blame others for it.

There’s a reason why Albert Einstein said “Insanity is doing the same thing over and over again and expecting different results.” Now put that perspective into your work’s daily, weekly, monthly and yearly routine. What you may realize is by definition, we all experience some level of insanity and we are making everyone in our lives share in those expectations while not changing a thing about ourselves. What does adopting Agile offer that could break that cycle of insanity?

Step 1 – Acknowledge Change is Necessary

First we must acknowledge that the first step in breaking away from insanity is to change at least one thing in your routine. That could be anything from when you get up in the morning to when you go to sleep. Perhaps it could be waking up to music, or reading a page out of an inspiring book rather than reading your work emails.

Step 2 – Commit to the Change

Second we need to make sure we consciously commit to the changes we’ve identified for a specific period of time. We need to be sure that nothing or nobody gets in our way to that change and be sure that it’s ingrained in new behavior. Sometimes it may feel like a heavy sacrifice, but just remember that the mind is bound to give up before the body or behavior does.

Step 3 – Observe the Changes and Repeat the Cycle

Once you’ve reached the end of the specific period of time. Sit and write down what were some positive results you’ve noticed over that period. Then do the same to notice the negative ones. Finally think of ways that you would like to have changed in a positive direction. Be reasonable with your expectations, as this should not be a wish list that you would expect results that would take years to achieve. However, it wouldn’t hurt to have a few long-term goals that you hope to achieve in the accumulation of time of progressive periods with positive results. But just be sure you go back to Step 1 and repeat the cycle, and don’t forget to reward yourself for your positive results.

The result of these steps is already a concrete step to eliminating personal insanity. What to do about insanity coming from your peers in the form of complaints and excuses as to why their job, life, or results is a different story. Perhaps let them read this article. If you take on the steps above, you may come to realize is you’ve made Agile a part of your personal accomplishments not just something being used at the office on a project.

Putting Agile Processes to Work For You

To those who are new to Agile, you may ask, what do the steps above have anything to do with it? It’s important to consider that adopting agile is mainly a mindset change. Why not start with yourself. Above we’ve incorporated the agile ceremonies in a subtle way, but you can be assured there are elements of Sprint Planning (Step 1), Daily Scrum (Step 2), Sprint Review (Step 3) and Sprint Retrospectives (Step 3). 

Once you’ve taken these steps and noticed changes, keep in mind that as long as your goals change, so should your behaviors and habits. Goals are progressive and probably don’t always stay the same. If they are, you should probably consider being specific. i.e. if your goal is to gain more knowledge, make sure you specify which domain of knowledge, so that you don’t sit back and become complacent.

[Image courtesy of stockimages at FreeDigitalPhotos.net]


 

5 Healthy Workplace Habits by Using The Scrum Process Model

5-healthy-workplace-habits-by-using-the-scrum-process-modelThere are many ways to do work, and to be honest, not many people are taught how to create good or optimal workplace habits. That being the case, workplace dynamics can range from being a cesspool of toxic behavior and habits, to one that has an environment of the utmost respect for one another. The environment created in most workplaces is a cumulative result of individual behaviors happening at a given time, much like society, but only much more concentrated since we’re left to interact daily from morning until afternoon with our work colleagues.

The following factors, as part of the scrum process model, are found to reduce stress, anxiety and in turn increase workplace  motivation and productivity:

1- Intermediate Deadlines (The Sprint)

It has been shown that when work has no confinements and there is “no light at the end of the tunnel,” the level motivation steadily declines over time. Further to this, the likelihood of burnout and employee turnaround starts to become more and more apparent. The Sprint as a 2 to 4 week timebox that is meant to happen iteratively, gives a mini-project sense to accomplishing each round that expectedly gives a delivery of product. Intermediate deadlines in this case, tend to occur frequently and regularly give a sense of accomplishment and cyclical motivation.

2- Sense of Purpose (Sprint Planning, Sprint Goal)

When Sprint Planning takes place, there’s a chance for everyone on the team to set their sights on how much work can be estimated for the upcoming sprint timebox. As part of the Sprint Planning activity, a Sprint Goal is set by the Product Owner that enables all involved, the focus and vision as to what they will all being working toward by the end of the Sprint. Consequently if there is proper buy-in at the start with all sights on the sprint goal, it will give that sense of purpose that everyone can focus on and relate to for achievement.

3- Doing Things Better Every Time (Sprint Retrospective)

As most workplaces allow their employees to become complacent, and resulting in lack of performance feedback, the Sprint Retrospective allows for that time where everyone as a group can look at what were the great and no-so-great behaviors of the previous sprint. This sets the course for getting better on an iterative basis as this is done in each sprint. What some people don’t realize is the advantage of thinking of what to “stop doing” and what to “start doing” is already a two-fold way of taking on good habits. This is a bi-directional thought process, since most people typically think of improvement in one direction such as “just do things better” and leave out “what bad habits should I leave out of my routine.”

4- Great Support Network (Daily Scrum/Standup)

Everyone knows that an ongoing support network is a great positive factor. The daily scrum/standup allows for everyone to confirm what they were working on the previous day, and what they will accomplish for the remainder of the current day. The key part of team support for that day is when impediments and blockers are reported. This is a chance for everyone to chip in and see if there’s a way to resolve the blocker. This isn’t just the job for the Scrum Master, but also for the rest of the team. So the blocker announcement starts at the scrum meeting, but gets resolved outside of the meeting with the relevant members of the team, most likely those that are knowledgeable in the area of the impediment. Everyone else continues on their existing tasks to make sure productivity is not impeded.

5- Being Able to See Results  (Daily Scrum/Standup, Sprint Review, Sprint Retrospective, Sprint/Kanban Board)

The structure from which we have a sprint allows everyone to see results on a regular basis. Whether it’s on a daily basis (Scrum/Standup) or by sprint duration (Sprint Review, Sprint Retrospective). We are able to see and experience results on a very constant basis. Along with tools such as the sprint/kanban board that are high-touch/high-visibility in nature, allows for everyone to see progress and status as it happens.

On a Final Note…

It must be said, getting everyone aligned to proper workplace habits can come naturally to those who adopt the scrum process model. It’s not necessarily about having a process, but actually  having a positive attitude and confidence that it will work. Creating that momentum in your day-to-day, will likely come with resistance at all stages of development, but those who are on board, will quickly become visible to the organization and will certainly become the agile champions and leaders.

[Image courtesy of Ambro at FreeDigitalPhotos.net]


 

How to Manage Epics as an Agile Tool in Planning

how-to-manage-epics-as-an-agile-tool-in-planningAs part of a large project, you may have a complex product to develop. Whether for intangible (software, games) or tangible (hardware, electronics), there is a need to structure your backlog by level of complexity and size. Although we typically do not go so far as creating Epics in all agile instances, they can prove to be a handy agile tool if created and used in an organized fashion.

The idea behind Epics are to create a sense of commonality between multiple user stories. It is important at this stage to be sure your agile team members are not using the terms for Epics interchangeably with other terms that could drive confusion in day-to-day communication. But along with this defined approach, all team roles (product owners, business analysts, scrum masters, developers, etc) should think of Epics structures and how they will be used going forward. Here we look at Epic examples in hierarchies for Features, Themes or Requirements.

Features in Epic Hierarchies

One way to look at an Epic is to identify it as the high-level feature. As an example we are referring to the physical features of a landing page on a website. It would have a header, footer, content, images, media, etc. With that you can further breakdown the characteristics with user stories, and then tasks to look like the following:

Epic(Feature) —> User Story —> Task(s)
Example: Header —> As user, I would be able to use a search bar to search the site content… —> Investigate Search Bar functionality

Themes in Epic Hierarchies

Epic —> Theme —> User Story —> Task(s)
Example: Landing Page —> Page Structure —-> As a user, I would see 3 columns… —> Create left column, Create right column, Create center column

Requirements in Epic Hierarchies

If you were developing a series of websites for instance, you would need to repeat a set of requirements for each website. In this case you would likely re-use the requirements as you start each website, and then vary those features. The following example would facilitate re-use of the requirements from one website to the next.

Epic(Requirement) —> Feature —> User Story —> Task(s)
Example: Website Landing Page —> Website Page Navigation —> As a user, I will be able to navigate to all site pages from the landing page… —> Create Navigation Bar

There is no definite way to use Epics, these are simply examples. The variations can be infinite and can vary from team to team, project to project, or product to product. But as we know that Epics are typically large user stories, and represent a level above the user story. One thing that needs to remain stable is that the agile team must agree to structure that makes sense for them.

Using Epics to Stay Organized

Using Epics as an agile tool to organize the stories, can enable easier overview of the different product components (features/requirements/themes). As the sprint backlog can list tasks to be developed by multiple agile working teams on different features at the same time, the overview of each Epic can help the Product Owner prioritize stories and interlinking dependencies with each other.

Another useful setup that helps in the structuring of swimlanes for your Sprint/Kankan boards is to have them created according to your Epics. This makes the horizontal divisions clear on the common groupings. It also adds another dimension to manage on your board, but it certainly would be helpful in larger sized projects.

The most important part in creating structures, is to keep it simple. If there is too much team discussion and confusion where everyone is lost in managing the structure, it means that it’s not simple or clear enough. Of course, if all else fails, keep in mind that Epics are not essential. If your team doesn’t see a need for them to exist in your agile product management scheme, just leave them out, as they might not be required due to your project not being as large or complex as originally thought.

[Image courtesy of Danilo Rizzuti at FreeDigitalPhotos.net]


Why Agile Planning is Time Well Invested

When looking at the cumulative amount of time invested in agile planning, you may be surprised to find out there’s a lot more used than a waterfall project. How many times have you made a purchase only to find out that you could have spared some funds if you would have taken a few more minutes or hours of research to get the best deal. If only you would have taken some time to plan in advance. Sure you can just return it for that 30-day money back guarantee, but why waste the time and effort after the fact? The reason here, is lack of planning. Like all things we are interested in, we tend to reduce the amount of time between something that we want so that our brains can register that point of fulfillment. But what if you really got what you wanted and without remorse? Wouldn’t your fulfillment be much greater? The answer is YES. Instant gratification is not always the best route especially if it means that you will have issues to resolve right after.

How is it that projects get into trouble toward the end and not at the beginning? The answer might raise memories of regular finger-pointing that took place in more than one of many likely scenarios. Anywhere from blaming the customer, vendor, unforeseen events, or employee incompetency. This creates an awkward situation and all egos get the best of everyone, so that eventually it becomes a race to prove who is the least guilty in the whole process. If you’ve reached that point, it’s already too late to fix the problem, and the situation is probably already highly toxic.

Cone of Uncertainty
Cone of Uncertainty

Understanding Risk and Uncertainty

In order to undo our regular mind programming to get to the end of a project to guess if it was set for success, we need to implement processes that give us the best use of our time and will give long-lasting motivation, satisfaction and gratification. In a typical project management life cycle, we might think of uncertainty as a steady plateau of risks and issues, but in fact risk is highly concentrated at the beginning and much less at the end of the timeline. Visually, this is represented by the cone of uncertainty.

The representation of the cone indicates that you know significantly more as time goes by. But what does this mean for everyone on a project? Toward your client, you need to be sure no promises are made, especially not at the very beginning. For your client, it means that they are risking time and budget without knowing what product they are getting until the near end of the project.

One-time Planning vs Iterative Planning

Now imagine this is a one year project, and everyone suspects they are up for some big surprises at the end. Now we figure, “let’s plan everything at the beginning and everything will be fine.” To be honest, most projects aren’t even that fortunate. It would be a step in the right direction. But what if changes occur throughout our project, as almost all do? We figure, sure let’s create that “change request” and do it. That’s alright, but what happens to the rest of what we planned? We still have to do it, and therefore our efforts get crunched if we try to keep the same timeline.

In the agile project methodology we have events such as release planning and sprint planning, so we’ve already taken care of change as part of the process. As part of the iterative process the agile team is able to adjust as they go along. While we are building-in the planning at the beginning of each sprint (agile games such as planning poker included), we know more and more as we go along and as a result we are allowing ourselves to take on the benefit of progressive elaboration. What this means over time is that as we know more and more about everything in the project (literally), we can plan accordingly so that as we get to the end, the product we set out to develop is as close as possible to what is expected.

In the end, there’s a lot more planning in agile that both you and your client must do (if comparing waterfall vs agile), but it is a lot more of what you want, and a lot less time-wasting will result. It can be seen as a good investment since you will have more time at the end of your project giving and receiving praise. You will have also avoided all that time trying to justify to your customer why certain features that were identified at the very beginning of the project, were not included. Certainly there are other factors to make the end-result a success, such as considerable backlog management and necessary stakeholder involvement, but this is just a part of what you can expect.