Agile MindStorm - Ideas, Actions, Results !!!

project management, process implementation and improvement, IT services and integration, agile, ideas ...


Any Paradigm, which has human interaction at its heart, will fail if human psychology is not understood and taken into account. While applying Scrum we must always keep in mind following things:

  • People will always put their own interests ahead of interests of the group
  • People are self-interested
  • It is very difficult to get more than 5 people to agree on anything 
So, I want to share my observations. You can decide if it is good or bad and how to solve it:

- Scrum Masters turn themselves into Project Administrators. It is the Team who is responsible for delivery, since main responsibility of Scrum Master is to make sure that team is following Scrum and remove impediments.

- Each team chooses different development approaches and tools for internal communication, since they are self-organized. And those decisions depend on team experience, knowledge and etc., which doesn’t mean that the best decision is made.

- It become difficult to solve impediments related to cross team communication, since every team is only concerned about their own Sprint goals.

- Teams start focusing on accounting the time rather than results and goals, especially at the start of Scrum adoption. It also appears with more experienced teams, especially if team experience difficulties to make a technical decision.

- Not raising impediments. In some contexts (e.g. if trust is lacking or in cultures where maintaining face is important), it may be difficult to raise issues in a meeting or a stand up.

- Everyone is responsible means no one is responsible. Some people use it to find excuses or to hide their incompetence, errors and other problems. It is always easy to say “The Team failed” or “You didn’t follow the Scrum”, but not “I failed” and it doesn’t matter in which role you are - developer, tester, scrum master, product owner.

So, don‘t forget to encourage the most valuable and productive aspects of human nature, whilst constraining the expression of some of its worst and most destructive aspects.




Being a customer driven and customer oriented is very good. This approach allows you to meet your customer’s expectations. And what can be better than happy customer? :) But there is a question: Is it enough only to meet the expectations? 

Probably not. And my opinion is based on following reasons:
  • Fulfilling expectation often means that only current problems are being solved without considering general improvements or innovations
  • It might be difficult to be proactive for solution/service/software provider, since most of the time is spent on current problems
  • Customer requests might be very specific and as the result product might be useful only for the narrow market segment
We must listen and understand customer’s market in order to improve this and become proactive. In other words, meet the desires and the unrecognized needs of the customers, understand customers, and think ahead.
Agile product management helps you to combine you customer and market focus at the end of each iteration or release and make necessary adjustments to your road map with less negative impact to your goals. Let’s imagine two approaches: agile product management and waterfall product management

Waterfall product management
Assume that you decided to start working on you product in January. Of course you had a specific understanding level of your market, potential customers at that moment. You performed market analysis and elaborated requirements during next month and started development of your product. But as soon as you "fix" your requirements you lose your "connection" with the market. And the best thing that you might get at the end of your activity is to meet the expectations of your customer (not 100% :)), but definitely nothing more. So, you depend on your luck here :)

Agile product management
If we try to simulate the same project, but apply agile product management approach to it, we will notice that in this case we have more chance to achieve better results. Why?

It happens because you always share your results with your stakeholders. You stay tapped into your market and always rethink achieved results, gather feedback and apply changes according market changes. Another thing is that you provide solutions to existing problems early and get a chance to identify new and different ones. These periodic activities also allow you to gain better understanding of the domain (market/customer and etc) and provide better results in future.

What about real life sample? Well, imagine you develop several custom solutions to different customers. These solutions do pretty much the same thing. After another review (you have enough knowledge about this specific market at that moment) you might come up with two approaches:
  1. just implement another custom solution to new customer
  2. or start working on a common solution, which will meet the expectations of most of the customers and leave custom decisions only as special cases
So in this sample you had to stay customer focused while making a solution to a specific customer, but you must be market focused to make the second decision, since it allows you to attract more customers.

Customer focus is not equal market focus.


Internet community is talking a lot about behavioral targeting these days. Members of this discussion can be divided into two camps: Like and don’t like.

Like camp
Imagine the nightmare of less annoying ads that might actually provide more useful information to site visitors? Isn’t serving up “untargeted” dumb banner ads for heart medicaments to young people and Victoria’s Secret ads to school kids the problem of modern online advertising? We actually make advertising more relevant and interest-based!

Don’t like camp
People are concerned about privacy in the internet. Advertising sell people things they don’t actually need. Things like television sets, automobiles, catsup, mattresses, cosmetics, ranges, refrigerators, and so on and on are only optional stuff. Behavioral targeting allows manipulating people more effectively. :)

Here are some interesting readings related to this topic:
- Online Advertising & User Privacy: Principles to Guide the Debate - http://www.pff.org/issues-pubs/ps/2008/pdf/ps4.19onlinetargeting.pdf
- Targeted Online Advertising: What’s the Harm & Where Are We Heading? - http://www.pff.org/issues-pubs/pops/2009/pop16.2targetonlinead.pdf
Platform for Privacy Preferences (P3P) Project - http://www.w3.org/P3P/

But no matter if you like it or not online advertisers will try to improve effectiveness of campaigns. Meanwhile the Network Advertising Initiative (NAI) released a study called "The Value of Behavioral Targeting" by Howard Beales- derived from explicit data from 12 ad networks, including nine of the top 15 ad networks by total unique visitors according to comScore's December 2009 rankings.
Results of this study indicate that behavioral targeting is an essential part of ad network, publisher, and advertiser success.

Three main conclusions from this study, quote from article:
„First, advertising rates are significantly higher for behaviorally targeted (BT) ads. The average CPM for BT advertising is just over twice the average CPM for run of network (RON) advertising. On average across participating networks, the price of BT advertising in 2009 was 2.68 times the price of run of network advertising. Second, advertising using BT is more successful than standard run of network advertising, creating greater utility for consumers and clear appeal for advertisers. Conversion rates for BT advertising are more than twice the rate for RON advertising. Third, a majority of network advertising revenue is spent acquiring advertising inventory from Web content and services providers, making BT an important source of revenue for publishers as well as ad networks.“
This study clearly explains why social networks as Facebook, MySpace, Twitter and others are so popular for online advertisers - these social networks already include all elements required for behavioral targeting. For example in Facebook, if you are a fan of „Photo club“ page or a group than you will see an ad of a new camera or photographer related stuff more often.

Implementation of behavioral targeting out of the scope of social networks is quite challenging and technically not so easy solution since it requires personalization of anonymous cookies. So, let‘s use the power of social networks! :)

Final word - I vote for personalized content rather for dumb ads.

p.s. if you are paranoiac about your privacy just clear cookies more often :)


No matter what are you working on: big project, start up, just some activity with defined deadline - you must always track it and know where you are at the specific point of time? As you all know following things are being tracked: Time and Cost; Resource Allocation; Progress and Efficiency; Risks, Changes, Issues; Project Health.

Sounds very easy and obvious, but when it comes to real life it occurs not so straightforward - as the result projects miss their deadlines and budgets, customers are not satisfied and so on. What i decided to do is to compare standard and lean (agile) approaches in context of project tracking. I am considering Scrum as an agile approach.

Time and Cost
Standard
Put an hour aside every week to determine if you are likely to complete the project on time. To do this, identify any tasks that are running late and determine whether they are likely to delay the overall project. Then look for ways that you can save time by; finishing tasks earlier, delaying non-critical tasks to after the project has been completed, or gaining approval from your Sponsor to remove tasks altogether.
You also need to review the total spend of the project to date against the original budget set. Identify ways to reduce costs by allocating cheaper resource, reducing the project scope, or boosting the efficiency of your team.
Lean/Agile
Each project must have a product backlog - a single list of features prioritized by business value delivered to the customer. The Team demonstrates to a customer potentially shippable peace of solution, with the most important features addressed first. It is not important how much time you spent on this; it is more important how much work is left. Simple product backlog burn down chart easily indicates if there is a risk of not making it on time and agreed budget. You can also address high technological (or others) risks during the first sprints and clearly communicate/demonstrate it to your customers and probably discuss potential trade off‘s (remove some features and etc). Theoretically customer can even decide that demonstrated functionality is enough and stop further development.
Summary: simple rule in scrum - demonstrate what you have done at the end of the sprint. It allows you to be more transparent to you customer and have more constructive discussion while choosing trade off‘s or making other decisions in tracking project’s schedule and budget.

Resource Allocation
Standard
You need to keep a constant watch on the percentage of time that your team is allocated to tasks. If you have one person allocated to tasks 50% of their time and another 150% of their time, then you may not be working efficiently. Instead, balance workload fairly so that your team is kept busy 80-100% of their time, without being overloaded. If you intend to overload resource, then only do it for a short period of time, to avoid “burnout”.
As you reallocate work among your resources, keep an eye on the overall resource level. It may be that everyone is under-allocated and you can take a person off the project, saving on cost. On the other hand, if everyone is over-allocated then you may need to quickly allocate more resources to the project as soon as possible.
Lean/Agile
The team in Scrum is typically five to ten people, although teams as large as 15 and as small as 3 commonly report benefits. The team should include all the expertise necessary to deliver the finished work and it is self organizing. Project managers can replace the time they previously spent “playing nanny” (assigning tasks, getting status reports, and other forms of micromanagement) with more time “playing guru” (mentoring, coaching, playing devil’s advocate, helping remove obstacles, helping problem-solve, providing creative input, and guiding the skills development of team members). So, in fact this shouldn‘t even be a problem anymore, team will handle it by themselves.
Summary: agile approach allows you to focus on other tasks rather than trying to allocate tasks to team members. (And this is not very effective in a lot of cases when being done by manager)

Progress and Efficiency
Standard
You also need to track the progress and efficiency of your team. ‘Progress’ means the percentage of tasks completed to date. ‘Efficiency’ means the number of tasks completed on time. You need to track these items to ensure that you are progressing according to plan and that your team is working efficiently in completing tasks assigned to them. There are a lot of software tools that provides you with progress and efficiency information, as well as the usual project planning and tracking features.
Lean/Agile
Progress is tracked, but a bit differently. As I mentioned above it is important how much work is left (either within the sprint or product backlog). Effectiveness of the team is measured in sprint velocity - how much work is done per sprint. (It is calculated from previous sprints in most cases) It is not so important to track if everything is being implemented according the plan; main thing is to make sure that current plan helps to achieve desired results, or should the plan needs to be changed?
Summary: agile approach is more focused about what features (not tasks) are already implemented and make sure that only high priority features are being implemented in first place.

Risks, Changes, Issues
Standard
Every project encounters risks, changes and issues at some point. It’s often impossible to prevent them from occurring, so the trick is to resolve them as quickly as possible when they do come up. Throughout the project life cycle, you need to watch them closely. For each item raised, set a ‘target resolution date’ and track these dates carefully to make sure that they are adhered to.
Lean/Agile
Benefits of agile approach are the most obvious here, since according product backlog only high priority (the most important, the most technically difficult, and the riskiest) features/tasks are being addressed first and presented to customers at the end of each sprint. If changes occur in the middle of the project they are always introduced during the sprint review to customers and prioritized along with other features. As the result better understanding and transparency between customers and developers is achieved.
Summary: with the help of agile approach risks are addressed much earlier and results/changes are communicated more often. As the result it allows to make better decisions.

Project Health
Standard
In addition to tracking the project at the micro level, you also need to stand back and take a look at the project from a helicopter level. You need to gain a clear view of the overall project health. You’ve already done most of the work by assessing the time, cost, resources, progress and efficiency of the project. By also taking a summarized view of the project each week, you can lead the project team towards success.
Lean/Agile
Sprint retrospectives help the team to review the progress of the project and agree on improvements for next sprints. Sprint retrospective is an opportunity for the team to discuss what’s working and what’s not working, and agree on changes to try.

Summary
The goal of all development approaches and practices is to finish projects on time, on budget and with agreed -upon scope. But it seems to be that agile approach is the most effective and transparent way to do that. Even though Scrum is the framework with a small number of rules, but there are common challenges in adopting it. Scrum tends to make visible a lot of issues that exist within the team, particularly at the
beginning. For example, most teams are not good at estimating how much they can get done in a
certain period, and so will fail to deliver what they committed to in the first Sprint. To the team,
this feels like failure. In reality, this experience is the necessary first step toward becoming better at estimating, and with the support of a scrum master, the team can be helped to see it this way. Another difficulty a team might have is around the Daily Standup Meeting - getting all team members to commit to gather at a specified time, on time and every day without fail, may require the team to operate at a higher level than it’s accustomed to, and some teams will be unable to do this. One very common mistake teams make, when presented with a Scrum practice that challenges
them, is to change the practice, not change themselves.


Subscribe to: Posts (Atom)