7 ms·
Software development pushes us to get better as people
- black_13 5y ago[dead]
- oh_sigh 5y agoNot my experience with the number of occupationally successful yet seemingly broken individuals I've worked with. Unless working crazy hours to the detriment of your health and family life is considered growth.
- hyperxy 5y ago[flagged]
- dang 5y ago"Don't be snarky." "When disagreeing, please reply to the argument instead of calling names." "Please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize. Assume good faith." https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- csdvrx 5y agoWhile I generally you are 100% on point, this posts both refer to the original articles, and makes a interesting point: there are a many companies whose goals are at least questionable. I don't know how I could sleep at night if I was working for say google or facebook.
- lliamander 5y agoI don't think these skills scale up to larger levels of human organization. Heck, the Agile folks often make that point specifically with regards to team and corporate structure. We cannot be equally understanding and empathetic with everyone.
- lmilcin 5y agoIt might be the other way around. I think you need to be right type of person to be a (good) software developer. To be a (good) software developer you need to be at least a little bit honest with yourself (can't learn from mistakes if you can't acknowledge you made a mistake, etc.), you need to be curious, you need to be willing to observe and learn and you need to be able to put effort including in things that may not necessarily have immediate payoff. All of which, I think, correlate with being a good person. Does not mean you will be a good person, it just means there is higher chance. And, in retrospective, all good developers I have ever got chance to know a little better were nice, good people (at least to me). Which is not true for general developer population (which is to say I also got to know a lot of shitty people which were never good developers).
- didibus 5y agoDon't know it there's a relationship to being a good person, for whatever moral interpretation of good. But I do agree that it helps to be a good developer that you have good introspection skills, honesty, curiosity, and confidence to make mistakes and learn from them.
- ratww 5y agoI agree with you. But I think GP has a point, he just picked wrong qualities... I believe in software engineering especially it is important to have empathy (to code in a way that others understand) and humbleness (to accept your limitations in a team setting). Maybe those correlate with being a good person? I don't know.
- deleted 5y ago[deleted]
- Hasu 5y ago>To be a (good) software developer you need to be at least a little bit honest with yourself (can't learn from mistakes if you can't acknowledge you made a mistake, etc.), you need to be curious, you need to be willing to observe and learn and you need to be able to put effort including in things that may not necessarily have immediate payoff. >All of which, I think, correlate with being a good person. Does not mean you will be a good person, it just means there is higher chance. None of this correlates with being a good person at all! Let's imagine that I am pure evil and want to maximize harm. Being honest with myself, learning from my mistakes, being curious, being willing to learn and observe, and putting effort into things that may not have immediate payoff are all going to make me better at poisoning the water supply or what have you. These traits correlate with being effective, not good.
- sva_ 5y agoI know I shouldn't say this, but can't help to point out that this is some major HN circlejerk material. The type of post through which ppl form stereotypes about this board. The whole article is pretty bizarre.
- mistermann 5y agoFTA: > Have you ever been on a really good software team? There’s this feeling of connectedness, of shared purpose. We know what we’re building, and we are skilled at building it together. This kind of team can grow some amazing software. > When we work at making our team great like this, we look for new ways of working together. The original agile movement scratched out imposed structure and asked the team to make their own. At our conferences, we talk about inclusion, empathy, emphasis on relationships. We talk about endless learning, freedom to fail, curiosity and compassion. > In software, participatory sense-making means developing a shared mental model of what the software is, what it’s going to be, and how it works. We need to understand what we’re building deeply, with a clear language to talk about it. It needs to make sense to each of us, and to all of us. We construct this model together: that means there’s more of us to work at making it real in the world. It also means the model is richer, fits with more of the real world, and more rigorous. This comes from our many perspectives participating. > In humanity, participatory sense-making is how we find shared reality in the different pieces of the world that each of us see. We build new concepts that exist only among our minds: money, economy, justice, law, music, conservation, fashion. These are real things that have causal effects on the physical world because we collectively create them. It seems to me that even software people/communities, who have extensive experience working with complex models, very often fall victim to the same sort of counter-productive bickering when the topic of conversation changes to standard culture war topics. My theory (in part) is that when people are talking about such things, they tend to forget that they are talking about custom models of reality (we each have one within our mind) rather than reality itself....and as one should expect, chaos and strong emotions ensue.
- egeozcan 5y agoAny job that requires problem analysis and coordination skills has the same effect. As a software developer (well they call me architect these days), I'm more or less sure there's nothing special about our profession.
- WalterBright 5y agoThe only thing really "special" about software, and it applies to all engineering, is you cannot pretend something is working when it isn't. If your airplane design doesn't fly, pretending it did doesn't work. But in the soft sciences, like economics, politics, social topics, history, etc., deluded thinking is commonplace even among those highly educated in the field. What I find curious, though, is STEM PhD's apply rigorous logic to determine if something is true or false. But the same people, when thinking about non-STEM topics, throw logic, reason, and analysis out the window and just go with their gut feel. A commonplace example is STEM people know very well that (A implies B) is not the same thing as (not A implies not B). They don't make that mistake in their field. But they apply that logical fallacy everywhere else.
- stronglikedan 5y ago> you cannot pretend something is working when it isn't. Tell that to my boss, who wants to ship every prototype and POC to our customers and call it a day.
- WalterBright 5y agoYou certainly can pretend your car has 10 gallons of gas in it when it has only 1, but you're still going to run out of gas after that gallon is burned. I suppose one could conclude that pretending can work if the consequences are borne by others.
- alisonkisk 5y agoOr programming your flash drive to pretend it has 32GB when it only has 4GB, as is done on Amazon.com
- fnord77 5y agoI've been a software engineer for 3 decades on several teams. this article is hokum
- awinter-py 5y agolove the image, 'participatory sense making' is important, but IMO software teams that have an 'assembly line' do it by creating strong patterns and pushing them outwards it's hierarchical style emitted from a relatively few people my experience of my own 'developer mindset' is to be uncomfortable with uncertainty, and prone to overengineering; I've spent months unwinding this in order to be a product leader and this journey is far from over there's some poli sci claiming 'desire for best practices' primes engineers to certain kinds of radicalization https://www.al-fanarmedia.org/2016/05/engineers-and-jihadists-the-curious-connection/ https://www.al-fanarmedia.org/2016/05/engineers-and-jihadist.... no idea what my threshold should be for believing social science these days, and the authors propose other explanations for the effect they observe
- abeppu 5y agoI think fundamentally this confuses "effective" with "good" in a way that seems actually quite incurious and verges towards dangerous. Sure, to collaboratively build complex technical products, teams must cooperatively form an understanding of various parts, concepts, whatever. And yes, working with a group requires us to be conscientious of the complex and varied factors that impact on the effectiveness of that group. But ... do those things make you "good people"? What if your team is working really great as a group to build a guidance system for a deadly weapon? What if your team is sense-making in the process of building tools to deliver disinformation in a highly targeted way in the lead up to an election? What if you're really great as a group at building tools to let the state find and censor dissenting speech? Something's clearly missing here. And the failure to seriously consider what might be good or bad is also present in the author's sweeping claims about everything else that we collectively imagine into being: > In humanity, participatory sense-making is how we find shared reality in the different pieces of the world that each of us see. We build new concepts that exist only among our minds: money, economy, justice, law, music, conservation, fashion. These are real things that have causal effects on the physical world because we collectively create them. Is money "good"? Is "justice" good? Is law "good"? Maybe. There's another lens which might say that all of these are mechanisms by which powerful people and institutions reinforce their own power. The law is good if you get to help write the law. Money is good especially if you get to use taxes to get a population to feed and supply your army. Justice is good if it lets you punish anyone who attempts to subvert your authority. Maybe an example of the trifecta of these would be the "participatory sense-making" that introduced the encomienda system? What if "sense-making" itself can be a weapon? Sure, let's all try to have healthy communication and collaboration practices in our teams. But let's not delude ourselves that this makes us good.
- jonstaab 5y agoThis is exactly the kind of thing a software developer would say.
- lgleason 5y agoThere is a lot to wade through with this blog post. But "pushing us to get better as people" is a VERY subjective statement. For example, the author is one of the people who started the Greater Than Code podcast. Some of the regulars and panelists for that podcast, since its inception, have been involved in efforts to purging people from conferences, tech communities etc. that they deem to be "un-desirable" or "bad people". The challenge is that the lens they used for applying these labels generally seems to split along political lines, where left leaning individuals tend to agree with these labels and right leaning do not. If you have successfully purged most of your "un-desirables", forced the other ones underground with the real possibility of losing their job etc., and the only people who dare to say anything are those who subscribe to your ideology (the "in" group), I'm sure that things must look really rosy. But, for the large number of people in the "out group", not so much. Beyond this, I'm skeptical of software development itself pushing us in this direction. If that statement were true, would we have not noticed this in the early days of the profession?
- vegetablepotpie 5y agoIf you have views that are ignorant and prejudice, and you act on those views in ways that harm other people, you should take responsibility for that, and there should be consequences. Saying that your ignorance and prejudice is a valid political opinion, does not change how people should respond to you. Attempts to politicize bad behavior is disingenuous and a thought terminating cliche. Claiming cancel culture in the face of valid criticism is an easy out for powerful people who refuse to take responsibility. Failure to have awareness and take responsibility is the thing that is destroying society. For some reason the institutions that should have been enforcing personal responsibility have failed to do so. Rather than giving up, people are organizing to form new institutions. You may like, or dislike them, but they are going to be different than the one that came before.
- notsureaboutpg 5y ago>If you have views that are ignorant and prejudice, and you act on those views in ways that harm other people, you should take responsibility for that Will DA Chesa Boudin take responsibility for his "progressive" / "anti-incarceration" policies in San Francisco which led to a rise in crime? Will the "defund the police" crowd take responsibility for the rise in crime they have caused? Both political parties have ignorant views which are harmful. In a lot of ways, pro-choice policies are harmful and even deadly (and through a different lens, pro-life policies are also harmful and even deadly). The whole thing about politics is that you cannot objectively determine the harm of the beliefs involved.
- okareaman 5y ago> There is an alignment between writing really good software and being good people together This statement makes me feel good but I don't think it's particularly true based on my experience of working with brilliant a-holes who metaphorically lived in caves by themselves and occasionally threw out amazing code releases.
- ankurdhama 5y agoSounds good, as a theory. Next step for the author should be to do experiment, collect data, analyse it and reach a conclusion if this theory works or not.
- musicale 5y agoThe author seems to be making the point that trying to work effectively and create a good software team can potentially make you better at relating with other people, and maybe even at imagining a better society or reality, and I do think that's possible though not limited to software. (For example musical groups may offer a literally harmonious and potentially transcendent experience as well as working cooperatively toward shared goals. Schools, religious groups, clubs, and sports teams can also be positive, and so can non-tech workplaces and other non-work communities.) I would also add that trying to be a good software developer, team, or company means, at least in part, that you should try to write good software that is well-designed, reliable, and user-friendly. Which is to say, kind of the opposite of much of modern tech which seems to be designed by accretion, unpredictable and buggy, slow and inefficient, hard to use, and often in opposition to the user's goals and well-being and optimized for the extraction of money, time, and attention.