The Misanthropic Developer

  • Don’t Manage By Jira

    September 25th, 2022

    At this point, most people in software dev have had some experience in dealing with Jira or similar tools.

    These tools get a lot of hate for being clunky, annoying, and insert-other-often-valid-issues-here. Jira specifically gets a lot of hate for how it forces a lot of bad behaviors. This sort of makes sense when you take into consideration that Jira apparently started its life as a bug tracking tool.

    But that’s not what I want to talk about. I want to talk about a way in which Jira, and Jira-like tools, should emphatically not be used – but that seems to be one of the main ways that they are used.

    Don’t use Jira as a management tool.

    You can use it to get a view of the work that is currently in progress, but far too many places obsess over the content of “In Progress” tasks and the metrics that go with them. This is an unhealthy practice and it needs to stop.

    That’s not to say that Jira is useless. It isn’t. If you use it as a tool to help a team coordinate with itself, it’s actually not half bad as long as you realize that it does have limitations.

    It’s a pretty decent tool to use in a geographically distributed team in order to have a view on the work that we think needs to be done in the next week or two. It also helps you track blocking issues if you do it right. It even helps teams not get off into the weeds if you use it to break up cards into thin vertical slices.

    Yes, you can do all of this with a set of index cards, but that really only works for teams that are co-located in the same physical space. Digital Kanban boards open up a lot of opportunities for remote collaboration if you treat them as collaboration tools and not management tools.

    Instead of using it as a collaboration too, a lot of businesses try to use it as a management and reporting tool.

    They inspect the board to “make sure everyone is working” – which is a problem for a lot of reasons. Putting aside the fact that this is a terrible Taylorism-style management practice, the tools just plain aren’t made for it. Jira, for example, only lets you assign one person to a card, so using it this way discourages pair and ensemble programming.

    They will insist that every thing you work on be added to the board. This is a bad approach. The board is for the team to self-organize and should only contain work that helps move the project forward. Ancillary work doesn’t belong there. If you want to know what people are doing outside of directly project-related work, ask.

    Insisting that “all work should be tracked” is just a symptom of the Taylorism obsession that everyone be “utilized” at 100%. This is unhealthy for the people who work for you and will lead to burnout and high rates of attrition (which, among other things, will lead to a loss of institutional knowledge).

    This leads to one of the other major problems with using Jira as a management tool (coupled with Taylorism management approaches) – an obsession over velocity.

    Just because you’re moving a lot of cards doesn’t mean that you’re doing meaningful or impactful work. Focusing on throughput as a metric for productivity is a bad idea for reasons that I’ve written about before.

    The list of reasons that Jira (and its competitors) are horrible management tools could go on for several pages, but I can’t blame the tool. What I do blame is the misuse of the tool to satisfy management ego and the desire for simple (but wrong and destructive) metrics to “manage” people as though they were cogs in a machine.

    Jira is a useful tool. Just not for the way that a lot of places use it.

    Writing software is a creative endeavor. You’re solving problems that nobody has solved before. If you aren’t, you should strongly consider buying the product that already exists to solve those problems so you can focus your time, money, and effort on solving problems that are core/differentiating to your business.

    If you think that you can’t trust the people you hired to get work done, that means either that you hired the wrong people or that you have trust issues that you need to work on – both of those are failings on your part as a manager, not the part of the people doing the work, and those won’t be solved by obsessing over metrics.

  • “We’ve Always Done It That Way” and the Organizational Momentum Trap

    September 18th, 2022

    Newton’s First Law of Motion states that “every body continues in its state of rest, or of uniform motion in a straight line, unless it is compelled to change that state by forces impressed upon it.”

    Now, the majority of us have probably heard that, in one form or another, during our time in primary school. It’s usually stated in a simplified version of “bodies at rest tend to stay at rest and bodies in motion tend to stay in motion” but that last part is incredibly important – “unless it is compelled to change that state by forces impressed upon it.”

    It makes sense in physical settings. If you roll a ball, it keeps rolling until it either hits something that makes it stop or friction causes it to slow to the point that it doesn’t move anymore. Both of those two things are outside forces.

    The thing is that it doesn’t just apply to a rolling ball. The same reasoning can be applied to organizations too. It boils down to a very simple statement that most of us will probably hear at some point in our careers when we ask why something is the way it is in an organization (company, group of people, etc):

    “We’ve always done it that way.”

    We do things that way because that’s the way things are done. They were done that way when we joined and since we don’t want to rock the boat, we keep doing them that way.

    Holy shit. Newton’s First Law of Motion describes Organizational Momentum just as well as it describes large-body physics!

    There’s just one hangup – The last part of the First Law – “unless it is compelled to change…”

    This is where the First Law breaks down with regard to organizations. The ball we rolled doesn’t actively resist the outside force but organizations often do. The ball just changes angular momentum to whatever degree the outside force compels it to based on its own mass, etc. People and organizations, on the other hand, will actively work against change in a lot of instances.

    If you’ve ever joined a company and found yourself in a situation where things were dysfunctional to the point that it was amazing anything got done at all, and then tried to improve things only to be met with resistance from all sides, you’ve experienced this firsthand.

    Implementing change is hard. Implementing small changes on a team as an individual contributor is difficult. Implementing changes at the division or company level can be almost impossible even for executives.

    “Can’t they see that things are broken? Things would be so much better if we changed this thing!” you say.

    And the answer is that, yes, some of the people in question see that things are broken. A few of them may even have the desire to see things change (though good luck in getting them to say it out loud in a group setting).

    As it turns out, we’ve known the reason why this happens for quite a long time.

    “It ought to be remembered that there is nothing more difficult to take in hand, more perilous to conduct, or more uncertain in its success, than to take the lead in the introduction of a new order of things. Because the innovator has for enemies all those who have done well under the old conditions, and lukewarm defenders in those who may do well under the new. This coolness arises partly from fear of the opponents, who have the laws on their side, and partly from the incredulity of men, who do not readily believe in new things until they have had a long experience of them.”

    ― Niccolò Machiavelli, The Prince

    There’s a reason that Machiavelli is more well-known for his writing on political thought than he is for his works of poetry or his treatise on the art of war (don’t get me started on that one). He has people pretty well pegged when it comes to group dynamics and organizational momentum.

    Like it or hate it, but it’s true. And a lot of it is just as applicable now as it was when he wrote it in 1513. You’ll find similar examples in a lot of classical writings from different cultures, so he wasn’t the only one with access to this truth about politics and group dynamics. He’s just the one that most people in western countries are familiar with (or have at least heard of).

    Organizations resist change because some of the people do well under the current order (and would like to keep doing well, thank you very much) and most of the others don’t want to rock the boat because they know how risky it is.

    Yes, it’s great if you pull it off, but if you don’t… well, there’s a good chance that you should update your resume.

    So, if that’s the case and we still want to affect change, what can we do?

    At an executive level, when a new CEO comes in, you’ll notice that they often start to replace upper management and even the rest of the C-suite. Part of that is because they know that this problem exists, and will actively work to bring in people that they know they get along with because they’ve worked with them in the past.

    Now, that may be good or bad, depending on the situation. After all, they’ll probably try the same strategy and tactics that they’ve tried in previous organizations, and that may not be helpful in the organization they’re running now. However, that’s how a lot of things at higher levels frequently play out.

    Assuming that you’re not an executive, the answer is going to involve more finesse than force.

    First, don’t make a move immediately. Take some time to see what the landscape is. Find out what the problems actually are. They might not be what you immediately think they are.

    After all, part of your own reaction may be “well, this is how I did it other places and that was better.” See? You might be doing it too.

    Once you have a handle on at least some of the problems, think about which ones would be the easiest to solve (or at least show some improvement on) on a short time scale with minimal help. They may not be the most impactful problems (and likely won’t be), but they are something you can easily point to in terms of quality of life/business improvement.

    Do those.

    Your natural inclination is going to be to go for the big impressive stuff first, but that’s a mistake. Yes, pulling that off would look great, but the chances for failure (or sabotage) are too high. We’re trying to overcome organizational momentum, not get run over by it.

    Making big changes and being right about it (without having organizational and personal buy in) runs the very real risk of making other people look bad because they weren’t doing it that way in the first place. We’re looking to build credibility and some momentum of our own in order to counteract the momentum of our team/company/whatever.

    This is part of where Machiavelli got it really right – people won’t believe that change is possible (let alone that you can pull off that change) until you’ve already done it. And you’ll probably have to do it several times before you’re able to convince people that you might just be on to something.

    It’s hard to argue with success. The good news is that, in the beginning at least, success doesn’t have to be big (as long as someone isn’t actively trying to sabotage you). Go for the easy, almost guaranteed, wins and make sure people see the results (and preferably how those results positively impact the bottom line).

    Part of the way to dissuade that sabotage in the future is to give away at least a little of the credit even if you did all of the work yourself. It’s really damned hard for someone to work against you if you make them look good too.

    When you get recognition for your win, paint it as a group effort (even if it wasn’t and you had to fight people to get things done). “I got great advice from Person X” or “I couldn’t have done it without the support of my boss/team/company mascot/whatever” goes a long way to getting you support from the people within your org.

    When you make someone look good to the people above them, you’re well on your way to having an actual ally going forward. At that point, you can start to think about trying to take on larger challenges.

    If they still try to work against you even as you make them look good, well, Machiavelli had a few suggestions about that too, but we won’t get into that here.

    You can’t make large, meaningful change in an organization by yourself – no matter what your title in the company is. Get a couple of small wins, build a base of fans and allies, and then start going for increasingly larger changes.

    You’ll probably find more success that way than trying to change everything day one.

  • Fast Paced Environments

    September 11th, 2022

    Since at least the startup boom in the late 90s and early 2000s, a painful number of businesses have been trying to market themselves as “fast paced.” They use it as a selling point and they’re very proud to proclaim how “fast paced” they are.

    Look at a job description, and you’ll see things like “Fast Paced Environment” and “Multiple projects.”

    The thinking seems to be that “startups are chaotic, fast paced places where you work to exhaustion and everyone there seems wild about it, so we’ll be fast paced too.”

    First off, startups don’t have to be like that either.

    Second, people are finally starting to value living their lives again instead of pouring their health, mental and emotional well-being, and soul into a company that will discard the desiccated husk when they finally collapse.

    Third, being “fast paced” actually hurts your company and your employees in the long run.

    Stop that shit. For the love of everything decent, stop that shit.

    “Going fast” seems like a great idea – after all, look at all the activity that’s going on out there. Our people are really killing it. They’re out there doing stuff.

    But does it really matter? Seriously. Stop and think about it for a minute.

    The truth is that, NO “going fast” and “doing stuff” don’t matter if you’re doing the wrong things. They also don’t matter even if you are doing the right things if you do them in such a way that you burn out the people who are actually doing the things.

    I’ve seen a lot of businesses over my career that have been absolutely obsessed with the velocity of their teams, how many cards they complete in a sprint, and how many features that they ship – only to act shocked when none of it positively impacted their bottom line, every last person that worked for them quit, AND they couldn’t hire new people because their reputation was in the toilet.

    The businesses that get ahead almost seem “boring” by comparison. Their people work at a reasonable pace, have time for their lives, and get enough sleep. Weekend work is nonexistent outside of extremely rare emergencies.

    People come in, do their work without running around as though the building was on fire, get to bring their whole selves to work in a psychologically safe environment, probably enjoy working with most of their colleagues, and then they get to have a life outside of work.

    Novel concept, right? It shouldn’t be. It should be the norm.

    In an actually agile environment, it generally is.

    “Fast Paced Environment” isn’t the selling point that many companies think it is. It’s often (correctly) interpreted as code for “over worked and understaffed.”

    Hell, even the Navy Seals live by the motto “Slow is smooth. Smooth is fast.” And if you don’t consider them to be high preforming, I don’t know what to tell you.

    Agile isn’t about “fast paced” it’s about sustainable pace and being responsive to feedback – often by delivering functionality in small vertical slices that allow customers or other stakeholders to experience additions in value on a short timescale.

    The stakeholders and customers give feedback on the functionality that’s been delivered and the team can course correct based on what they find out.

    No late night work. No weekend work. Just small, ongoing experiments that deliver value every couple of weeks. Work, present, get feedback, adjust, repeat.

    Nothing about that has to be “fast paced.” In fact, the faster you go past a certain point, the more mistakes that tend to be made and the more rework has to be done.

    Stop running your people and your business into the ground. Don’t glorify the “fast paced environment.” Instead, consign it to the garbage heap of history where it belongs.

  • Your Onboarding Process is Important

    September 5th, 2022

    I’ve worked for a lot of companies over the course of my career – both as a full time employee and as a consultant. If there’s one thing that I’ve noticed during that time, it’s how often one of the most important aspects of bringing people into the company is left as an afterthought – the onboarding process.

    It almost always seems like the process to getting someone onboarded to almost any company just sort of gets put together on the fly whenever someone joins. This leads to gaps in knowledge transfer, access to resources, and sometimes even forgetting to tell someone they need to fill out timesheets for several weeks (I’ve seriously seen this happen more than once).

    To any of my past or present employers and clients, don’t think that I’m calling any of you out. Like I said, almost every place seems to have this problem judging both from personal experience and the shared stories of people that I know.

    I know that running a business (or even just a department or team) is legitimately hard. I’ve been there firsthand and count myself just as guilty as the rest. There are 30+ things on your mind at any given moment and “what do we do with new people” only tends to be one of them when there is a new person.

    That said, however, we really need to do better.

    While your interview process is the first peek into your organization that a person has, your onboarding process is the first real experience they’re going to have with you. If it takes too long for them to get the things that they need in order to succeed in your organization, you run the risk of losing them.

    Interviewing sucks and most people dislike dealing with it, but if they spend too long not being able to do their jobs after they’re inside, they’re going to take that as a sign of what the normal day-to-day is like and start talking to the other companies they had offers from.

    I’m not saying that to be alarmist. I’m just telling you the truth.

    So, in order to make the onboarding experience better, what can we do?

    Realize That This Is Part Of YOUR Job

    The job of onboarding new people is your job. Don’t shove it on some random member of your team and don’t leave it for the new person to figure out how to onboard themselves. You’re the one who knows the landscape. If you just throw them at it, they’ll miss things and it will be your fault.

    You’re not doing someone a favor by hiring them. You’re engaging in a mutually beneficial relationship. Act like it.

    Automate Everything You Can

    If you work on VMs, have multiple base images for your different employee types. One base image isn’t going to work because the needs of your sales people, for example, are vastly different than the needs of your developers.

    If you have compute resources that can be granted access to through things like AD groups, take the time to set that up. It’s much easier to add someone to a couple of groups than it is to add a user to individual resources.

    Automating the work also helps prevent mishaps like the user not having access to basic resources because you forgot to add them to one item while you were adding them to the other 20. This is a good thing.

    Front Load The Work

    User accounts, email, and all of the basics should be ready to go before your new employee even steps foot inside your org (virtually or physically) on their first day. Anything that can be done before they join should be done before they join.

    I’ve walked into companies where I didn’t even have a computer for the first couple of days even though it was known weeks in advance that I was joining. That’s a bad sign.

    Document Everything

    A lot of teams and businesses just sort of try to remember what new people are going to need by going with what comes to mind. This is a mistake and I’ve seen it bite employees, leads, and managers in the rear more than once (in fact, I’ve been the one bitten by it a few times).

    Anything that can’t be automated should be documented somewhere that it’s easily accessible. Team wikis are great for this.

    From the manager side, you should have a step by step set of instructions of things that you need to do in order to onboard someone – everything from requesting an account for someone to adding them to AD groups.

    Update this list regularly as requirements change (because they will).

    From the employee side, there should be a fairly comprehensive set of steps that they need to take in order to configure their machines if necessary (it almost certainly will be), any common knowledge that they’ll need, etc.

    I realize that the documentation seems like a lot of work (and, honestly, it can be), but the good news is that it’s surprisingly easy to start. When you onboard your next team member, take notes of what you had to do to onboard them. Work with them to take notes on what they had to do in order to onboard themselves successfully.

    Congratulations, you have documentation that’s useful because you were writing it as you were doing the thing. With every new person that you onboard, have them make suggestions for things to change in the documentation (because requirements change and sometimes we forget to write a step that we take for granted). Each iteration of onboarding people will get easier if you do.

    Onboarding people is difficult and stressful when you’re expected to keep making progress toward whatever goals the stakeholders have set but it’s vital that we do it well. If we can make it less random by following the advice above, we can make it better.

  • “Quiet Quitting” Is Just Setting Boundaries

    August 28th, 2022

    A lot of business and online publications have been absolutely losing their minds with something they’re calling “Quiet Quitting.” They’re painting it as a practice where workers are basically slacking off all day and talk about how it’s going to ruin the careers of the people that are doing it and damage the companies that they currently work for.

    But if you read the articles, you find out that “Quiet Quitting” is literally… doing your job and then going home…

    It’s not slacking off or sitting in your chair and spinning around in circles for 8 hours or anything weird. It’s seriously just doing your job as it’s written and then leaving in order to live your life.

    The mind boggles.

    So what makes this so upsetting to businesses and publications? The answer is that people aren’t going “above and beyond” anymore. They aren’t working themselves into the floor doing the job of multiple people for the same amount of pay. They’re learning to work in order to live instead of living in order to work and this TERRIFIES bosses and companies that rely on exploitation in order to maximize their profits.

    It’s even more terrifying to bosses when you look at the larger picture of the current employment landscape. Workers have more power right now than they have had for quite some time between The Great Resignation and a dramatic increase in union activity. People who run abusive companies are probably seriously starting to lose sleep over this, and that’s part of why you’re seeing such an effort to smear and stop it.

    I can guarantee you that the decent companies and bosses out there aren’t in a panic about “Quiet Quitting” and are shaking their heads along with the rest of us.

    I can guarantee this because I know some of them.

    For generations, we’ve been fed the lie that if you work hard, you’ll get ahead and the company will take care of you. Job hoppers are looked down on and sacrificing for the company that employs you is celebrated.

    I’d say that the company taking care of you might have been true at one time, but by and large, it wasn’t true in the past either (apart from people in upper management or similar positions).

    It’s always been a lie and people are finally starting to point out that the emperor has no clothes.

    Work isn’t your life. Your company isn’t a “family” (and be incredibly suspicious of any company that calls itself that). The company you work for will happily fire you if it considers it to be in its best interest. If you died on the job, they’d have the position posted on CareerBuilder, Monster, Dice, and LinkedIn before your funeral was over.

    Don’t feel bad about simply doing your job and then leaving to spend the rest of your day living your life.

    Don’t feel bad about not “going the extra mile” because you might not get a raise or promotion that probably doesn’t exist at your current company.

    Don’t feel bad about changing jobs because a better opportunity comes along (whether you define “better” in terms of pay, learning opportunities, or any other criteria that you have set for yourself).

    Your life is yours. It doesn’t belong to the place that deposits money into your bank account. The only thing they should expect in return for that money is a reasonable amount of work done in a reasonable amount of time. Past that, they have no claim on you and if they disagree, there are a lot of other places out there that are willing to trade money for your work.

    The more people who start to enforce healthy boundaries with regard to work/life balance, the faster “normal” will change in a direction that is more healthy for actual people and is less open for exploitation.

    Yes, change is scary. Pushing back is hard. We’ve been brainwashed from an early age to please the people “above” us. And, admittedly, not everyone has the power and privilege to do it. That’s why those of us who do have that power and privilege should exercise it – because, in the long run, it will help those who have less institutional power and we all end up better off.

    Oh, and about the brainwashing to please people “above” us – want to take a guess as to who doesn’t get brainwashed with that nonsense? I’ll give you three guesses and the first two don’t count.

  • Set Your Team Up For Wins

    August 21st, 2022

    There are a lot of times when your team’s morale can be rather low. You may have experienced a series of setbacks, key people may have left for other opportunities, or your team might not even be an actual team yet because they haven’t had a chance to gel with each other.

    I’ve seen a lot of managers ignore the state of things when morale is low because they either don’t know any better, don’t know how to have difficult conversations to address the problem, or really don’t care.

    If you have a manager in your organization that doesn’t care, my best advice is to manage them out of your org. In the other situations, there are real, concrete ways for a manager to help improve things.

    One of the best ways that I’ve found to raise the moral of a team and get them to gel (especially after setbacks) is to literally set them up for a win. Something relatively easy to achieve, but that has meaningful results.

    Both of these parts of the equation are important. It should be something that the team can almost certainly achieve without too much stretching (a little stretching is fine if they aren’t totally demoralized), but it also needs to be meaningful. If it’s too difficult to accomplish, your team may become more dispirited. If it’s not meaningful, it won’t have a positive impact on morale (let’s face it. We can all smell bullshit busywork from a mile away).

    Ideally, it will be something that the members of your team have voiced actually wanting to do in the past. Maybe it’s paying down some technical debt that has been getting in everyone’s way, but that always seemed to get put off or moved down the priority ladder. Maybe it’s improving performance or any number of other things.

    Every team is different, so I can’t give hard and fast suggestions here.

    If they don’t have things that they’ve voiced which they’ve wanted to do for a while (if, for example, the team is new), you’re going to have to think of something to fit the bill.

    In a perfect world, it’ll be something that will take less than a sprint to do, involves the whole team, and can be viewed as an actual accomplishment. The world isn’t always perfect, but we should try to get it relatively close.

    Yes, you want to spend a whole sprint on this if you can.

    Yes, I realize that that’s two weeks, but if your team’s morale is in the toilet and stays there, you’re going to lose more than failing to ship a few cards that the product owner decided are the priority this time around.

    In fact, this is a discussion you should have with the product owner (and any other important stakeholders) beforehand so they both know what’s going on and can help. At a bare minimum, they should get the message that they are not to try to slide things onto the team during this time or otherwise do things to add to their already high stress levels.

    Put it in terms of Enlightened Self-Interest – if they don’t help get the team to a point where they are capable of doing good work again and looking forward to doing that work, well… there are going to be changes of other sorts…

    While your team is working on gaining this win, play defense for them more than usual. Remember, the purpose of this is to build their morale back up, so try to shield them from things that are going to have a negative impact on that goal.

    Finally, when they achieve their goal, recognize and celebrate it with them.

    You should always recognize and celebrate their wins, but it’s especially important to do so now. Otherwise, you just reinforce the notion that nothing that they do matters.

    One of the worst bosses I’ve ever had never celebrated any of the victories that his team achieved (no matter how big they were) and paid zero attention to the morale of the team. It was no surprise to anyone except him when basically the entire team left within the span of about a month or so.

    Don’t be that person.

  • Nobody Hits The Ground Running

    August 14th, 2022

    I’ve heard managers say that they want someone who can “hit the ground running” far too often. The problem is that literally nobody hits the ground running.

    What managers really mean when they have this attitude is that they want a replacement for $FormerEmployee because they think that the people that work for them are “fungible resources.”

    You can’t know everything day one. And, honestly, you shouldn’t have to.

    At “best,” you find someone who has worked with every technology that you use (good luck with that). Even then, you have to do onboarding, get the development environment set up, and spend time for the person in question to learn their way around your codebase. All of this takes time.

    Before you try to strike “onboarding” from that list, I’ve known multiple places where the time it has taken to get every piece of software, access, etc that an employee needs has been measured in months. (yes, really). There are a number of causes of this, but they can and do happen (far more often than you’d believe, honestly).

    I once had to fight for a couple of months with the cybersecurity team at a Fortune 100 company in order to get access to a secure, externally accessible file share in order to collaborate with one of our vendors for a new product that we were piloting/building with them (and that was after we went through the hassle of getting everyone involved to sign the required NDAs and other paperwork. Legal was okay with it, but not the infosec people, and most of the information being given to the vendor was literally logs for their own product). No joke.

    In the more realistic (and, in my opinion, better) scenario, you also spend time for the person to ramp up on at least a couple of technologies that you use which they don’t have any real experience in.

    Why is having someone spend time ramping up on new technologies a better thing? As software developers, we are constantly learning and growing. If we aren’t learning, we’re effectively falling behind.

    If you hire someone who has nothing to learn at your company, the chances are that they aren’t going to stay around for very long at all. Additionally, you’re probably going to have to pay an extreme premium to check all of your “requirement” list.

    All of this is in addition to the time spent finding their place socially in your team and organization. That in itself is not always a trivial task.

    Now that I’ve said that, I will admit that there is a way to have a new team member be productive within the first few days, but the type of manager who wants people to “hit the ground running” is probably going to balk at it because they would likely view it as wasteful.

    The answer is pair programming.

    Pairing is, in my experience, probably the easiest way to not only familiarize a new team member with your codebase but with your organization. It helps socialize them to the rest of the group, helps them gain institutional knowledge, and a number of other things. It even helps the existing members of your team learn things from the new person.

    You still don’t “hit the ground running,” but part of your orientation into the new company involves actively working with someone who can help decrease your ramp-up time.

    The typical argument against pairing is that you’re paying two people to do the job of one person. The truth of it is that you’re probably going to get the “output” of about one and a half people, but it will be of a higher quality from a maintainability standpoint and you will have more than one person who is familiar with the code in question in case someone goes on vacation or leaves your company.

    The reasonable alternative is to realize that a new person is going to take time to be truly productive, and that this is normal. People aren’t replaceable cogs and we really need to stop thinking of them that way.

    The unreasonable alternative is to expect them to “hit the ground running” and to be upset or angry when they don’t meet unrealistic expectations of productivity.

    The first two options are far better from a quality of life standpoint for your organization and its employees. If you go with option three, your turnover is likely to be much higher, your people won’t care about their jobs nearly as much.

    Life and business are a series of tradeoffs. Make your choices carefully.

  • Networking is Just Talking to People

    August 7th, 2022

    You hear people say that the real way you get jobs is not through applying to things online, but through networking. The truth is that, by and large, they’re correct. The problem is that a lot of us have no idea how to network or even what it really is.

    In fact, for some people, when they hear the word, the first thing that comes to mind is images of people in suits trading business cards at “networking events” where everyone seems to be trying to get something from everyone around them.

    I have good news. You can put that out of your mind, because the truth is a lot simpler. Networking is really just talking to people and creating a relationship between two people. That’s it. Seriously.

    Since I’m assuming the people reading here probably passed kindergarten (or even if you didn’t), you probably already have the ability to play reasonably well with others. That means you have this networking thing pretty much down.

    Meet someone interesting while you’re out walking your dog? Talk to people in the hallway at a conference? Get to know people while you’re doing your job? These are all forms of networking.

    Before you accuse me of exaggerating, I have literally met potential clients and bosses at places as mundane as parties thrown by friends or while browsing the shop an old friend of mine used to own and just getting pulled into a conversation with a new customer there.

    The same is true of interactions online – twitter, linkedin, and discord (which really is basically just a modern-day version of IRC – yes, I was around in the mid 90s) are all great places to meet and get to know people.

    I do have some advice other than “GO TALK TO PEOPLE!” though.

    First, approach this as just being a person. Don’t go into this expecting something immediately – that isn’t networking. That’s cold call sales (at best). Go with the intention of just getting to know people and try to be helpful to the people you do meet.

    Yes, that means you don’t get instant gratification. It also means that you should start doing this well before you need to have people helping you.

    As you get to know more people, sometimes they’ll be able to help you. Sometimes you’ll be able to help them (please do so, within reason of course). Sometimes you just have a good conversation.

    Opportunities for everyone happen over time. They’re not immediate things. Just be sure to give as well as take.

    Second, have a way to follow up with people. Online, this is pretty trivial since you’re already associated with a username. In person, it can be trading phone numbers/email addresses/twitter handles/whatever.

    I spend enough time in professional settings (offices, conferences, etc) that I have personal business cards apart from the card for my current employer. If you go this route and you’re able to afford it, get decent business cards. The cheap ones stand out (and not in the good way).

    I spent the better part of a day designing my cards and ordered them on nice, heavy cardstock from Moo.com. They’ve been well worth the expense for me (but your mileage may vary).

    Keep in mind, however, that not every interaction is the place for a business card. More casual interactions with people may be a place where a business card is actually intimidating or off putting. Tailor your approach for keeping a line of communication open to the audience you’re dealing with.

    Remember, the goal here is just to meet people, get to know them, and to be part of each other’s world. Meaningful connections rather than superficial ones. The rest comes with time.

    The next time you go to a conference or user group, pick a single digit number and try to meet that many new people. Be genuine, talk to them, listen to them, and just be present in the moment.

    Congratulations. You’re networking.

  • If It’s Not In Writing, It Didn’t Happen

    July 31st, 2022

    During your career, you’ll be faced with times when someone will tell you something along the lines of “You’ll be getting a raise/bonus of $x if you meet these metrics” or “We won’t try to take the IP of things you work on during your own time” or even something as simple as “We are signing off on this decision verbally. Go ahead and do it.”

    Don’t believe them, and do not take any of these statements at face value.

    Anyone who tries to do anything like this without putting it in writing has a high likelihood of conveniently “forgetting” that they ever said anything in the first place. While it’s true that verbal contracts can be upheld in court, it’s extremely difficult to prove the conversation even happened without proof (and voice recording laws vary by jurisdiction, so if you want to record it, you need to check on the laws where you are beforehand).

    The problem is that these kind of people try to never put anything in writing. Convenient, right? Trying to get someone who works by using lies and “forgetting” to commit what they’re promising to writing is like trying to get a fish to jump out of a stream and into a frying pan. Good luck.

    You’re going to have to treat them like a potentially hostile party – which is what they effectively are. We’ll break down tactics and strategies for this into a few different categories.


    Pre-Employment

    Read every piece of paper that you get sent – the job offer, benefits information, any IP related legal verbiage, any piece of paper that restricts your ability to work outside of the company or invest without clearance (financial institutions like to surprise you with this one after you’ve already joined), etc. In fact, ask for a copy of their employee handbook while you’re at it.

    As you read it, strike out the parts that you do NOT agree to. Initial them. DO NOT SIGN ANYTHING YET. Send them back. If there are any guarantees that you were given verbally which were not in the documents you have been given, request that those items be added as well.

    This is a contract negotiation. Treat it like one – part of that means that you need to look at everything that’s in writing and think of how it can be used against you. If you have access to a lawyer, run it past them. If not, you’re going to need to get at least a basic understanding of contract law. If the company refuses to make changes, and you have the ability to walk away, I strongly suggest you do so.

    Keep copies of all of these things. Make a copy of the initial documents. Make a copy of the documents after you’ve made any changes. Make a copy of the documents you get sent back (compare them to your changes). Make a copy of the documents that you finally sign. Put them in a safe place (I’d advocate having a digital copy in at least 2 places and possibly a printed copy kept in a safety deposit box or, at the very least, a fire safe).

    While working as an employee

    If you are working with someone that tries to only give orders, etc in a verbal format, follow up every meeting with an email summarizing your understanding of what was said and ask if your understanding is correct. It’s probably a good idea to send it to all attendees – both so they can have a summary for their own use as well as to make it more difficult for the person to backpedal later.

    If something that is written can be interpreted in multiple ways (frequently with one of those ways being to your detriment or their explicit benefit), ask for clarification.

    Save all important correspondence (both what you receive and what you send). Be aware that a lot of corporate email systems auto-purge content that is over a certain age (supposedly because it “uses less space” but the real reason is often to destroy paper trails without getting in trouble), so save it as a PDF and keep it in a safe place.

    Having a CYA file and never needing to use it is considerably better than getting blindsided by malfeasance and having no way to defend yourself.


    Working as a contractor or a company

    EVERYTHING needs to be in writing. The contract should spell out what your deliverables and responsibilities are, the compensation and how it is delivered, how things are wrapped up in the event that something happens, etc. Save all emails to/from the client. Anything in writing needs to be preserved – often for quite a long time after the job is finished.

    Run all contracts past your lawyer. If you don’t have a lawyer and you are running a company, stop what you’re doing and find one that you work well with. Do not proceed any further until you have one.

    I could write on this section for a while, but instead I’ll refer you to Mike Monteiro’s talk “Fuck you, pay me” on YouTube. He and his lawyer cover the subject masterfully.


    Isn’t this really cynical?

    YES. It is and I’m glad you noticed.

    The unfortunate truth is that you can’t treat business like you would a relationship among your friends. They operate on completely different principles.

    A relationship with friends (in a healthy relationship at least) should be one of equals where everyone treats everyone else with respect. It’s driven by mutual interest and caring for each other.

    A relationship with a business (especially when you are an individual or a smaller business), is based on transactions and has an inherent imbalance of power. You may be acting with caring for the other party (that’s a discussion for another time), but the larger corporate entity is almost certainly, AT BEST, going to be acting due to financial motivations.

    At worst, you’re going to be dealing with someone who actively tries to screw you because it makes them feel powerful. I’ve dealt with people like this. It sucks, and at the end of the day, the only thing you have to protect yourself is what you have in writing and potentially what you can prove in court.

    Don’t put yourself in a position to be exploited. Protect yourself, your career, and your mental and emotional wellbeing instead.

  • Asking “Can We Do This?” Isn’t Enough

    July 24th, 2022

    When we’re looking at a course of action, whether it’s for your business or in your personal life, too many of us get hung up on whether or not we can do something and not whether or not it actually makes sense to do it. This can lead to a lot of (hopefully) unintended consequences that cause those choices to come at a high price (either to ourselves or others).

    Thankfully, there has been a growing focus on harm reduction in some circles over the last several years. If you want to try to reduce the negative impact of the things you do as a person, a leader, or a company, you may want to consider answering the following questions before you decide on a course of action.

    What is it that we’re trying to accomplish?

    Do you know what outcome you’re wanting? Seriously sit down and think about it.

    If you can’t answer this question, you may not want to go forward. If the answer is “enrich myself at the expense of others,” you really probably shouldn’t go forward (though, if that’s your motivation, you probably aren’t going to listen to me anyway).

    What are the reasons we should do this?

    What benefits (to both ourselves and others) are going to be the result of doing what we want to do? Consider 2nd order (and higher) effects here – 2nd order effects are the “consequences of your consequences.” You do Thing A, which causes Thing B to occur. Thing B occurring causes Thing C to occur.

    Is there a great deal of benefit to be brought by these actions? That’s generally a positive thing. Just make sure you’re thinking of actual benefits that are likely to happen and not some fantasy that you’ve made up.

    What are the reasons we should NOT do this?

    What damage are our actions likely to cause? Again, think of 2nd order effects.

    If the damage outweighs the benefits, is this something you should really be doing?

    Eliminating poverty is a great benefit to the world. Doing it by turning poor people into soylent green? Notsomuch.

    Before you accuse me of jumping the shark with the soylent green reference, keep in mind that a lot of eugenics based “solutions” have been offered (and even attempted) as answers to things that powerful people have seen as societal problems.

    What is going to prevent us from doing this? What challenges are we likely to face?

    The reason to ask this is twofold – first, it gets you mentally prepared for some of the issues that might come up. Second, it may give you a look into the reason this thing hasn’t been done before

    It may be that nobody has come up with a good solution. If you have one, by all means, go for it. However, it may have not been done because the “solution” is much worse from a harm perspective than the problem you’re wanting to solve.

    When you do this, consider how you are likely to overcome these issues and apply the same benefit vs harm analysis to them.

    The bottom line is that your actions have consequences and you are morally responsible for the things that you do in this world. You can scream “the purpose of a company is to make money” until you’re blue in the face, but that will not absolve you of the responsibility for the harm that you cause in the search of profit.

    There’s a quote attributed to Chief Seattle that I’ve found to be very true – We Do Not Inherit the Earth from Our Ancestors; We Borrow It from Our Children.

    Life isn’t a game where the point is to have the highest score when you die. You can’t take your money with you, but you most certainly leave behind the consequences of your actions for others to live with. We need to start realizing that and act appropriately.

←Previous Page
1 2 3 4 5 6 7
Next Page→

Blog at WordPress.com.

  • Subscribe Subscribed
    • The Misanthropic Developer
    • Already have a WordPress.com account? Log in now.
    • The Misanthropic Developer
    • Subscribe Subscribed
    • Sign up
    • Log in
    • Report this content
    • View site in Reader
    • Manage subscriptions
    • Collapse this bar