Monday, March 28, 2016

The difference between Agile Product Manager/Owner and Agile Business Analyst

I will make this one very straightforward.

Product Owner and Business Analyst are not the same role and differ a lot on their objectives.

The focus and description are described below:

Product Owner/Manager: This role focus on the vision of the product, understanding the market, understanding if the product if reaching its objectives (revenue, adoption, etc.). This person feeds the business analyst with the high level functionalities specs.

Business Analyst: This role basically translate the high level specs coming from the Product Owner/Manager to stories. The stories on its ideal format should be well structured with a clear statement of the functionality from the final user perspective, acceptance criteria, etc.

The separation of these roles are very important and should not be concentrated on the same person.

Sunday, March 27, 2016

The skills of a great Agile Product Manager (or Product Owner)

I've worked on many Agile projects in my career. On many of them I had a product manager working within the team but except by few lucky times my experience was not great.

This is not a behavior nor attitude issue. The problem was lack of skills.

A product manager should have a combination of skills that will aggregate and drive the implementation. And it is NOT the same as a Business Analyst. There are separated concerns between them - which I will explain in another post.

So, in short, a good and mature Agile Product Manager should have the following skills:

- Knowledge of their company's mission and objectives: An Agile Product Manager should understand where the company is going, their mission, the landscape of possibilities and how his own product will contribute to the evolution of the whole.
I strongly recommend NOT HIRING EXTERNAL Product Managers. If you do that you're basically delegating the steering wheel to someone who is not part of your culture, is not strongly aligned to your business not has a good feel for what he should be doing with the product.

- Knowledge of the market: It doesn't matter if your product is focusing on Agriculture or Retail. One should know the market where their product is going to perform.

- Understanding of metrics: If one is running on the blind and doesn't know how to measure the success of the product not has measurable objectives, this is a bad sign.
For the most part product success is tied to things like revenue, number of users, customer satisfaction, etc. Make sure you product owner understand this.

- Product Steering: A vision for what you are doing is fundamental. If there is no vision your product won't go anywhere simply because it was not something that someone thought about. It just happened somehow.
Please note that experiments, AB and/or ABC tests will happen but they are part of a vision, a possibility. Again, do not run blind.

In general a Product Manager/Owner should be someone with great skills.
You might have the best Agile Team with the best developers in the universe. If your product doesn't have a good Manager/Owner, all the efforts will be useless and you'll be investing your money on garbage.

Sunday, February 28, 2016

Agile Coaches - Choosing (or not) a real and good one

So turns out I've seen many folks calling themselves professional coaches.

I have nothing against the term and in fact it can be really valuable.

Lots of coaches are present today in many areas. I've seen business coaches, health coaches, developer coaches, etc. Another "trendy" is "startup coaches" who never started or ran any business. To me it is a joke.

What concerns me is that some "coaches" have little to no competence - though I see people buying their services.

I want to share with you some hints to avoid bad Agile Coaches and pick the best ones without falling in a trap:

1. Look for past references: Talk to other people who already used the services. Investigate if others used the services of a coach the same way you're planning to. Look for the final results.

2. Pick people who have recent hands-on experience. I have seen coaches that have no practical experience in Agile Projects. Some of them get a doubtful certificate and call themselves a coach. If you want advise pick someone who have lived through many successes AND failures.

3. Not only counts but variety is also important. Different business have different problems and learning from the blend will bring you great insights.

4. SCRUM is NOT AGILE. Ok, Scrum is ONE flavor of Agile but not the only one. If your coach claims you'll become Agile by implementing Scrum... RUN AWAY! There are many processes and methodologies within Agile and a good coach should be able to analyze and drive you towards the best option for the specific project. The idea of "one box fits all" is very against the Agile principle of "Individuals and interactions over processes and tools".

5. Immersion. If your Agile coach "shows up" once a month and claims he will transform your organization by doing that... rethink engaging.
Running a real Agile transformation, i.e., for example, taking an organization from "Waterfall" to Agile is not simple and usually takes time (several months) to start taking place and one individual alone won't do it. It requires one or more teams with people in different roles helping on this effort.

6. The behavior of an Agile team should be exactly what you're aiming for. It means collaborative, skilled, trustful and knowledgeable. If you want a team helping you with the transformation look for these characteristics coming with the hired team.

Though this is a post focused on Agile Coaches it should be somewhat applicable to other types of coaches.

Again, always look for individuals and teams with long experience in Agile and references.

Hopefully this will help you selecting good coaches and team - and save you time and money!

Monday, November 30, 2015

Break the walls for Agile Transformation

Several times I helped my clients to get away from traditional software development (Waterfall, RUP, etc.) into the Agile way.

One of the things that always brought me attention was the recurring behavior of line, mid and higher management to go... "do what we say but not what I do". I explain...

One of the basic things of Agile is removing barriers, creating an open and collaborative environment, flattening organizations.

Interestingly enough, most managers still want to keep their "trophy private room" and most likely would never go and sit with "the rest".

So how can you achieve plenitude of Agile if some kind of division is still on?

Making an organization Agile and flattening it is a challenge but if you want to go through a transformation, well, dive into it otherwise you'll be faking it.

Sunday, November 29, 2015

Principles to work in Agile (or any) Consulting - Ethics and Behaviour

During my career I worked in many different companies ranging from Banks, passing through Educational institutions, pure technology, aerospace and finally I landed into consulting.

The main reason I continue to be a consultant is because I like the variety of projects, clients, environments. It pushes me all the time, not letting me ever stay in a comfort zone.

Consulting in the Agile World is specially interesting since during the past years I’ve helped many companies to migrate from traditional way of working with software to a more modern and consistent way - the Agile way.

On this process I had to deal with many though situations, many of them involving clients and other vendors. Fortunately for the past years I worked in a top-notch consulting company with fantastic people and this helped me thrive during hard times.

Let’s talk about the tough situations on this post.

So for example, suppose I am working for a client where we have other vendors (consulting companies). We want to avoid stupid disputes between the vendors while trying to keep it honest and solving any difficult issue that appears - doesn’t really depend which side might have caused the problem or situation.

So how can you really keep things honest between the different vendors?

The secret lies on few principles that I adopt, all of them linked to highest standards of Ethics and Honesty:

1. The truth. Bring problems forward. If possible with a solution

You only know one’s personality for real when the person is under high stress. The tendency for many is to desperate and act in weird ways with lies, mistrust, trying to find someone to “throw others under the bus”.

Do not misact and keep control of the situation.

The first thing on a situation like this is to focus on the problem and find a solution. Or a partial solution. Talk to your peers and search for options.

But even if no solution emerges you still have to deal with the truth and not lie about it.

Be calm, communicate to your client the situation and be prepare to help on any way possible - and make your peers and specialists aware to be called for help

In many situations like this, while exposing the issue and working with the client we were able to find excellent solutions that not only solved problems but also opened new opportunities in addition to solidify the trust between our consulting company and the client

2. Be a partner

Listen to what your client needs to achieve, to his problems, not only to what he wants you to do.

The great solutions come from understanding the problems from many points of view. If someone comes to you with a to-do list, as a good partner, you should question and re-evaluate the solutions.

A good consultant must question (gently) and probe the efficiency of the solution. Of course, you have to practice this “procedure” without risking being arrogant and it is not something to be done every moment.

Being a partner means work with your client through the good and bad times finding business opportunities and solutions that will make the business better.

3. Use empirical data. Facts.

A good professional uses powerful tools and one of the best tools is Math. You need to be honest with yourself and know how to work with data. It can bring positive or negative information but good empirical data won’t lie.

Recently I’ve been involved in a project where we inherited the work from another consulting company. The client wasn’t comfortable with the old consulting and was suspicious about the quality of the tests done before.

We did an assessment and even though the performance tools were reporting a code coverage near to 100%, a simple test from one of our architects brought the reality up - in fact, the rest coverage of the code was near to 2%.

One needs to be very transparent with the information but any hard information like this must be carefully verified before being brought as a fact.

4. If your action (for example report, verbal communication) will put someone in a uncomfortable situation, share it before

So say in the example given on the topic "Use empirical data. Facts.” we were working with the another consulting company on the project on client at the same time.

My advise would be to communicate the “bad test coverage” to the other consulting company before communicating the client.

The facts won’t lie - and probably an uncomfortable situation will emerge - but it will at least give them a chance to prepare a strategy before talking to the client.

5. Seek incremental progress while still focused on the long term goal

In the good Agile spirit, plan for incremental progress to show constant advance. Betting on a “one bit shot grand finale” isn’t compelling.

Remember… projects have budgets, are prioritised among others, constantly analysed. If you can’t show progress you can’t justify investments these days. Plus, focusing on the right things might help you reach the 80% value sooner than you expected and in case your client runs out of budget you still added value.

I guess this should be any project’s objective - maximize the investment - and preventing frustration due to near-to-zero achievement when bad times come.

6. Cross check with your own partners

A good consulting team should be able to work as one unit, constantly communicating and sharing information with each other, tracing and changing plans together for the best interest of the client.

Anybody working or acting alone will have a very short life in consulting. The more senior a consultant is, better he knows that teamwork is the way to go. There is no room for backstabbing or lack of ethics.

I personally drive my personal and professional life based on the simple principle that nature always seeks balance therefore any bad action that you do will eventually fire back. It might take time but it will surely do.

In other words, keep straight on your believes - assuming they are on the good side.

7. Focus on the work, never on the politics

While working in the consulting world you’ll eventually be working with big corporations where big politics exist.

You should know who you’re working for and what they really want to achieve and focus on get that mission accomplished.

It is not hard to get caught on the day-to-day politics and if you do it can easily put you in jeopardy. Focus on the what needs to be done, work with everyone with transparency making clear what you’re trying to achieve, without trying to cause harm to people neither to your competitors.

I remember a case where we were working for a client and in the same project we had 2 people from another consulting company.

There were several projects and teams with different consultant mixes and fortunately our teams were performing well - except one.

We investigated why the project had a lower performance and through some social interactions we discovered that the partner of another consulting firm told to one of the analyst (who was working on the team) to intentionally slow down work so that the other consulting company wouldn’t look so bad. It required some social skills from our consultants to discover but sadly the truth wasn’t palatable.

This of course would never be accepted and on that situation triggered a big issue.

So, focus on what needs to be done and you’ll be doing the right thing.

8. Celebrate, interact

Though I have to communicate a lot during the day and like it I also need my quiet time at the end of the day - but I also need to spend some time with my colleagues after work to celebrate small and big achievements.

This is not in your job description but going out after work is part of it.

You’ll learn more from your colleagues and from your client, create a new level of connection, learn and share common things like hobbies, opinions, thoughts, objects. And yes, this will create new opportunities and might make things easier in your day-to-day tasks.

Once in a client I really need to get credentials to access the systems but I was depending on someone to do it for me. The person was very busy and granting the access to what I needed would take him a good amount of time. This situation lasted for few weeks.

One day I went out to celebrate someone’s birthday and the person who could grant me the access was there. I invested some time understanding his work, giving him some possible tips to make things better and I identified a common interest - fishing. The conversation was very pleasant.

The next day I open my email and the first think on the list was my new credentials followed by another email from that gentleman thanking me for the tips on his work and for the list on good spots to go fishing.

9. Be Patient

Losing your temper or trying to cut corners usually is a shortcut to failure. We all want to move fast, accomplish our missions but it just takes time.

We depend on people who have different priorities, different rhythm and focus so exercise your interaction and be recognised for the good things will buy you some goodwill to be used.

And remember, screaming, mistreating others will only guarantee you some of the more commons bad adjectives. Be patient but keep pushing.

10. Share opportunities and grow

Business is all about opportunities. Opportunities to save. Opportunities to grow, expand…

Sharing ideas and opportunities can open doors to your client (person) to grow and shine.

While working for clients you don’t need to be the “shiny” person from the eyes of the client's organisation. You need to help your partner (client) to achieve their objectives within their organisation. As a consequence you’ll also grow and expand your horizons.

It is the same principle for a boss-employee relationship - help your boss to grow and you’ll grow too.

Wednesday, November 18, 2015

Coaching people: Bringing people into Agile

Like in any professional area, people sometimes overrate certifications.

I really don't think that 2 days of training will give you enough insight to become an expert on anything.

Lots of certifications (Certified Scrum Master aka CSM, Certified Product Owner CSPO, etc.) will give you a very brief introduction to what the real Agile world is.

In my opinion the real "training" should be through personal coaching (or sponsoring). And it takes time.

So if you want to get into real agile, I'd recommend few things:

1. Find someone within your company who is expert on what you want to learn.
If you want to be a good Agile Business Analyst, find someone who is good on that.
If you want to become a project leader (Project Manager, Iteration Manager), look for someone to help you.
If you want to be a good agile developer, coming from a "traditional" way of development might be painful. You'll have to get used to pairing therefore find some people to pair up.

2. Complement your learning with books. Many books. Scrum, Kanban, DevOps, Lean Enterprise, XP, Pair Programming, TDD, etc.

3. Read blogs. Martin Fowler, Paulo Caroli, Jim Highsmith, Ken Schwaber are some references.

4.  Participate on conferences, meetups on your area and expand your network.

5. Find a project to get involved. If the project doesn't have a "role" open, ask to participate on meetings as a listener or help facilitate activities (run a retrospective, participate on an inception).

6. DO NOT GET STUCK ON SCRUM. While I agree that Scrum is a good point of entry to Agile (it gives you a boxed structure to follow), practical agile is far beyond that.

Sunday, November 15, 2015

Presenting to C-Level or Higher Management

A story...

A Project Manager (PM) is super motivated about his new yet-to-be project. In order to move things forward he needs to present the big idea to high management - C-Level or VP Level folks.

So the PM does his homework... lists the pros, potential risks, puts together a nice presentation with all the possible justifications for the project.

The big moment comes, the presentation day... ready to impress!

All the "big guns" are present, you smile, bring up the slide #1/28.

But... the guy sitting on the back - who apparently is the most senior - questions you before you even finish thanking them for coming.

- "Show me how much it will cost". Simple, straight, no fluffy stuff.

You prepared a big presentation. You practiced every single phrase. And the "big guy on the back" just wants to have one question answered?!

Well, yes.

So in short, while presenting something to higher - or even mid-management, on your first slide (or maybe also on the second), go straight to the point and give the answer everyone wants to know before you defend it.

So in a traditional/regular presentation the order of "slides" would be:

Intro + Objective-> Arguments (reasons, motivation) -> Justifications (numbers, potential ROI, etc) -> Conclusion

If you want to be more effective follow a different order:

Conclusion (The answer to the core question) -> Justifications -> Arguments

You'll need to understand your public. In your presentation, bring forward what they want to know. Maybe you'll get to the 3rd slide.

In general, the more senior people are, less patience they have. You don't know what they are looking for? Try to ask around and get a hint.

Some people are motivated by numbers/costs. Others by ROI. Others are looking for "soft arguments" (rare among senior management).

Just focus on what they want to know first.  

But be prepared also go to through any other point. You might be challenged on non-core items as well.