46 articles, 8 books. Go to books ↓

Psychological measurements in empirical software engineering

Three-factor theory is based on the premise that workers have basic human needs that managers can and should work to address. Creating an environment in which these needs are met results in not just satisfied employees but also enthusiastic employees.

You can make this test against your boss. If the score is anything above 3, I’d look for a chance to change team/organization very, very soon. It isn’t healthy to work under this kind of management.

Chances are your team will deal with a disruptive person from time to time. This person will drag your team down and you might not realize it until it’s too late. So how do you spot them and what do you do when you find the culprit?

By paying attention to these signs and heeding their warnings, you can avoid disaster and sustain the kind of leadership that . is healthy and fulfilling for both yourself and your followers.

When engineering management is done right, you're focusing on three big things. You're directly supporting the people on your team; you're managing execution and coordination across teams; and you're stepping back to observe and evolve the broader organization and its processes as it grows.

These rules have been aggregated from a variety of sources, and just plain experience. It all starts with an attitude…a healthy attitude about one’s role as a developer on a team and that your focus is on the product being developed. The goal is a well-functioning team. The reality is that a team that functions well will generally produce the best product.

Perhaps the best known of all the laws is Brook's Law. No discussion of software teams can go very far before Brooks' Law is mentioned: "Adding manpower to a late software project makes it later."

It’s terribly difficult to manage unmotivated people. Make your job easier and don’t...

Too many managers believe in the myth of 100 percent utilization. That’s the belief that every single technical person must be fully utilized every single minute of every single day. The problem with this myth is that there is no time for innovation, no time for serendipitous thinking, no time for exploration.

Yeah! We’re remote friendly! We got Bob who lives in San Diego, we’re based in San Francisco, and we have a Slack room, and people usually can come in to work at ANY time (between 8am and 9am), but really fuck Bob he’s kind of a loner and we’re going to probably let him go soon anyway, but yeah you can totes work remote!

It’s no longer about how awesome your developer skills are. Now it’s about bringing out the best from the people you manage, and hopefully *lead.* Your job is now about creating a high-performing team.

Management would be easy if everyone you managed were hard working, collaborative, and had a great attitude and exceptional talent. But then it wouldn’t be management.

Trying to create a sense of urgency almost always backfires.

New research reveals surprising truths about why some work groups thrive and others falter.

This post is not so much for developers as it is for the managers and bosses from those developers. As you probably know by now, managing software engineers (or programmers) is not an easy task. They just don’t like to play by the rules you always took for granted. Why is that? Why are those pesky programmers too hard to handle? Why is it so hard to sit down, write code and shut up??

One of the most common pieces of advice you'll get as a startup is this: Only hire the best. The quality of the people that work at your company will be one of the biggest factors in your success – or failure.

A team working long hours is far less efficient than a well planned team in sync.

A self-organizing team can be one of the most effective ways to build a team of high-quality professionals.

How can we fix the firing process if we're not even talking about it first?

The question of what qualifies as a “Senior Developer” is both context-dependent and so malleable that our industry squishes it into whatever shape fits their current needs.

Technical experts are not necessarily technical leaders. Both have outstanding technical skills; the difference is in how others relate to you. Are you a person that others want to follow? That’s the question that really matters.

“Listen, if there isn’t something going off the rails on your team, then I know you are micro-managing them. You are really good at what you do, and if you stay in the weeds on everything, you’ll keep things going perfectly, for a while. But eventually two things will happen. One, you will burn out. And two, you will eventually start to seriously piss off your team. So I better see some things going sideways, on a fairly regular basis.”

How To Become a Great Team Leader

Working long hours is unproductive, unhealthy, and unfortunately common. I strongly believe that working less hours is good for you and your employer, yet many companies and managers force you to work long hours, even as it decreases worker productivity. So why do they do it?

Before this study, like many other organizations, Google Execs believed that building the best teams meant compiling the best people. It makes sense. The best engineer plus an MBA, throw in a PhD, and there you have it. The perfect team, right? In the words of Julia Rozovsky, Google's people analytics manager, "We were dead wrong."

It’s one thing to hire a bunch of junior developers. It’s another to retain the experienced people who’ll mentor them.

Retrospectives and reflections allow you to codify what you’ve learned from experience, to document mistakes and avoid future ones, and to increase your potential to grow in the future.

Policies are often the result of something that once went wrong. It’s organizational scar tissue developed from a This Can Never Happen Again mandate. And its almost always ill-considered.

Technology culture is driven by an underlying ethos of agility, speed, experimentation, iteration, and hard work. This ethos — which can often foster incredible innovation, productivity, and change — is embodied by the Facebook-coined phrase, “Move fast and break things.” It’s come to define our culture and even permeate beyond technology companies into other industries looking to achieve the same gains at the same rate. But when it comes to people, “move fast and break things” doesn’t work. Because the “thing” being broken is a person.

A shocking window into the $36 billion video game industry and how it can burn out its most valuable employees.

There are projects that no one wants to work at. There could be many reasons for that. Being aware of these problems is the first step to start fixing them. And most importantly, by being aware of these problems we can start from day one implementing processes that prevent these kind of things from happening.

Open offices are more appealing to people in management because they needn’t protect their own time and attention as much. And it’s these managers who are in charge of designing office layouts and signing leases. It’s also these managers who are responsible for booking photo shots of the FUN-FUN office, giving tours to investors, and fielding interviews with journalists. The open office is an excellent backdrop for all those activities.

"People leave managers, not companies." - We've all heard it. Many of us have experienced it. But what makes people want to leave a manager in the first place? And if you happen to lead a team, what qualities can make you better?

Part of building something great is building it to last. No one builds a home for a season, and the same is true for your Engineering team. Retaining your team for the long haul is no easy task, but it is imperative that as a leader it is a priority. Let’s take a look at a few things you can do to retain your excellent Engineering team.

As a programmer looking for a job, you need to be on the lookout for badly managed companies. Whether it’s malicious exploitation or just plain incompetence, the less time you waste applying for these jobs, the better. Some warning signs are subtle, but not all. One of the most blatant is a simple phrase: “must be willing to work under pressure.”

Ultimately, the goal of a hiring process is to bring great people into the team or company — to make sure they’re a fit and will succeed, and to create a great experience for them so they want to join.

In short, how do you get a job with work/life balance when you’re competing against people willing to work long hours?

This Code of Conduct is designed to help all of us build a pleasant, productive, and fearless community. The purpose of the Code of Conduct is not to burden the team with a bunch of needless rules, or to give us a punishment mechanism for people "being bad," or even to correct things that have been wrong in the past. We are striving to make our engineering team a great group of people to work with, especially for those people who have faced more adverse working environments in the past.

Company culture is hard to define, but it’s woven into everything a company does. It’s the reason employees love or hate their jobs, or customers can feel valued or ignored. Like reputation, it takes years to build a good culture, but only a few missteps to mess it all up.

It seems rather obvious that some developers are much better at their job than others. After all, we know that some football players are better than others and we also know that some doctors are better than others, so why shouldn’t this be true for developers as well?