16 ms·
It seems to be missing a very big factor: culture. If your goal is to implement some code for, say, healthcare, it is a lot easier to explain the business proc
by crote 6y ago
It seems to be missing a very big factor: culture.
If your goal is to implement some code for, say, healthcare, it is a lot easier to explain the business process to someone who is already familiar with how stuff is done on a higher level. Whenever you hire someone from a different culture / country, you need to start from the basics by explaining the very core of your society.
An American programmer might not be too concerned if a body temperature measurement returns 45 degrees Celcius. Similarly, a patient height of 95in probably wouldn't immediately raise alarm bells for a European developer.
Your offshore developer team might be perfectly capable of writing the code once they understand what to write, but getting them to understand it is a hell of a lot more difficult.
Add to that the possibility that English is the second language for both sides, and things get messy pretty quickly. Not to mention a time zone difference making communication even harder.
- silvestrov 6y agoAnother aspect of culture: how one-sided the communication is. Silicon Valley and Scandinavian cultures are very flat, so it is possible for "the man on the floor" to tell management that it doesn't work to put diesel into a gasoline car. In authoritarian cultures this would be a mistake as it's seen as embarrassing the management by saying they made a mistake. If you want to continue being employed then it is much better to pretend there is no problem. Catching problems early saves a lot of money in software development, so a non-authoritarian culture can save a lot of time and thus have a lot higher wage.
- bluetomcat 6y agoAn authoritarian culture, however, can get work done much quicker while staying with a razor-sharp focus. The whole "democratic" decision-making process takes time and leads to a sequence of decisions spread throughout the time domain, which, taken together, might lead to a suboptimal result compared to what might be achieved by following the steps of an "enlightened benevolent dictator".
- bitwize 6y agoThe problem with that is that dictators usually fail to be sufficiently enlightened or benevolent.
- teatree 6y agoSomehow China has been an outlier to this norm, so far.
- ben_w 6y agoEnlightened in the sense I think it’s meant here, but not benevolent.
- solarkraft 6y agoIt significantly depends on who you are. Uyghurs and Falung Gong practicioners would probably disagree.
- GlennS 6y agoI disagree, China seems to fit right into the pattern. Mao became undisputed leader. His purges were bad enough that the party decided to implement a 10 year term limit. Xi removed that limit, and now China is swinging slowly towards authoritarianism. We're still in the early years of his rule at this point. Wait till he makes a mistake and his grip starts slipping, then he will see enemies everywhere. When someone makes themselves ruler for life, it tells you that their character is not suitable for that position, because they lack the humility to hand over their work to a successor. Because they've decided they can't trust other people's motives and competence.
- RcouF1uZ4gsC 6y agoThe closest to an enlightened, benevolent dictator in modern times I think is Lee Kuan Yew.
- pjc50 6y ago> enlightened benevolent dictator These are extremely hard to find, and anyone who thinks of themselves as one is missing at least one of those properties.
- JohnBooty 6y agoAnother aspect of culture: how one-sided the communication is. Yes, absolutely this! I worked at a company where the engineering culture was IMO very dysfunctional. We had a lot of fulltime employees working in other countries. The company paid pretty well, and we were essentially paying US salaries to folks living in countries where that would be considered very, very good money. This, combined with the cultural issues you mentioned, resulted in management mistakenly thinking it was doing a good job -- privately, the foreign engineers shared my concerns, but they were not willing to "rock the boat" and bring those concerns to leadership.
- kakwa_ 6y agoFrom an European perspective, this has not exactly been my experience working with an international team. The US collective mentality is sometime overly optimistic specially in public. This is sometimes a positive since it removes almost any inhibition regarding challenges, but it can lead to things blowing-up spectacularly, and then having to put in place hacks and brute force to make it kind of work relatively inefficiently and inelegantly. But it also leads to great successes (biggest economy in the world, lots of major companies, very attractive country for talents) and innovations never seen before. This positivism is prevalent in public statement but in private cracks start to appear. It gives me the impression that this positivism is pretty much a cultural obligation, so while not authoritarian, the group mentality is geared toward not talking to much about possible difficulties out of fear of being seen as too negative by the group.
- viklove 6y agoIn my experience Americans are pretty blunt, and will not hesitate to point out flaws and make cynical jokes about them openly in the presence of their team.
- wahern 6y agoCynical or sarcastic jokes are arguably the opposite of blunt. They're a way to acknowledge or broach a subject which the person, and most often the group, is uncomfortable or incapable of articulating more clearly. For example, because they're being forced to do the impossible, or because the character, cause, or resolution of an issue is poorly understood. People from cultures where sarcasm isn't common don't understand this nuance and seem to find this kind of dialogue abrasive and unconstructive. Perhaps the sentiment is that if you can't articulate it clearly, then the issue is non-existent, for better or worse, or you're just being lazy and unhelpful.
- cuddlybacon 6y agoI think cynical and sarcastic jokes are blunt, and are something that arises when the culture is open about discussing problems but people don't have the agency to solve them.
- Frost1x 6y agoBusiness culture in the US is also quite authoritarian. There have been decades of strategic peeling away of labor rights to put labor in a more leveraged situation, leading to restricted freedoms. Sure, you can tell your manager/director/CIO/CTO their choice is idiotic but the fact is, you'll be fired instantly and depending on circumstances, you may be in a bad situation financially and future career wise. The very hierarchical structure is authoritarian with layers of authority built in. Most people are very hesitant about giving honest feedback even in US businesses because of these pressuring forces. If your manager wants to put diesel in a gasoline car, you often have to agree, then have a sidebar conversation directly with that person so their negligence, ignorant mistake, or intentional malice isn't put on a large group or public display. Very few US workers are in positions to give blunt feedback. This was pretty common in software development due to leverage developers had but it's, IMHO, been on decline.
- phkahler 6y ago>> you often have to agree, then have a sidebar conversation directly with that person so their negligence, ignorant mistake, or intentional malice isn't put on a large group or public display. That should be obvious. Most people I've worked for can be challenged in private if you've actually got a point - even if you're shot down in the end. The ones who are still assholes when handled correctly are usually not worth working for. The best ones can handle a public challenge on the merits of course.
- pdimitar 6y ago> That should be obvious. That's exactly what different cultures look like: it's absolutely not obvious in Eastern Europe where I live. We call each other out on our BS freely and directly, and almost nobody ever gets offended. It is quite the cultural shock for many of us when we suddenly have to sugar-coat and positive-tone-first every work criticism we express. It can feel like a huge waste of time and energy while if somebody tells me "Dimi, your code in module X sucks!" and I'll just laugh and say "dude, I had only a day to finish that, sorry -- if you don't like it, talk to the boss to give me one more week on it and it's going to be swell". So no, such things as the one you quoted aren't obvious at all for many. I'd even argue they are only prevalent in the USA but I've seen evidence in both directions so I can't claim anything absolute there.
- austincheney 6y agoAs a part time military officer (extreme authoritarian culture) and a corporate software guy (no interpersonal structures to be heard of) I find that this is a common assumption but it’s actually quite wrong. First a little background: The military is a highly confrontational culture, which isn’t necessarily a bad thing. In that kind of culture you tell people the disagreement immediately without tripping over pleasantries. It also means people are not easily offended until you try to waste their time or bullshit them with cleverness. In the military people have to certify to do anything (super bureaucratic) so you generally know who your actual experts are without guessing and without a bunch of lying Dunning-Kruger insanity. It also means people are generally better about knowing their limitations and staying in their lane. That being said, in the military I have no trouble or reservations about telling a superior they are wrong and why when it comes to an area I am well qualified. Knowing that the superior can immediately reconsider before making the authoritarian decisions of an iron fisted dictator. Superiors are generally better about considering the advise of their experts because the decision maker owns all risks and consequences. In the corporate world you have to employ tact and really be careful how you deliver the message if the topic is not something already extremely objective. There is a lot of noise in the corporate world and far less interpersonal structure leaving everything open to interpretation. I find when I am at the day job communicating anything comprising more than two steps I go far beyond normal to be precise in my wording just to be clear. There also exists a common phrase being thrown under the bus or more commonly known as a scapegoat. This does exist in the military but there are many conventions in place to catch those kinds of failures. Once that is identified it is a major reputation destroyer, which results in a huge occupational risk. It seems to more commonly apply in the corporate world when people are pushed into a corner and risks associated with that behavior are minor. In most of my corporate employers there generally isn’t a central authority that owns any significant business risk or job terminating consequence when things go sideways (except maybe some senior management), which is certainly different from an authoritarian culture. In the corporate world there is plenty of room to blame external factors when things fall apart.
- RcouF1uZ4gsC 6y ago> Superiors are generally better about considering the advise of their experts because the decision maker owns all risks and consequences. Even though it still does not literally happen anymore, there is still the tradition of the captain going down with the ship. The captain's authority was unchallenged on board the ship. But, if the ship sank, the captain paid for it with his life. This would inherently cut a lot of the bullshit. If you are the captain, your life depends on your people telling you the facts, not just what you want to hear.
- 29athrowaway 6y agoHaving worked in both of the locations you mentioned I can say that Scandinavian culture is much less dogmatic than the American engineering culture. Scandinavians communicate more directly. At the moment of giving feedback, Americans lack initiative, communicate vaguely and avoid confrontations.
- deleted 6y ago[deleted]
- foobiekr 6y agoI think this is a massive problem, and it produces just bizarre situations. Flat cultures produce weird side effects (you can have a stalemate that shouldn't exist) but extreme-status-hierarchy cultures just produce an entirely different level of crazy. Years ago (not my current employer), there was a big offshore team that was a huge pain in the neck because their entire development culture was one of deception and defensiveness - they'd deliver garbage but then spend enormous amounts of energy managing up and propagandizing to their reporting chain and executives that everything was finished, high-quality, etc. One of the security teams practically begged for someone to help get this team to fix the bugs they were filing. The other team was straight up closing pretty much anything they could as "incorrect" reports or classifying all the bugs as ultra-low severity (which is basically "will not fix") so that their metrics stayed perfect. Lots of issues like this. When they were challenged on it from the outside, by one of the guys who didn't have a sense for the political situation, the best way to describe the reaction goes way beyond "circling the wagons" - they went full nuclear, politically, on that guy. No holds barred, a total nest of vipers. For engineers who have never experienced companies with deep and vicious politics, it's hard for them to understand what it's like at companies like that. Then one day, one of the best executives at the top of the chain decided that he was going to re-organize his directs and fold these teams together, under someone from the side of the house into which the security team reported. Now, cultures of managing up are good at reading the waters and so you'd expect that they'd change their tune anyway, and they did, but the part that was shocking to all involved is, as a side effect of the exec shuffle, the security guy above was given an important-sounding but meaningless title, and suddenly the interactions between that organization and the security guy went from a one of subversion, political smearing, etc. to one of absolute and total deference overnight. The offshore team wasn't any _better_, they were still marginal and you couldn't trust a single thing they said, but the instant attitude change from "defiant, we-are-power-adjacent, you'd better watch yourself" to "oh XXX, we're helpless, nothing can be done, yes we will try but.." due to what was essentially the change of a string in a database somewhere was just crazy to observe. Everything went from "that guy is terrible, that guy doesn't know, blah blah' to "yes, oh, XXX is great, we love XXX, he is helping, ..."
- M5x7wI3CmbEem10 6y agoI wonder what the advantages were for these authoritarian structures to have stood for so long.
- hkai 6y agoIt's ironic that as someone from a similar "shy" culture, I do not dare to tell my manager that our outsourced programmers in a low-cost country sometimes don't write a single line of code in a day, and one of them is not even familiar with programming beyond a "hello world".
- matz1 6y agoThis remind me of the recent Microsoft AI that can write code demo. You give the AI instruction and explanation in English, preferably as clear and as detailed as possible and you get back code. Essentially its very similar workflow when working with offshore developer, in the future you could in theory replace the offshore dev with AI, except with much less latency.
- akmarinov 6y agoWell you can replace all developers by that logic not just offshore ones.
- ChrisMarshallNY 6y agoThe issues we have with any code development; whether through on-site employees, offsite employees, contract shops, or integrated contractors, would also apply to AI. Those of us that have been doing it a while, know that the single biggest issue in any commercial code project is bad input to the process; otherwise known as Requirements. No one knows what they want, or, even worse, they know what they want, and what they want, sucks. Steve McConnell wrote about how projects mess up, and how much the damage can propagate throughout a project lifecycle; with bad requirements being the nightmare scenario. This was about a quarter century ago. It is not new (https://stevemcconnell.com/articles/software-quality-at-top-speed/ https://stevemcconnell.com/articles/software-quality-at-top-...). The best requirements for a software project is code. Even an AI will need extremely high-quality, detailed, and well-considered requirements that are likely to require their own language (so AI requirement-generation will look a heck of a lot like "coding"). What AI gives us, is (maybe) speed between requirements and executable, so, theoretically, we could have a really high-power, effective iterative process, where bad input results in bad output, and we see that quickly, then refine the input; much like we already do with code, and run the build again, to see how that results in executable. I learned development back in the "big iron" days, where CPU time was the most expensive part of the process, and we were required to debug our code in the design phase. If we borked during our slice, we were penalized. Nowadays, I tend to just write some junky "strawman" code, fire up the debugger, and step through until it breaks. Working with separate contractors, whether domestic or offshore, needs really good requirements, and some kind of fast feedback and a flexible, iterative lifecycle process; which is frog-fur rare. If we don't have a fast feedback cycle, then we can't iterate effectively. In-office staff helps to make feedback fast, but it's quite possible to have fast feedback in a distributed environment (I used to work for a Japanese corporation, so I can tell you about "feedback lag"). It's just that we then need some kind of process to afford and regulate that feedback loop. I think that the process of software development is fundamentally broken, and that the industry is still thrashing around, trying out all sorts of "silver bullets" (See Brooks, Fred). I also believe that overbuilt process is an enormous issue. I call it "Concrete Galoshes" (https://medium.com/chrismarshallny/concrete-galoshes-a5798a55af2a https://medium.com/chrismarshallny/concrete-galoshes-a5798a5...), and it affects new-fangled, agile shops, as much as it does old-fashioned waterfalliers. Unfortunately, if we want to reduce "tribal knowledge," and treat our engineers like interchangeable LEGO blocks, then we need a pretty heavy process. It's still a heavy process, even if we call it "agile." "Tribal knowledge" is a bad term in the software development industry, but it is the most effective way to have a light-touch process. It also requires treating engineers well (not just paying them well), so they stay around. I'm not sure that foozball tables and on-site beer are doing the trick, as the average stay at a corporation seems to be less than 2 years. I do not have the answer. If I did, I would own a private jet for every day of the week. I have my own personal process that works quite well for me, but I don't think it scales particularly well to others.
- Frost1x 6y agoThis has been my experience over my career. Developers tend to forget they're ultimately developing tools for humans. Very few care about the underlying technology, complexity, how clean your code is... they just want something they can use to reach a goal reliably, with manageable complexity, and at reasonable cost. Once you really understand that, you'll understand why it's difficult for those in other cultures, using other primary languages, and sometimes even remote employees to develop effective software without difficulty. Much of software development assumes that specifications are perfectly understood, translated, and captured. This is rarely if ever the case. Developers are very frequently inferring and making microdecisions within the context of what they're developing using their personal knowledge. When they don't do this, you often get products that just don't solve the target problem. One factor businesses really shot themselves in the foot when they butchered agile into a micromanagement time pressuring system to squeeze work out is that it made localized workers even more of a necessity because it has to be done (and interpreted) fairly quickly. This, IMHO, puts remote workers, especially those in other cultures, at a huge disadvantage as well as the systems/tools they're developing. I don't doubt for a second talent can be distributed world wide but I do doubt that there's enough talent that can understand the context of the systems they're building to make project managers, businesses, clients, etc. happy.
- jesstaa 6y agoThis is definitely it. The best markets for selling software are the wealthy countries with their cultures. You need people in those countries that are part of those cultures to develop that software. So your employment market is limited by people within that culture that have that skill, which is why there is still a software development skills shortage. For purely technical things like kernel, database, network or driver development the job market is much smaller but it's also much easier to move those jobs to lower income countries, which is very common. But most software development jobs are at the application level where having a matching language and culture with your users is essential. Something as trivial as a signup form that asks for firstname and lastname and then refers to the user by their firstname later in the application is something you wouldn't even need to spec out for an English speaking programmer. They would just implement it like that by default because that's the culture.
- chii 6y agoBut by this hypothesis, countries that have a different culture, but have similarly good programmers, would be able to produce a product suited to their own culture and thus out-compete the imported english version. But this rarely happens, if at all. So there's something that's still amiss.
- petra 6y agoPartly, this could be explained by culture: a democratic culture produced more innovation. And the best US companies have developed an internal culture that might not be easy to develop.
- Frost1x 6y agoAnd this seems to be fairly consistently true although there are other factors (e.g. does your culture attract talented people to technology or do they work elsewhere? Is there a consumer market for software in your country, etc.). Other countries tend to use communication applications and platforms developed at or near their country (WhatsApp seems to be one of the bigger international exceptions from my experience). There are a few exceptions to this where massive US companies have the scale to setup native teams in markets that understand culture well. Outside of that, it tends to fall apart. Some examples come to mind: Taobao, QQ, Baidu, Yahoo Japan, Weibo, VK, Aliexpress, Line, TikTok, etc. (Note not all of these examples may be good because I'm not intimately familiar with all of them--since I too tend to use systems developed in my country). Facebook, Google... they seem to span cultures probably due to providing services people fundamentally want to have across cultures. Large businesses typically have the capital to invest in addressing the cultural barriers and developing solutions. Apple has a massive share world wide but when you look at Samsung in South Korea or Huawei in China, you'll see more adoption. Some of it may be nationalistic preference but I argue much of it is due to developing products/services that properly address demands in the market (which is tightly tied to culture).
- JohnBooty 6y agoWhenever you hire someone from a different culture / country, you need to start from the basics by explaining the very core of your society. An American programmer might not be too concerned if a body temperature measurement returns 45 degrees Celcius. Similarly, a patient height of 95in probably wouldn't immediately raise alarm bells for a European developer. This is so key and has been overlooked for decades. In addition to what you wrote, I think it may actually go beyond that? There's a certain "team unity" that binds good teams together. It's that extra "something" that helps you get through those tough moments and really work together. I've worked on remote, international teams that HAVE had that kind of esprit de corps. And I've worked on local teams inside the same building that haven't. But, overall? In my experience that kind of unity and teamwork is MUCH harder to build across cultures and/or remote work arrangements. And the difficulty is often multiplied by the "mercenary" nature of consulting work in which consultants obviously aren't really incentivized to worry about that sort of thing - in fact you kind of need to form emotional armor and avoid it to an extent. It can be done, and is absolutely worth doing. (And, in my opinion, it's a form o institutional racism not to...) In my experience it's often as simple as giving employees some space to banter and chitchat and get to know each other. Can be as simple as a #random or a #chitchat IRC/Slack channel sometimes and/or a company culture that allows for some chitchat and getting-to-know-eachother during daily standups. And if you are working cross-culture, at an absolute bare minimum, do some homework to at least understand each others' holidays and intangibles like differences in etiquette and so forth. Thing is, in typical offshoring arrangements, much of this is impossible.
- pdimitar 6y ago> Thing is, in typical offshoring arrangements, much of this is impossible. I am quite the outgoing and easily sociable guy but I'll agree this is impossible and will tell you why it's impossible for me: What you propose happens on the company time. Remote contractors always have this anxiety about "am I spending my time being focused enough on the work I am paid for?" Shortly before I was laid off from my last job I realized that I constantly postponed getting to know the team better because of that. It's hard to let yourself be looser if don't have the status of an employee (vs. being a contractor) and/or if you aren't shown you are a valued member of the team.
- hahahahahka 6y ago> culture except the vast majority of FAANgs work force are immigrants.
- anotheryou 6y agoI don't know the answer, but to give a counter thesis: - with higher "programming literacy" in a country they might have more top class programmers, top class programmers where able to optimize their career early by moving to western countries.
- specialist 6y agoYup. Worked in healthcare IT in the USA. Beans counters were utterly determined to send our work overseas. Old story of training our replacements. We could teach them programming, testing, our stack. But we couldn't teach them our healthcare system. Stupid small stuff that challenged us were completely opaque to our colleagues. Stuff like definitions of "visit" vs "episodes of care" and how each customer had different rules. (Made worse by sharing data between orgs.) (My billion dollar idea was to help our counterparts adapt our stack for their local markets. India, Malaysia, and Vietnam have healthcare too, right? Get in on the ground floor of those emerging markets. Alas.)
- p_l 6y agoI suspect that, fortunately, USA is pretty unique in terms of healthcare billing. Even in places with no singlepayer or the like.
- christiansakai 6y agoWait, hold on. Won't this be easily mitigated by a native programmer tech lead working overseas? Say I was born in X (low income) and raised there, and then move to Y (high income) and work there as a programmer for several years, then it should be easy for me to hire programmers from X and be the bridge to management at Y?
- sawmurai 6y agoAnd that is a very common business model in Europe
- christiansakai 6y agoI see. That's what I thought.
- anotheryou 6y agoAnd still has its challenges. Another man in the middle doesn't make information flow easier and it's often hard enough to explain between parties within the office.
- michaelt 6y ago> you need to start from the basics by explaining the very core of your society. Well, that's task-dependent. For healthcare billing software, certainly. But if you're hiring someone to implement the SVG spec in a web browser? Bézier curves are the same no matter where you are in the world. Indeed, if knowledge of culture was the key wouldn't comparative advantage lead to low-cost-of-living countries' developers dominating technically pure, well-specified work like web browser design?
- kls 6y agoI try to explain this to people all the time. People discount tribal knowledge. I always use the analogy what if we where hired to build an app for Islamic banking, and ask them do you know anything about Islamic banking usually the answer is no. I know one thing about Islamic banking, they are not allowed to charge usury and I think they charge an upfront fee. I don't know how it is paid or if it is rolled into a loan, but the point is, someone who is from an Islamic country would know this, just like I know a US loan is going to be amortized with compounding interest that does not compound. Though I am not a banker, I have tribal knowledge of this contract. This filters down to very simple things that people take for granted.
- kirubakaran 6y agoA programmer from the US won't know the nuances of US banking either. I agree that someone has to know and write the specs. Does it have to be the programmers? I agree that domain knowledge is invaluable. But in the examples given, the difference in domain knowledge between local talent vs remote may not justify the 5x salary.
- constantine42 6y agoThe problem with any outsourced companies is they live and die by acceptance criteria. Many times it takes longer to write out all of the criteria to the level of detail that I need than to just do it myself because natural language is horrible for such technical details and trying to explain to someone "What" and "why" is too time consuming. It really bothers me because I generally get put on projects with little acceptance criteria and not something I've done before, yet I deliver on time and the end user is very happy because I take the time to ask good questions up-front. Why can't someone deliver something that makes me that happy. On the topic of communications. I've consulted on projects where I've said that something I noticed should be done a specific way, even though it was not part of AC, technically worked correctly, and making the change would be feature creep. My advice was ignored. Weeks later the end users kept complaining that the software was difficult to use and could not communicate what they didn't like. Since they refused to use the software and they refused to accept it as it was, I was brought back in. I sat down, found out what work the end user was doing, and did some of that work. I literally did someone else's job. I used the software. I made a huge list of areas for improvement. The PM agreed to everything. All of the changes were made, the end users were now saying it was awesome to use. To summarize, learn to read between the lines of the acceptance criteria. Would you want to use the software you're making? For me, small issues annoy the heck out of me. I notice these things. End users tend to just say nebulous things like "it doesn't work well".
- rxhernandez 6y ago> An American programmer might not be too concerned if a body temperature measurement returns 45 degrees Celcius. I'm baffled by this statement... I worked in the medical device industry for years at a company of 10k people and you would be hard pressed to find a sw engineer that didn't default to Celsius. Almost all sw engineers there either had EE, CpE or Biomedical Engineering degrees; Celsius is not remotely foreign to these types of engineers. I would be incredibly surprised if it was different at any medical device company.
- deleted 6y ago[deleted]
- Alex3917 6y ago> It seems to be missing a very big factor: culture. This. The value a programmer brings to the table is almost entirely their cultural knowledge. It's the same reason why rarely do chart topping hip hop albums in the U.S. come from India or wherever.
- devit 6y agoSeems dubious, since the cultural difference between people in the same country is huge and can be much larger than the difference between countries. The average programmer at Instagram in California probably doesn't have much more in common with the average Instagram influencer or feed-scroller than the average programmer in India (both programmers tend to spend most of their time thinking about computing and abstract math/CS concepts, while the influencer spends it thinking about marketing, social relationships, travelling, etc. and the feed-scroller is all about instant gratification and pop culture).
- Bukhmanizer 6y agoTo add to this a bit, one thing that I haven’t noticed anyone talk about is that to a huge degree, programmers are supposed to manage themselves. It may not seem like it to those who have worked in tech for a while, but as someone who is in a different field where it’s not the norm (Academia), it makes a big difference in efficiency. In my corner of academia, programming is almost always seen as grunt work and delegates to undergrads and junior grad students. Of course students aren’t trusted to actually manage the project so usually mid-level scientists or post-grads are assigned to oversee and manage them. The managers usually have no idea how to program or what it entails, nor do they have any interest in the project. At most they’ll want to use the software after its finished. If agile/waterfall programming annoys anyone, just be thankful you have a methodology for software development at all. Since literally everyone is senior to the programmer, but nobody else knows how to program, everyone just justifies their time by suggesting new features. Since no one knows how long anything should take, all new features are accepted into spec at anytime. Eventually, the project starts to run long, and since nobody knows why, management responds by adding more layers of management. Finally, the programmer either quits or graduates and the grant for the project runs out. The final product usually either has no resemblance to the proposal or only works on sample data. If it’s a website, no one bothers maintaining the server. If it’s a package, all dependencies go out of date within a year of release. The PI, or a PI down the hall gets a new grant to do basically the same project again, and the cycle repeats itself.
- foobiekr 6y agoIMHO, it's much much more likely that the issue is the geography of skills, and we're entering a very interesting period where we may do an experiment to see if geography is the answer. There are a number of technology-specific hubs around the world and even just in the united states. Silicon Valley is one of the most obvious ones, but Raleigh is another one, as are Nashua, Boston and Salt Lake City (there are others). What all of these have in common is that each of them had, at some time in the past there was a massive company with out-sized returns. In the Valley were were _several_ - Intel, HP, ... and many more. NCR (and others) in Raleigh, Westford, Petaluma (optics), Boston as a geography absolutely dominated storage until Netapp, and so on. When you have companies like this, they produce a lasting geographic concentration of talent, especially early in a given sector's life. Think Michigan and especially Detroit for automakers or California for aerospace. The experiment we're doing with the work-from-home thing will be interesting if it goes forward, because as a few locations in Canada demonstrated, a very active de-centralization of a given kind of expertise (in that case, the network element management software) can render a given tech hub a memory at best. If history is anything to go by, disassembling Silicon Valley, if possible, will not result in more uniform distribution, it will just move from one concentrated area to another.
- buboard 6y agoThat would contradict the fact that so many immigrants from very different cultures work so well in the US academia and tech The one thing about culture that matters is the work ethic, which indeed is hard to reproduce in many countries, but other facets of culture aren't really significant.
- allarm 6y ago> An American programmer might not be too concerned if a body temperature measurement returns 45 degrees Celcius. Similarly, a patient height of 95in probably wouldn't immediately raise alarm bells for a European developer. I would be questioning professional qualities of these programmers at this point. That’s just a common sense and base knowledge about the world you live in and people you write code for.
- SenHeng 6y agoand yet, stuff like this happens. https://en.wikipedia.org/wiki/Mars_Climate_Orbiter#Cause_of_failure https://en.wikipedia.org/wiki/Mars_Climate_Orbiter#Cause_of_...