jcfausto

Technology and People

Month: January 2019

3 Voices You Should Have Inside Your Team

This article is not about the Scrum Master, Product Owner, and Dev Team. Curious? I’ll explain what I mean.

If I ask you to propose a way to organize a team that allows the team to be as independent as possible and is also capable of enabling self-management. Which approach would you suggest?

I have the feeling that suggesting Scrum as an approach for this particular situation came to your mind. Although Scrum is a very good framework to introduce the agile way of doing work it doesn’t perform very well when it comes to helping your team to be agile. It tells you what, but it doesn’t tells you how.

I’ve seen recently many teams moving away from this standard way of setting up agile teams to a more tailored solution that takes into account the company’s culture, regulations, the type of industry. I believe that agile coaches or change agents with a certain experience have acquired sufficient knowledge to create or suggest a tailored solution that will fit better the organization’s needs.

Following a generic recipe, which is essentially what frameworks are, is not your only option when it comes to enabling an agile mindset and structure. Instead, you can think and use these generic tools as a reference, cherry picking or adapting what is there according to your environment’s needs.

For instance, you should take some time to analyze and understand where are the bottlenecks, communication ruptures, etc. Understand first the environment you’re in and after think of a solution that will survive on such conditions.

Different perspectives are what you need in order to create different experiments that will allow you to really leverage agile practices inside your teams in order to get better results. I’ve thought a lot lately about many agile related learned concepts that aren’t making much more sense anymore considering the different scenarios I saw. Contexts and people changed and I believe this is one of the reasons why I’m having such thoughts and feeling.

Having the abovementioned in mind, I’d like to share a different perspective to take into consideration when trying to build an agile team. Forget about which framework you’ll use, just make sure you have three voices inside your team.

The Three Voices

If you’re serious about autonomy and self-organisation and you really want a team that “is” and not just “do” agile than pay attention to these voices.

A team without one of these three voices will not be balanced and will most likely depend on external people that speak one of the missing voices. Still, even having all the voices, there’s no guarantee that the team will be able to self-organize because voices are just one part of the equation that results in autonomous and self-organizing teams. However, having the voices will increase your odds of success.

1 – Voice of Viability

Who takes care to check if what’s demanded is viable or not?

This voice is responsible to say to the team what are the market and business needs and what are the potential solutions to fulfill these needs.

A rough example: A company that produces software designed to manage cargo ship construction, will not likely decide to add smiles to the app’s chat because that’s not what the market is demanding. It’s not a viable solution for that particular business.

2 – Voice of Desirability

Who takes care of checking if a solution is desired?

This voice inside the team will be responsible for saying if something is being desired or not but customers. In order to do that, this voice has to understand the customer world.

It’s not very hard to imagine some viable solutions, but which ones will custorems be more willing to buy? Which ones have higher changes to succeed? These are questions that the voice of desirability is reponsible to answer.

3 – Voice of Feasibility

Who takes care of checking if what’s is viable and desired also feasible?

This is the most technical of the three voices. Usually the people that will transform the idea into something concrete – that can be consumed by users – are the ones that can express this voice and say if something is feasible or not from the technical perspective.

Make use you have these three voices inside your team, and your problem regarding autonomy and self-organization will be half-solved or at least will have higher changes of being solved.


Conclusion

If you ensure that your teams have these three voices inside and those voices can talk to each other frequently and in synergy, you’ll be able to build the framework you need for your team and organisation.

What’s Wrong With Cross-Functional Teams – Part I

What’s the best structure for software development teams? How should I structure my team? Should I use the Spotify Model? Which other options do I have?

The questions above and many others come to the minds of people who need to structure a new team or want to restructure an existing one. Most people in this situation believe that the simplest way to do that is to follow a recipe. That’s what we have been seeing currently in the market. For instance, the “Spotify Model” is often mentioned as a recipe for structuring a cross-functional team that works.

Although fantastic, the ideas contained in the approach shared by Henrik aren’t suitable for all cases. In order to achieve success, you’ll have to have the same ingredients – context – that Henrik had. Otherwise, you’ll have hard times implementing some of the ideas.

Read this – No, I didn’t invent the Spotify model – to understand what I’m talking about.

Some time ago I did reflect on how we usually structure cross-functional software development teams. I did the analysis based on two perspectives:

  1. Conway’s Law
  2. Flow of Value

Conway’s Law

Conway’s law says that “organizations which design systems are constrained to produce designs which are copies of the communication structure of these organizations”

According to Wikipedia:

The law is based on the reasoning that in order for a software module to function, multiple authors must communicate frequently with each other. Therefore, the software interface structure of a system will reflect the social boundaries of the organization(s) that produced it, across which communication is more difficult.

Learn more here:  Conway’s Law – Wikipedia

Flow of Value

I’ve heard a lot, and probably you as well, that Kanban is used as a tool to establish a flow and manage it. This flow isn’t about JIRA tickets. Instead, it is means flow of value, whatever your business definition of value is.

As a principle, everything we try to optimize should be favourable to improve the flow of value and not only favourable to speed or throughput. This means not all improvements are related to speed. Some might even slow down your current speed, but that’s totally acceptable if the flow of value will be improved. We know as well from Systems Thinking that local optimizations, such as focusing only on increasing throughput – are not the best way to optimize a system, especially a complex one.

There’s a fantastic book called Principles of Product Development Flow, which is not fun to read I have to say, that is super insightful and highly recommended for those who want to know more about what flow really means.

The Principle

The two ideas aforementioned helped me to formulate a principle to guide my analysis.

Cross-functional team’s structure should have Flow of Value as a principle and fight Conway’s law to avoid knowledge segmentation and enable the creation of a learning organisation. Click to tweet

The Question

Based on the principle above, I decided to explore the following question during this analysis:


How should cross-functional teams be structured to allow for a flow of value and to fight against Conway’s law?


I’ll continue the analysis in the next parts of this article. Sign-up below to know the answer and suggestions on how to improve your cross-functional team setup.

5 Traits of a Good Feature Lead

What is a Feature Lead?

A Feature Lead is a role, not a job title, that can be implemented inside software development teams. It might be starting point for developers aiming to become Tech Leads. This role is the equivalent of a Feature Owner but on the technical side of things. That means this role will take care of all aspects involved in developing and delivering a new product capability or feature.

Yes, it’s not something revolutionary and I didn’t invent the term Feature Lead. So, this article is just a description of what the role is about and some specifics of what is required from a person that wants to perform this role in terms of behaviour and attitude in order to become really good at it.

1 – Management and Leadership Skills

Until now the only thing you had to manage was your own tasks. When you become a Feature Lead you’ll exercise additional management skills. You’ll have to oversee the development of a whole feature, which includes not only having an overview of all pieces of work related to it but also tracking and reporting progress against a roadmap or a particular goal to people outside your usual relationship circle.

2 – Improved Communication Skills

You’ll have to communicate at different granularities. if your manager asks you about the status of the feature you’ll probably include technical details on your report. If a product owner asks you about the same thing you’ll provide less technical details. And, if a director or a C-level person asks you about the progress you’ll have to be even more succinct and still be able to deliver the information needed.

As usual, speaking all these different languages, the technical, product, and business, doesn’t come naturally to everyone. Some will struggle a little bit more to be able to understand these languages, others will have less trouble to get there. But one thing is sure: You’ll not learn this in a week. It’ll take you some months, perhaps a year, to feel comfortable with all these languages.

3 – Willingness To Step Out Of You Comfort Zone

If you don’t want to do what needs to be done, don’t accept this challenge. In order to be a Feature Lead you’ll have to step out of your world and start exploring other worlds as well. As mentioned before, you’ll have to visit the business world frequently, you’ll have to visit the product world as well. The leadership world is definitely one you’ll have to check as well. And many other worlds. All these travels might bring you some pains.

If you’re neither prepared to travel to all these worlds nor willing to putting yourself in an uncomfortable position, then I’d say that the Feature Lead thing is not for you. If you don’t like to hold people accountable, provide feedback more often, pay attention to what’s going on with the team, solve conflicts between people, then think twice before entering on this journey.

However, if you’re motivated to accept the challenge and open to do what it takes then you’ll see that this is a fantastic opportunity for you.

4 – Understanding of Business and Customer Needs

Oh yeah. It’s time for you to understand the impact and cost of what you’re doing. I’m not saying you’ll have to become a business specialist, but be prepared to discuss and understand business and customer need and align distinct perspectives with the development of the feature. This might have an influence on the scope of your solution as well as on how you’ll approach the technical solution. You’ll coordinate, negotiate, and make decisions that will impact both business and product performance.

5 – Systems Thinking

When you step out of your own world as an individual contributor, you’ll have to understand the implications of your decisions on others.

You’ll have to start thinking not only on you but on your team, other teams, the product, other departments that will interact with that part of the product you’re building, customers, etc. Your decisions will have an impact on different parts of the systems and you’ll have to be aware to analyse that when making them.

Final note

As you can see, performing the role of a Feature Lead is not that simple as it looks like. I’ve heard people diminishing this role but I think they didn’t understand its complexity and value as well as all the hidden opportunities in terms of professional development. Yes, you’ll still be a Software Engineer, but a much better one.

3 Statements That Don’t Leave My Mind

Recently I’ve read some statements that keep coming to my mind at least once a week maybe more.

1 – Make it work, Make it write, Make it fast

I’m a big fond of the concept of “Right first time” but lately I’ve seen so many time being wasted trying to figure out what would be the “Right” thing to do. Many unnecessary conflicts, concerns, non-validated assumptions, etc. This made me think more often about extreme interpretations or even shallow interpretations of such concepts that when not fully understood or discussed could lead to inefficiencies everywhere.

When I have such thoughts I remember of this concept that says: Make it work, make it right, make it fast! I don’t remember exactly when I’ve heard it for the first time but I’m sure, unless my brain is tricking me, that I’ve heard it during some research about game development (which is something I kept coming back to from time-to-time) and it was related to Blizzard, one of the big players in the game industry.

Later, after some additional research, I discovered that this term is actually attributed to Kent Back and it was part of the UnixWay for a long time.

You can read more about it here: http://wiki.c2.com/?MakeItWorkMakeItRightMakeItFast

Anyway, the whole idea is that when solving a problem in an iterative way you should consider to first make something that works, even if it’s not the right perfect solution. Ship it and learn from the feedback you’ll get in order to go to the second step, make it right. After rounds of improvement based on feedback then you’ll have to at some point make it fast. That will be the last step. That’s at least the intepretation that makes more sense to me.

I just feel that many times this simple and pragmatic approach will bring much more value than trying to use a sophisticated one just because everybody else is doing. But that’s just a feeling. I don’t have any data or experiment that can prove that, so maybe in the future, I can experiment with this approach and see what happens.

2 – The tiniest thing shipped is better than the best thing planned

This was something I’ve read on a blog post published by Amy Hoy on how to overcome procrastination.

You can read it here: https://stackingthebricks.com/how-to-overcome-procrastination/

This statement resonates with me because it sounds very responsive and lean, which is something I like. Also, it has a connection with the first idea as well, I believe. Living in the world of ideas and planning is super comfortable and can make you feel in control of things, but the truth is that the time will pass and all you’ll get is pure fantasy.

I spend so many hours planning stuff. I do that every day as part of my job, and I do that every day as part of my personal development. I try to make it as lean and efficient as possible. However, my feeling is that last year I tried to have the “best thing” planned instead of just shipping stuff to the real world, even if it was something small. Although I shipped, for instance, an email plugin for JIRA named Issue Events Mailer, a crap todo list style bookmark app, and another small attempts into the real world, I just have the feeling I could have done more if I had this “mantra” in my mind every time I questioned myself if what I was doing was of any value.

3 – A good plan is worth its weight in (future) gold

This one came from the same article mentioned above and also resonates with me because I learned that no plan survives contact with enemy

Also, I learned during these years of professional contact with lean and agile methodologies how bad too much planning can be. I’m not saying that plans should not exist, but we have to understand how much effort we should put on them before actually putting it in practice. At some point more planning is pure waste of time and energy that could be used for other valuable actions or tasks.

In the past things were so expensive that a well-thought plan was mandatory. The cost of repairing an error was too big. This is still true for some industries or fields of knowledge nowadays but for the great majority of software-based projects, for instance, I see these practice of thorough planning not optimal. Today is cheaper to quickly iterate, ship something, learn from it and use the feedback as input for a new iteration. That’s the base of lean and agile product and software development. Very quick cycles of plan-do-check-act. This makes me think that often just having alignment and shared understanding around the problem we’re trying to solve will be enough to a team or a person to start developing something and especially delivering something that can be used and criticized – in a constructive way – early and often.

Yes, I might have generalized things a little bit. Reality might be not as sweet as I’m painting above, but in general I believe that this principle and the previous ones should be taken more into consideration when we do or plan our plans.

Is There Any Simple JIRA Email Notification Plugin That Is Not Expensive as Hell?

Finding the right email notification plugin for JIRA is not an easy task. You’ll find plenty of options and you’ll simply don’t know which one you should use. Also, most of them seem to be so expensive for what they offer in terms of value that you sometimes just give up on your search.

Using native JIRA notification feature is not intuitive and will require a lot of time in terms of research, configuration, notification schema setup, cross-project discussions when you’ll have multiple projects affected, in summary: frustrating and exhausting. People are even tweeting their frustrations and making fun of the situation:

JIRA offers an all-or-nothing approach according to my previous experience. You either receive a lot of email notification or none. This might be one of the weakest features of JIRA from my perspective.

The pains above plus the problem I was trying to solve were exactly the reason why I created Issue Events Mailer, an easy and flexible way to send email notifications based on JIRA Issue Events.

Give it a try for 30 days. It might be what you’re looking for.

I was simply not finding something simple and cheap at the same time – paying $1000 dollars for a plugin that sends e-mail was not an option for me and for many other companies as well. But I really wanted to solve the problem I was having at that time. Thus, I decided to create the plugin to solve my own problem and offer it to others as well as an alternative to expensive JIRA email plugins.

How I Approach New Year’s Resolutions

This is that time of the year where most of us set resolutions for the new year that just started. We usually feel confident and hopeful that the new year will be a better one and we should do some things differently this year so we can improve and become better human beings. Classical examples are:

  • Start doing more exercise.
  • Read more books.
  • Heave a healthy diet.
  • Write more.
  • Learn X.
  • Get Y.

And the list goes on and on. This year I decided to use a different approach, one that I informally have used in the past years and now I decided to use in a more formal way to inspect in retrospect the year that just has passed.

This year I used a Past Year Retrospective to map and have an idea of what I did during the whole year of 2018, what was my main mindset and also to understand some frustrations and pitfalls. The result was quite interesting, because not only I was able to visually see what happened in my mind and how I thought and behave in some cases but also I was able to get some insights on how I learned, how I spent my time and money and some other interesting personal insights.

My Past Year Retrospective for 2018 – Image was blurred due to personal info on the page.

I found this exercise so nice and so insightful that I decided to create a template to share with you. You can find the link to download the template at the end of this article.

As you can see in the image above, the idea is deadly simple. Just grab a blank sheet of A4 size paper and start putting the main topics that you remember from the past year on the paper. After a minute you’ll start making connections between them so you can visualize the relationship between them, causality, and even repetition. This visualization exercise is super important, I do this a lot professionally, especially during retrospectives – because it’s a powerful way to clearly see what’s going on and a starting point for many other exercises or actions. Once you have this visualization done you can use it to extract a lot of answers for questions like:

  • Where I’m investing most of my time?
  • Where do I get knowledge from? Is that good or bad? Which type of knowledge I’m getting?
  • Where I’m spending my money? Is it being well invested?
  • Where I’m struggling?
  • Where there was visible progress?

As you can see, creating the visualization will help you organize your information so you can answer critical questions that will help you to set more realistic expctations and actions for the new year.

On the right side of the page, I added a column with some sections to capture some qualitative data as well. On the back of the page, I added 3 more columns to complete the whole set of information that will help me to set more actionable resolutions for the new year.

The Past Year Retrospective Template

As I said the template is super simple and with low value if you don’t put some effort to really remember your whole year month-by-month and add the info to the paper. That’s when the value will be more evident to you.

Front of the Past Year Retrospective Template

The front-page contains a big space on the left and a column on the right. The big space is a free area where you’ll jot down topics that happened in the past year and you’ll make the connections between them. Example:

Example of a visual mapping – topics influencing each other.

The back of the page contains 3 columns.

Back of the Past Year Retrospective Template

The first one is for writing the good things you did or happened to you during the last year. I write them as bullet points, so that’s my recommendation to you. The second column is dedicated to things you’d like to achieve in the new year. Write items using bullet points as well. Don’t mind to be very specific or to overthink here at this column, it’s just the starting point for your future plans. The third and last column is designed to bring the financial component to the retrospective. Write here the expenses you think you didn’t manage well. I wrote, for instance, how much did I spend on Amazon shopping and was able to figure out that was not that bad this year compared to 2017.

That’s it. I hope you enjoyed this method and you’ll give it a try. Feel free to share your thoughts in the comments below or drop me a message on twitter @jcfausto

Download the template by clicking the link below.

Download the template here: Past Year Retrospective Template

© 2019 jcfausto

Theme by Anders NorenUp ↑