Categories
Program Management

5 signs that processes should be revised

Photo by Dina Lydia on Unsplash

Your organization keeps things simple and runs with a minimal amount of operational processes. Then a problem happens, your team does some sort of lessons learned and, as part of the action plan, your team decides that some processes need to be created or improved to avoid that from happening again. Nothing wrong there since that’s part of a continuous improvement mindset.

After several months or years, that cycle of learning and improvement may lead to an unintentional, overwhelming amount of processes that cross the tipping point where they cause more damage than help. I present in this article a few signs of what you should watch out for to know if your organization should revisit its processes.

1) Unclear understanding of the reason behind it

As mentioned, processes usually come as responses to problems. Even though the same issues may happen again in the future, it’s unlikely that the environment and the context will be the same or even similar in a second occurrence. Processes can be very well defined and documented but still miss the motivation, the environment, and the context that led to that change. Without these critical pieces of information, one could not understand if applying a process would make sense in a given scenario. That could lead to unexpected results and additional process tweaks that would dilute even more the original reason for the initial design. 

For instance, assume that an organization had a data breach problem for the first time. It then decided to implement manual security code reviews to avoid data exposure issues in the future. The company improves its modus operandi, and after a few years, nobody can clearly articulate why they still do that. It was a process targeted to stop the bleeding in a specific situation but turned out to be the long-term solution. Changes can bring discomfort. So, it’s much easier to keep just doing it. If people are executing something without knowing the motivation behind it, you should re-assess it.

2) That’s how things are done here

How your organization responds to processes can also indicate how effective or efficient they are. While frustration can come from many different sources [1][2], process inefficiency and team frustration are correlated. As a matter of fact, in a recent study, 31% of the participants pointed inefficient processes as one of the main reasons for burnout. When people say that they follow a process because “that’s how it’s done here”, keep an eye on that. One may be saying that for lack of clarity (back to the first sign) but often, the frustration of having to execute it (lack of value, overhead, sense of waste, …) takes priority.

3) Sub-organizations have different incentives when defining processes

As a company grows, its subdivisions grow too. What started as a start-up with 10 people can become a complex matrix organization with several specialized teams like Security, QA, Engineering, PMO, Marketing, and so on. In general, process complexity is directly proportional to organizational complexity. As people are grouped in functional areas, communication channels increase, teams get more specialized, and their goals, incentives, KPIs get more and more specific to what they do. To achieve area-specific targets, teams set more rules around them to control their outcomes, but often those extra rules come at the price of impacting other organizations. For instance, if a QA org sets internal targets to report fewer false-positive bugs due to requirement misunderstandings, the Product Management and Engineering teams may be affected by the new process of having multiple rounds of reviews for the test cases. Those two teams have other internal goals that may not align with QA org’s goals leading to the perception of waste of time or lack of understanding. If your company doesn’t define processes based on strategic, company-wide goals, you may end up in a situation of multiple disjoint, niche-specific processes that would be highly ineffective and demotivational.

4) Creating processes is cheap

“What’s the cost of introducing this new process?” If that’s not a question that pops up when changes are being proposed, it may be a fairly decent indication that the direct and indirect costs are not being considered before implementing them. 

Adding a new field in an issue tracking system may seem like a harmless tweak for a small organization. Now assume that 1) it takes additional 30s to fill that field for each new issue, 2) on average 500 issues are created per day across all projects, and 3) an employee costs on average $100/hour considering all the benefits. In this scenario, that single change would cost almost $10k per month.

Unless your organization considers the overall cost of implementing, training, enforcing, and maintaining new processes and validates if the benefits will outpace the costs, adding new processes will eventually impact the effectiveness of your company.

5) Perceived slowness over time

Finally, if you plot the time to execute an activity over the years and you notice an increasing trend, take a careful look at that. Slowness doesn’t always mean ineffective processes. Moving too fast sometimes brings quality issues that can impact the reputation of your products in an unreversible way. However, for instance, if the lead time between a feature request and its production release has doubled in the last 2 years, your group may have added so much complexity on engineering or peripheral processes (quality, security, privacy, …) that it’s now jeopardizing your company’s ability to compete. Watch out for any feedback from the team about slowness, and make sure that data is collected over time to evaluate your processes.

Conclusion

I presented five signs that can help identify if you have a problem or not in hand. They are indicators, and as any indicator, they do not drive conclusions. They can only support them. You may identify a single sign and have a process problem, but you can also have all five and still have the root cause(s) outside of your processes. In summary, pay attention to the quantitative and qualitative aspects of your organization, validate process changes with multiple stakeholders, and schedule regular (semi-annual or annual) checkpoints to see if you’ve crossed that tipping point.

Categories
Program Management

Make it harder to make it better

Monday 8 AM. You grab your mug, take a sip, open your calendar, and notice that a call has been scheduled for 8:30 AM. You don’t recall it to be there on Friday afternoon but your coffee didn’t kick in yet so you’re not sure. The subject is quite generic. Double-click on the invitation to see what that’s about. Nothing more than a Teams or Zoom link in the body. If you’re like me, my initial reaction is to decline it. If you’re not, I hope you join my team after reading this article.

Short of time? Jump straight to the summary at the end.

Meetings are just too easy to be scheduled and most people don’t do the due diligence before sending an invitation. If you want to have more effective meetings, you should first make them harder to schedule. In his “Indistractable” book, Nir Eyal presents a few suggestions to help improve your meetings. I’ll wrap up the article with a couple more.

No Agenda, No Meeting

A few years ago, even before reading Nir’s book, I politely declined a call saying that I didn’t understand its purpose and there was no agenda. The organizer provided an agenda and re-sent the invitation. I accepted it and from that moment on, most invitations from him included an agenda. While that could have been a one-off case, imagine the ripple effect if multiple people in your organization start doing the same. What if a VP does that? That is the kind of change that can exponentially spread if you convince a few influential people to give it a try.

A few benefits from it:

  • Confirmation if you or other people are actually needed
  • Understand if other people should be invited
  • Prepare for the discussion
  • Ask questions even before the call

No Prep Work, No Meeting

Nir mentions that “the primary objective of most meetings should be to gain consensus around a decision” and that the organizer should put in the work to elaborate on the problem description, their reasoning, and their recommendations. The time invested in that prep work translates to time (and money, as we’ll see soon) saved for multiple participants.

It doesn’t need to be a 10-page long document covering all the details that you want to discuss in the call. A single-page one would do the job and it should be a must for most meetings.

Multiple Laptops, No Meeting

Depending on the company culture, it’s widely acceptable to have all participants using their laptops during a meeting. One may argue that it may be needed to look at something relevant or to respond to urgent requests. Let’s be honest and agree that most of the time, we are just distracted checking e-mails and chats, or (the fallacy that I love the most) multi-tasking. IMHO, that’s just disrespectful. If you can’t pay attention to the meeting, then decline it and say that you have other high-priority items to work on.

Establish a one-laptop-per-meeting rule. Include in the invitation that you expect the participants to be fully engaged and that they should not bring their laptops to the conference room. Only the presenter and maybe a notetaker will have their laptops on. You should remind them about the rule before the meeting starts and politely ask for people’s attention if someone breaks the rule.

Are you curious about how to make it happen for remote teams? I am too. If you have an idea, please share it in the comments. I’d love to give it a try.

Estimate your meetings’ costs

Most people don’t realize how much meetings can cost. Let’s do some back-of-the-envelope calculations. You scheduled a meeting with 8 people including you. Let’s assume that the average cost per employee including all benefits is around $200k/year, i.e., the cost per hour per person = 200,000 / (12 * 22 * 8) = $95. Total cost for a 1-hour call = 8 * 95 = $760. Make it a weekly series for 3 months and that will cost your company 12 * 760 = $9,120! That by itself would make me reconsider those calls, but that’s not all.

Besides the direct cost, there is also the indirect cost for distracting people from their other tasks. According to a study from the University of California Irvine, it takes 23 minutes and 15 seconds for people to get back to their task after being distracted. That’s about 40% extra for that 1-hour series. Would you pay around $13k for that? Considering it may change your mind about scheduling it or, at least, make you better prepare for it.

Ask for meeting notes

The organizer should take notes or assign somebody to do so. Unfortunately, that’s not always the case and I recognize that I’ve done (and still do) that several times. As a participant, you can help to replace that bad habit.

If you don’t get the notes within 24 hours after the meeting, just shoot an email to the organizer asking for them. The longer it takes for the organizer to write them down, the harder it gets and the more likely to miss important decisions or action items. That can be a bit embarrassing for the host if he/she keeps doing that over and over. By doing that you can help build a culture of more effective meetings in your company.

Summary

  • Decline to meetings if they don’t have an agenda
  • Decline to meetings if you noticed that there was not enough prep work put in them
  • Limit to one laptop in the call to drive focus on the topics been discussed
  • Estimate the cost of your meetings and don’t schedule them if you wouldn’t be willing to pay for them
  • Ask for the meeting notes if you don’t get them within 24hs
Categories
Culture

What lack of diversity has to say about estimates

What would be your guess for the weight of the following ox? Likely you’re not a livestock specialist, your guess may be way off, and you think that relying on a specialist would be the most accurate way to estimate its weight. I’d go a bit further and say that averaging out the specialists’ guesses with regular people’s ones would result in an estimate worse than the one from a specialist, right?!? Well, that may not be the case.

Photo by Macau Photo Agency on Unsplash

In his book “The Wisdom of Crowds”, James Surowiecki describes an experiment done in 1906 when averaging out all the 787 guesses resulted in a better weight estimate than the guesses of so-called specialists. The crowd average was only 1 pound off! Surowiecki states that “under the right circumstances, groups are remarkably intelligent, and are often smarter than the smartest people in them.”

The average of a large number of forecasts reliably outperforms the average individual forecast. However, that depends on how independent the participant’s opinions are, a statistics concept known as “signal independence”. Independence in this context means uncorrelated.

The more correlated people are, the less independent they are and then their opinion will be biased towards a specific value that may be different from the actual result. Diversity can play an important role to drive that independence.

Correlation can be originated from different sources. If people discuss a subject in advance, their opinions may not be independent during a meeting with other team members. If they always talk to the same people, even about different topics, their opinions may be correlated. If team members have the same background, that’s another source of correlation.

Diversity in a team brings a variety of ways to think, multiple cultural experiences, conflicting ideas to stimulate discussions, and a learning environment that is not possible if people are all alike. That reduces correlation. Diversity is also a key factor when running surveys that can support strategic business decisions. Including people from different races, gender, experience level, religion, sexual orientation, nationalities, and many other dimensions, when combined with a proper selection of a large sample, reduces biases and improves accuracy.

While diversity by itself does not guarantee independent opinions, neglecting it will most likely affect your organization’s capacity to come up with estimates that are closer to reality.

References

  • The Wisdom of Crowds, James Surowiecki, 2005
  • People Analytics, Coursera, Wharton University of Pennsylvania

You can also find other articles in my Medium or LinkedIn.

Categories
Culture

2 must-haves to build a culture of learning

Success can come in many different forms, but if your organization wants to have a chance to continue succeeding, learning must be part of its DNA. Similarly, learning can be achieved by taking different paths (training, coaching, sharing, teaching, …), but most of the opportunities come from day-to-day work since that’s where people spend most of their time. However, practice by itself doesn’t guarantee learning.

Allowing team members to voice their thoughts and building an environment that stimulates taking risks are required to convert experience and practice into learning. However, these can only be achieved if psychological safety and blamelessness are present.

Psychological Safety

Can you think of an occasion at work when you held your thoughts? If so, why did you do that? Didn’t you feel comfortable sharing them? Were you afraid of saying anything ‘wrong’, of any sort of retaliation, or of sounding incompetent? While several factors (introversion, people in the room, …) can contribute to people not to voice their opinions, lack of psychological safety is definitely a common one.

Psychological safety is defined as a shared belief held by members of a team that the team is safe for interpersonal risk-taking. That means that people should feel comfortable to share their ideas/suggestions/mistakes/concerns with their teams with no fear of being punished. Sometimes reactions apparently as harmless as a giggle or cutting someone off can erode the psychological safety of a team.

Workplaces with low psychological safety can jeopardize the ability of teams to innovate and to learn from each other. New ideas usually come from tiny increments of work through a sequence of several, maybe unintentional events. A comment may trigger a discussion, that raises a problem, that drives ideas, that may lead to a brand-new product. However, that flow will not happen unless people feel safe to speak up and that may lead to missing many learning opportunities. The way an organization handles incidents tells a lot about how much psychological safe is valued in its culture.

Blamelessness

All the services are down and you start receiving tons of notifications. A war room is created and then the ‘fun’ starts. If that gives you goosebumps, you may have had a traumatic experience. If that brings you some memories of collaboration, teamwork, and synergy, you may have experienced an incident where the focus was solely on addressing the problem and on avoiding it to happen again.

Blamelessness is the notion of switching responsibility from people to systems and processes and it fosters psychological safety. That means switches from ‘who’ to ‘what’. Teams should assume that people have done their best with the knowledge and tools that they had at hand. That’s similar to the Prime Directive for Retrospectives and bringing that up in the first incidents and post-mortems can set the scene for a learning instead of a blaming experience.

The Bad Apple Theory (or Old View) maintains that:

  • A complex system would be fine assuming you don’t have unreliable people (Bad Apples)
  • Humans are the dominant contributor to accidents
  • Failures come as unpleasant surprises and are introduced by unreliable people

Instead of thinking that we have bad people in safe systems, we should think that we have well-intentioned people in imperfect systems. That mindset will drive your team to learn from failures and build the foundation for them to focus on problem-solving instead of covering their tracks not to be blamed later.

Another aspect to watch out for to ensure blameless incidents is hindsight bias. If somebody says “I knew that was happening. It was so obvious!”, that should ring a bell. Hindsight bias is the common tendency for people to perceive past events as having been more predictable than they actually were. For example, if a friend says after a game that he knew since the beginning that his team would win it. There was no way to know that for sure, but he/she actually believed that he/she knew. This sort of attitude needs to be purged from any team. A way to handle that without calling out someone in front of many people is to have a 1:1 session and describe why those comments would damage the team’s capacity to handle and learn from an incident.

Fundamental attribution error can also be another call for action if noticed. That’s the tendency to assume that somebody’s action depends more on the type of person he/she is than the environment that influenced that action. For instance, somebody pushes an update that breaks a system and a colleague concludes that that person is not reliable since he didn’t graduate from a renowned university. Again, that represents a type of behavior that deviates from the main focus: understanding the problem, fixing it, and learning from it.

Being able to identify and fix these common counterproductive behaviors is required to build an environment where people know they will not be blamed and that they will be safe to thrive, take some risks, and learn.

Categories
Program Management

Transforming data outside of JIRA

JIRA is largely used (Atlassian suite is adopted by 170k+ customers over 190 countries) and one of the reasons for that is that its platform allows for deploying new add-ons to expand its capabilities. You can find a plethora of plugins in Atlassian Marketplace, but purchasing all plugins you need can quickly add up if you have a large user base. Sometimes all you need is to transform data for reports or metrics, even if that’s done outside of JIRA in an Excel spreadsheet or command-line console. In this article, I cover two ways to extract data from JIRA and transform it while minimizing manual work: Excel Datasources and Python API calls.

Excel Datasources

JIRA allows you to export filter results in CSV. One could generate a CSV from JIRA, copy its data, and then transform the data in Excel to create custom charts or consolidated reports. While that works, if you need to do that multiple times, you’ll be wasting a lot of time with manual work. We can leverage the same CSV feature in combination with Excel import data feature to get the work done faster. The steps are pretty straightforward:

  1. Create and save a filter in JIRA
  2. In the filter result page, go to Export >> CSV (Current fields), right-click on it and copy link address
    1. It should be something like https://yourjira/sr/jira.issueviews:searchrequest-csv-current-fields/19974/SearchRequest-19974.csv where 19974 is the JIRA filter ID
  3. Open Excel and go to Data >> From Text/CSV
  1. Paste the JIRA deep-link to export the filter as CSV
  2. Excel will connect to JIRA and you’ll be asked to select the authentication method if that’s the first time you’re doing it
  3. Select Basic and type your JIRA credentials. Important: Authentication methods may vary depending on how your JIRA instance is set up and your credentials will not be shared if you send that spreadsheet to other people
  4. Excel will show you a preview of the retrieved data. You can click on 1) Load to create a new worksheet and load the data, 2) Load To… and customize where to load the data to, or 3) Transform Data to adjust which columns you want to import
  5. Once the data is loaded, you can go to Data >> Queries & Connections and click on the refresh icon to reload the query
  1. Now you can create a separate worksheet and create your custom reports or aggregations based on the raw data imported from JIRA. That’s it. Quick and dirty, right?

Python API calls

If you need to apply more complex logic to your data, an alternative way is to call JIRA APIs utilizing a programming language to parse and transform it. I’m showing a very basic Python example of how to calculate the % of closed Story Points in a filter, but you could apply a similar process using whichever language you prefer for more complex calculations.

Firstly, you need to understand how to authenticate to be able to call JIRA APIs. You can use either OAuth, Basic, or Cookie-based methods. I’m only covering the Basic one in this article, which should be used only for personal scripts. OAuth is the most secure and recommended method but it will require additional configuration in JIRA server to authorize your script to call the APIs. You can read more about the other methods here.

Prep work

  1. Make sure you have Python 3.5+ installed in your system
  2. Install jira module with pip install jira

Python Code

See below the Python code. You can also access it from github.

from jira import JIRA
import getpass

# add your JIRA instance URL here
jiraURL = 'https://myjira.com'

# update with JIRA username or replace it with
# username = input('Type your JIRA username')
# to ask for the username in the command line
username = 'myusername'

try:
    password = getpass.getpass(prompt='Type your JIRA password: ')
except Exception as error:
    print('Error when getting password', error)
else:
    jira = JIRA(jiraURL, basic_auth=(username, password))
    try:
        filterId = '27629'
        filterJQL = jira.filter(filterId).jql
    except Exception as error:
        print('JIRA filter ' + filterId + 'is not available or does not exist')
    else:
        issues = jira.search_issues(filterJQL)        
        totalPoints = closedPoints = 0
    
        for i in range(len(issues)):
            fields = issues[i].fields
            points = 0 if fields.customfield_10002 == None else fields.customfield_10002
                  
            totalPoints += points
            closedPoints += 0 if fields.status.name != 'Closed' else points
            
        percentage = 0 if (totalPoints == 0) else (closedPoints / totalPoints) * 100
        
        print('Total points: ', totalPoints)
        print('Closed points: ', closedPoints)
        print('Closed %: ', round(percentage, 2))

This code connects to the JIRA instance (line 5) using the username (line 10) and the password read via command line (line 13). It retrieves the JQL string (line 20) for the filter which id is 27629 (line 19). Then it retrieves the list of issues for that filter (line 24), iterates through it (line 27), and calculates the total story points (line 31) and closed story points (line 32) assuming that the Story Points value is saved in the customfield_10002 property (line 29). The custom field for Story Points in your JIRA server may differ but you can easily get its ID doing a JIRA query and looking at the autocomplete results. It will show something like the following:

Finally, you just need to run the python script in a command line (like py.exe .\closedPointsJIRA.py) and type your password when asked. Handy, right?

Categories
Program Management

4 tips to be more productive

Amidst the current pandemic environment, you can see a flurry of posts and online seminars about productivity. That comes as a legit help for people who may be facing challenges to be or to feel productive while working from home. I’d like to share a few tips that have worked for me while working in the office and that turned out to be applicable also when working from home.

Knock off 1-2 tasks first thing in the morning

I like starting my days selecting 1 or 2 tasks that I can knock off within 30 to 45 minutes. It sets my mind on a path of accomplishments for the whole day. It’s my way to start my day off right. While it can be an easy-to-implement and effective tip, it’s worthwhile to bring up a few points:

  • You need to be conscious not to spend the rest of your days picking up only easy tasks just to cross several items from your to-do list;
  • Reading e-mails or catching up with IM (Teams, Slack, …) should not be one of those tasks;
  • Prioritize tasks that can unblock work for other people who are waiting for you;
  • Allocate time in your calendar so that people don’t try to schedule meetings and to help you to build a habit;
  • For a habit to be built, you need to have a reward after completing those tasks. Choose something meaningful to you (drinking a cup of coffee, checking your Instagram, reading your emails – if that gives you peace of mind, and so).

‘No’ is my default answer for most asks

You’re only as productive as your ability to say ‘No’ to new tasks. By definition, there is no focus if you’re focusing on several things at the same time. Multi-tasking is a fallacy and insisting on that will kill your performance!

You can benefit in a few different ways by saying No for most requests:

  1. People will re-think if they actually need you to do that. ‘Why’ would also do the work;
  2. People may try to convince you once you push back. That will probably lead you to better understand their motivation and will help to confirm if the work is as ‘urgent’ as they may claim;
  3. No gives you more time to think if 1) you should actually do it, 2) you should confirm you won’t do it, or 3) you should delegate it. Delegating tasks appropriately can generate wonderful results for you and your team.

Eat healthy food and work out frequently

Your body needs to be fully functional so that you can perform your duties well. Eating well is known to be related to productivity boost and the World Health Organization has stated that “adequate nutrition can raise your productivity levels by 20 percent on average

For me, reducing my overall carbs intake (mainly at lunch) has helped me to stay productive during the afternoon with no need for extra doses of caffeine. Intermittent fasting a couple of days a week has also made me feel better overall. I’ve learned with nutritionists that if you cook your own food, you have a much better chance to eat healthier by simply doing that. Important: by no means, I’m qualified to suggest which diet approaches you should follow and should seek a nutritionist to find something that works for you.

Working out on a daily basis is my stress-relief valve. When it comes to stress management, it’s important to understand its physiological relation with our sympathetic nervous system (SNS). SNS is our fight-or-flight system and it helps us to get focused when it’s time to execute or when we’re in danger. Switching between the activation of SNS and the parasympathetic nervous system (PSNS) is naturally done throughout the day. However, if you don’t have a way to manage your stress, your SNS may be overactivated and that will, for instance, impact your ability to innovate. Being creative to execute your routine tasks can save you several hours in the long run.

Combine eating healthy with regular exercises and you’ll be less likely to miss a day of work. Each day represents 5% of your potential productive time during a month. Get sick and you’ll lose a couple or a few days, which is more time than the performance “gains” you think you’re getting by skipping lunches or by deprioritizing that morning workout.

Sleep time is non-negotiable

The effects of sleep deprivation on our body and the number of people in the United State who suffer from some sort of sleep disorder are mind-blowing. I’ve always strived to sleep around 7 hours a day but reading the “Why We Sleep” by Matthew Walker made me take sleeping time more seriously.

Sleeping at least 7 or 8 hours every day has become a non-negotiable requirement for me. I had to implement a few challenging changes in my routine though:

  • Stop using my phone or laptop (blue-LED devices in general) at least 30-45 min before my sleep time. That helps the natural release of melatonin hormone, which is needed for us to fall asleep;
  • Replace regular coffee after lunch with decaf or caffeine-free tea. Decaf coffee contains only 5-10% of the amount of caffeine found in a regular one;
  • Change my workout hours to later on the next day if I happen to have late-night calls. I’m a 6AMer usually. As a matter of fact, working out without enough sleep will burn lean mass (muscle) instead of fat and it may make you feel miserable during the day. Finally, exercises should be done at least 2 or 3 hours before your bedtime to not impact your sleep quality.

Categories
Program Management Software Development

Do not overthink your project dates

“For yesterday”, “ASAP”, “we need it now”, “by EOD today”, “urgent matter”, “we can’t miss it at any cost”, “it’s committed so we can’t change it”, … 😒

Being under pressure to release something soon(er) or on the planned release date is how many teams operate. One may think that pressure is a temporary state. Another may see that as the rule instead of the exception and inherent in the company culture.

An aspect sometimes taken for granted is what success means for a given project. A more purist project manager may claim that if a project is released on time, with the planned scope and within the budget then it was a success. While valid and common, that approach is focused primarily on short-term results.

Shenhar et al. (1997) proposed a multi-dimensional model to define project success that aims to encompass both short and long-term benefits from projects, which includes 4 dimensions: project efficiency, impact on the customer, business and direct success, and preparing for the future. The first dimension is what most organizations primarily focus on and schedule is a major, if not the most important, component of it.

Even though there are truly time-sensitive projects (like an update to comply with new regulations not to incur in fines), there are also projects that are forcefully said to be required by a certain date for reasons that may be questionable. Whenever an unnecessary constraint is imposed, it may lead to wrong trade-offs that come at the cost of impacting long-term goals which could be more significant than the constraint.

The following picture shows that the relative importance of project efficiency gradually declines over time after project completion, i.e., the fact that a project was released on time may have little influence on what happens with it in the field. Still, we spend most of our energy to make that date happen and sometimes forget about the other dimensions. Although success in that dimension may represent a well-managed project, that alone may not guarantee actual benefits for the organization in the long term.

Relative Importance of Success Dimensions is Time-Dependent – Adapted from Shenhar et al. (1997)

As project managers, we should be challenging project requirements and asking why certain constraints are put in place to validate the actual boundaries of a project. That knowledge enables us to drive for efficient execution while keeping an eye on long-term goals to enlighten the customers, grow the business and sow the seeds for future opportunities.

Time-to-market is important but you should not live to make a date at any cost or for the sake of following a plan. Challenge your team to 1) think more about what comes after a release and to 2) value more the product quality and its usefulness to the end customer.

Keep in mind that releasing a product is just the start, not the end.

References:

Shenhar, A. J., Levy, O., & Dvir, D., 1997. Mapping the dimensions of project success. Proj. Manage. J. , 28 (2), 5-13

Categories
Program Management

5 traps that technical managers can fall into

Nothing in life is always a bed of roses and even seasoned technical managers make basic mistakes that impact their teams’ performance. In my previous articles (If you’re a manager, invest more time in your tech skills and For Managers: How to develop your tech skills) I covered the importance of that set of skills and how managers can develop them to help on their day-to-day work. Let’s now talk about the common pitfalls that I’ve seen experienced managers face mostly because they have (or believe they have) a solid technical background. I have to be honest and confess that I’ve caught myself making these mistakes on several occasions.

#1: Fire-fighter mode is ON

Quite often team members reach out to managers to discuss a problem, but they are not actually looking for a solution. All they want is to vent, bring awareness or have a fresh pair of eyes looking into it.

However, it’s tempting for managers – whose common traits include assertiveness and decisiveness – to think they are expected to provide solutions. If the problem is related to an area where the manager has worked in the past, it’s almost certain that a ‘suggestion’ will come up, either due to an unconscious need to show that he/she is still sharp or due to a genuine willingness to help.

The problem with this fire-fighter approach of jumping in and trying to fix the problem is that it can easily kill team ownership and empowerment if not applied in small doses. Coaching techniques [1] could be helpful to suppress that impulse to always address the problem.

#2: Directions instead of suggestions

As a manager, you need to recognize that no matter how flat, small or open your organization/team is, you’ll have power over your subordinates and they will not see you as a peer. That doesn’t mean you can’t have a fruitful and open relationship with your team members.

Once you provide technical suggestions – even in areas where you are the most experienced in the room – the team will receive them differently if they were hearing them from a peer. Some teams may be more vocal and push back if they disagree with the proposals. Other ones may feel compelled to accept them since they came from their manager.

In those cases, the best way to avoid problems is to assess and build a safe environment where people can share their thoughts. Do a quick test: measure the team participation in Sprint Retros with and without their managers in the room. If the team doesn’t feel comfortable to share certain problems because the manager is present, that’s usually a sign that there is some work to be done to make that environment more psychologically safe.

#3: Tech skills to be able to speak up

Managers can leverage their technical skills to better understand what the team is trying to communicate. Active listening [2][3] is one of the major virtues of an outstanding leader and should be practiced during technical sessions too. However, one may think that the main benefit of having those skills is to able to speak up and contribute to solutions.

As a manager, you should try to hold your natural instinct of speaking more than listening and allow the team to brainstorm before you interject them with your thoughts.

#4: Misinterpreting the level of engagement

If a manager is lucky, he/she will spend 4hs/week developing their technical capabilities. During the same period, a developer will spend at least 10x more time (40+ hours). How can a manager keep up with the technical changes in a project? He/she just can’t and, for everybody’s sanity, that’s intentional and expected.

Therefore, a manager needs to be mindful that his/her solution knowledge is at the same time outdated and at a high level. That should dictate how much technical engagement he/she could have and how his/her comments should be positioned to the team.

#5: Tech skills take precedence to interpersonal skills

Nobody will hire a manager because he/she is an outstanding Java developer or an experienced Senior Architect. One is promoted to a management position due to his/her abilities (or potential) to lead other people to get work done through them.

Technical skills can be your competitive advantage, but you should never lose sight that your job requires developing mainly other areas such as leadership, coaching, people development, and project management. Avoid spending too much time developing technical expertise, even if that seems to be more enjoyable.

Categories
Program Management

For Managers: How to develop your tech skills

In a previous post, I’ve covered the importance of investing time to keep your tech skills up-to-date. In this post, I’d like to share a few ways to achieve that. I’ve tried a few of them in the past and they’ve worked for me. A few other ones seem interesting and worthwhile to give them a chance. I’ve taken into account the time constraints for managers when curating the following list.

Hackathons

More and more companies have been using hackathons as tools to drive innovation, build teamwork, and improve internal processes. Even though the target audience is usually the Software development team, managers should leverage those opportunities to get their hands dirty and brush up those coding skills. Since those events usually last only a few days, managers have a better chance to be able to put aside some of their day-to-day tasks to focus on those hackathons.

Lunch & Learn

Knowledge sharing is continuously happening among the team members, but managers quite often are not involved in those discussions. Lunch & Learn sessions are effective methods to share knowledge across different functional areas. If you’re a manager and that’s not a common practice in your company, that’s an opportunity for you to develop your team and, as a side-effect, to get to know what the team has been working on from a technical perspective.

Meetups

Meetup.com provides an amazing and free platform to know what’s going on in your area. Since I moved to the US in 2014, I’ve been a big fan of Meetups, but I have been participating only in project management or Agile groups. Recently I’ve given a chance to DevOps meetups and they turned out to be quite handy. In addition, those Meetups can be a useful channel to share open positions, if you’re hiring people.

Local Conferences

As a manager, you may be challenged to justify why you should attend a development/DevOps/… conference that can easily costs $2-3k when including registration, flights, and hotel. In addition, if you need to travel, the amount of out-of-office time can impact your other management tasks.

As an alternative, if you find a local conference that costs only a few hundred dollars, you have a better chance to convince your organization that a couple of days per year are worthwhile and will not impact much your other duties.

Online courses

E-learning platforms like Coursera or Udemy are the go-to options for many people since they can pace their courses as they prefer. However, online course incompletion rates can be as high as 85+%. I’d recommend not to enroll in more than one course at a time to improve your chance to actually complete them.

Certifications

My opinion about certifications may seem a bit contradictory. Even though I have several certifications, I really don’t care about the actual certifications. The most important outcome of any certification is learning during the process. A certification is just a clear finish line that helps me to get organized and commit to studying. Even better if the certification exam voucher has an expiration date. 🙂

If you take major cloud providers as examples, they provide entry-level certifications (foundational or associate) that cover enough technical fundaments for a manager. Google Cloud Associate certifications are recommended for people with 6+ months of experience, while AWS certifications have foundational (~6 months of experience) and associate (~1 year of experience) paths.

Personal projects

Another approach that requires more discipline but that’s very effective is to define a personal project and implement it. It could be as simple as a to-do mobile app for you and your spouse to share chores. Addressing a personal problem can be the extra motivation you need to get that going.

As a piece of advice based on previous failed attempts to do this, keep that as simple as possible and work on incremental releases. If you can’t complete that within a week, reduce the scope until it fits in that timespan.

Contribute to existing projects

You can easily find an open-source project that’s interesting, but the most interesting ones are also likely to require a massive ramp-up time even for small contributions (bug fixes, test automation, …). If that’s a path you want to take, shoot for tiny GitHub projects (less than 2k lines of code), look at their backlogs of known issues, fork it and try to get a few bugs fixed. Here’s another neat idea to get started.

Another way is to find new projects looking for collaborators. A convenient platform for that purpose is FindCollabs. You could even bring that platform to your company as the official way to engage people interested in working on side projects.

Final tips

With such a breadth of options to develop your tech skills, the most important thing to keep in mind is that you need to be laser-focused on what you want and avoid biting off more than you can chew. Enjoy your journey and, most importantly, have fun while learning.

Categories
Program Management

If you’re a manager, invest more time in your tech skills

It’s quite common to find people who used to have technical positions earlier in their careers and then moved to management positions. There is nothing wrong with that career path but in some cases, those professionals forget to keep up with the technology evolution and end up missing great opportunities in their careers.

Consider, for instance, a Java developer who started her career 10 years ago. After 4 years she was promoted to manager and hasn’t been involved with Java coding for the last 6 years. You can (safely) assume her Java skills are so outdated that she’s not able to do a code review or design a microservice with Sprint Boot anymore. Fair enough, but when will a manager have to do that?

In a fast-paced industry with new frameworks popping up pretty much every month, the amount of content been produced is at the same time astonishing and impossible to keep up. So, if a manager can’t keep up with the speed technologies evolve, why should she even bother to try? Shouldn’t she just rely on her technical colleagues?

Inefficient communication is one of the main causes of project failures

Credibility is key and a solid background can enable that

Communication issues are usually among the top 5 reasons for project failure or challenging execution. Different elements contribute to inefficient communication, but establishing a common language is crucial for both the sender and the receiver to be on the same page about the topic being discussed.

A manager with technical skills can leverage the appropriate terms when talking to her development team to reduce miscommunication issues. Moreover, people usually get more engaged and receptive when they recognize the other ones have a similar level of understanding about the topic. Have you seen developers rolling their eyes when somebody tries to show off his technical skills and end up stumbling over?

Besides, having technical knowledge helps managers when elicitating requirements, troubleshooting issues, handling critical incidents, bridging the communication between developers and executives, and managing project dependencies. Finally, credibility is key and a solid background can enable that.

Projects are getting more and more complex and specialized

Try to think about Software Development projects you were involved about 10-15 years ago. If you were not a kid at that time, you might have remembered some sort of distributed application consuming a data source (most likely a relational database) and providing results to the user in a somewhat simplistic interface. Now let’s get back to today’s reality.

When you look at the current scenario, it’s hard not to think about integrated solutions that demand data analysis/processing, artificial intelligence, consume different services, and provide multiple different UIs. Basic client-server DB applications have become commodities and no company can endure unless they embrace very specialized and deep knowledge from areas like machine learning, augmented/virtual reality, data processing, continuous delivery, and statistical analysis.

As a manager you’d be required to know at least at a high level:

  • What those technologies are used for;
  • How they can be incorporated in the business to generate more revenue;
  • How to get started with them;
  • Which alternative approaches exist and their pros/cons.

To get at that level you could 1) read the basics about the technologies, 2) join and actively listen to design sessions, and 3) have fun coding in your ‘spare’ time.

Influential people know their sources

Power is the ability to influence others and it can be identified in 5 forms:

  • Formal: when you’re empowered to take decisions;
  • Reward: when people realize that you’re responsible for rewarding them by deciding salaries, promotions, bonuses, and so on;
  • Penalty: when people perceive you can penalize them if they don’t follow your directions;
  • Expert: when people perceive you possess important functional knowledge;
  • Referent: when people enjoy working with you or in the project you manage.

Formal and Reward types have to be granted and do not depend solely on the manager. Penalty may be effective, but it usually activates the sympathetic system which brings more stress to the relationship. Referent demands time and development of soft-skills which are quite hard to change. Expert power can be your best ally to enhance your ability to influence and lead your team.

Major tech companies look for Technical Managers

Understanding the market demand and how high-performing companies (like FAANG) structure themselves can give you a few hints about the kind of professionals that companies are looking for. If you follow these companies’ news or know people who work for them, you know that they have different flavors of technical management positions:

/Technical(.*|\s) Manager/g.

  • Technical Program Manager
  • Technical Engineering Manager
  • Technical Project Manager

That model is already being used as a reference by other companies. So, career-wise, deepening your tech expertise can help better positioning yourself for high-demanding positions.

Wrapping up

Putting the hours to learn technologies, even when you won’t immediately apply them, will pay off in the short to medium-term. Your team is more likely to value your opinion and feel like you’re one of them. Tech skills can be your competitive advantage if you enjoy getting your hands dirty, but as Uncle Ben says ‘with great power comes great responsibility’ 😉 . There are a few pitfalls that you need to avoid not to backfire your plan, but that’s a subject for another post.