10 ms·
I often hear people say that software engineering is a joke compared to civil engineering or other kinds. But they forget that when a civil engineer designs a b
by kabes 7y ago
I often hear people say that software engineering is a joke compared to civil engineering or other kinds. But they forget that when a civil engineer designs a bridge he doesn't start with: "We don't know exactly what weight it should support yet, but just start building the bridge already". And he doesn't finish with a: "Ah, turns out we wanted a tunnel instead of a bridge, can we change that next sprint?".
- catmanjan 7y agoI often hear people use that logic as a reason why software doesn't qualify as engineering
- chrstphrknwtn 7y agoDo you share the opinion that software doesn’t qualify as engineering? I’ve always thought it is a little bit of a stretch.
- lifeisstillgood 7y agoMy view is software is literacy not engineering or science. It tends to make more sense for me. A book that starts out as a romance is just as hard to convert to a spy thriller half way through as a bridge and a tunnel (Ok not total effort but in terms of percentage of rework)
- Noumenon72 7y agoI think you mean "literature".
- lifeisstillgood 7y agoYeah. I use the term software literacy a lot so my bad
- TheOtherHobbes 7y agoEngineering means using math to model your solution so the first time you build something it works to spec. Or at least it's close enough to only require minor changes, not a fresh redesign. It's essentially applied physics. Software is more like nailing things together in the hope they might work. ML has some modelling, and formal methods are available for mission critical projects. But the rest is mostly nail guns and glue. Engineers have never done themselves any favours with the "engineering" label. In many countries, especially English-speaking ones, the job doesn't get the respect it deserves. Most people have no idea what the job involves. They literally think it means someone with an oily rag who fixes cars and/or computers and/or drives big machines around to make bridges and tunnels and such - like a house builder, but on a bigger scale.
- tsss 7y agoBut how many mech/civil engineers actually do any math beyond napkin calculations in their day-to-day work? It's way too complicated and all the math is now done by computers. In fact I'd argue that outside of research more computer scientists are doing mechanical engineering math than actual mechanical engineers, because they have to write the CAD software that the latter use. At the end of the day the vast majority of mechanical, civil, electrical engineers and computer scientists work on stuff that doesn't require math at all.
- deleted 7y ago[deleted]
- JoeCamel 7y ago* "Engineering is the use of scientific principles to design and build machines, structures, and other items" * Mathematics isn't only about calculation and applied physics. When you write a simple algorithm and convince yourself with a logical argument about its correctness, time complexity, etc. that is math too. You also do calculations when you design various systems (latency, throughput, etc.) * I know a dozen mechanical, structural, and electrical engineers. They almost never model anything from first mathematical principles, they use well known tools and methods they learned. Their "nail guns and glue". Actually I think most of them don't understand math/physics behind it very deeply. So even if those methods are underpinned with mathematics and physics, it's abstracted away most of the time which is good for practical purposes. Even in "user-interface programming", I often had to use math, algorithms, etc. In other parts of software engineering I used it much more.
- meagain3 7y agoReal engineers in north America must write technical and ethical exams, have at least 4 years of continuous and proved experience before they can call themselves engineers. Is indeed sad that people with no knowledge of thermodynamics or strength of materials can call themselves engineers as well...
- 1234_UUUU_99 7y agoI guess you're making the distinction between professional and non-professional engineers? There's not really the class divide in engineering fields that you're suggesting. I have a brother who is an ME, designs power plants (the building sized ones) and is not "professional". I asked him about it and he said it wouldn't change his role or his salary, so he never bothered going through the process. IIRC there's one person on the team who is, for whatever formalities are required.
- amelius 7y ago> IIRC there's one person on the team who is, for whatever formalities are required. Is that person making more money? Because I've heard stories that these people do, because they are especially valuable to the company.
- BlueTemplar 7y agoHuh, I had no idea... So the other people are literally amateur engineers?
- ClumsyPilot 7y agoYes, I had the option of becoming professionally accredited if I I'd the 4 year instead of the 3 year programm, but its relevance is kinda limited
- billfruit 7y agoMay be software programmers work is more similar to how mathematicians work, rather than of engineers, though with a more imperative, procedural bent.
- Rury 7y agoI always thought engineering was simply applied math and science. You're not researching and testing new theory explaining the nature behind how phenomena work, or developing new mathematical techniques, that's for scientists and mathematicians. Rather engineers take their work, and apply it to invent things and solve problems. As so, I'd consider software development can qualify as engineering. If you're taking the work of computer scientists and mathematicians (or any other science fields) and applying it to software, it fits the definition. If you're just laying code to a given spec without much more thought, then you're just a programmer/developer...
- cameronbrown 7y agoIt can be in some circumstances.. I think that the engineering mindset (adherence to the scientific method, evidence based decisions, planning for the future etc..) is one that is definitely shared by both groups at least. But you can absolutely get away with building software without proper engineering standards. It's not so easy to build bridges that way.
- klowner 7y agoToo many companies taking a "McMansion" approach to software and we wonder why everything is constantly broken.
- 1234_UUUU_99 7y ago> It's not so easy to build bridges that way. I'd wager that it is but the stakes for failure are too high to wing it (hopefully). Imagine: We want to build a bridge that spans N meters. We don't know how to do it but we can go look at an existing bridge and copy it. We might not understand metallurgy / physics that well, but we talk to suppliers and ask for "steel of this shape and size". Ditto cables, concrete and everything else. Probably, provided we're not scaling up or changing the design too much, it would work just fine.
- radicalbyte 7y agoYou have cowboy builders in the "engineering" area too. For some reason in software we seem to be more accepting of it.
- cameronbrown 7y agoFor most non-engineers (either kind), engineering is just a means to an end, i.e. don't care about the finer details as long as it works. When software goes wrong, the effects are more often than not, intangible. When mechanical engineering or electrical engineering goes wrong, people can die. Software can obviously kill people too, it just happens less. Then industry practices revert to the mean due to cost cutting.
- _pmf_ 7y agoSometimes, that happens. But there's a mutual agreement that such change comes with significant cost, and it's this part that is missing in the software world.
- j1elo 7y agoI think it is possible to convert a bridge into a tunnel, to follow with your extreme example. It's totally possible. The only thing is that when the cost estimation arrives to the hands of decision makers, they open their eyes wide and decide that for that money they better go ahead with a bridge. So IMHO it's just a matter of cost. Say you go with a bridge but there are some initial wooden stairs, and sometime along the middle of placing them they decide it is acceptable to pay the cost of stopping and replacing them with metallic ones. Could happen. Biggest change I experienced in the rate of unexpected last-time feature changes in software, was having a project manager that first of all knew how to say "No" (or discuss the sense of the requests), and secondly, was able to communicate the real cost that each change would have (in terms of developer time, which at the end of the day means money). Then it would be the company's boss himself who would decide to discard the most crazy changes that were "mandatory" and coming from the sales people.
- cm2187 7y agoAlso a civil engineer usually understands exactly what the bridge is supposed to do and how it is going to be used. In a large corporation, the software engineer expects to be told that there are going to be cars on this bridge, and they are moving at a certain speed from one side to the other and that they will be of a weight between x and y, etc... Understanding the domain goes a long way to get software done.
- salty_biscuits 7y agoAs someone who has worked in both worlds, it is just a different sort of nonsense that you have to deal with. Typically the physical engineering thing is "we want you to work out why this weird thing is happening, then fix it, without us having to change anything operationally or spend any money." just a different flavor of the same crap.
- vvanders 7y agoA coworker of mine once described engineering as "the ability to design something that can be built for $1 that would normally cost $20".
- erik_seaberg 7y agoAny clod can make a bridge stay up, your job is to make a bridge just barely stay up.
- legulere 7y agoAt the new Berlin airport they decided after beginning construction that the airport should have two floors. It’s still not finished.
- tempodox 7y agoIf the people responsible had to pay with their own money, they would have thought twice about that. It's so much easier to burn taxpayer's money.
- Hendrikto 7y ago> We don't know exactly what weight it should support yet Or where it should be exactly: "It should be easy to move once it is build, right?" Or what type of vehicles it should handle: "Just build a generic bridge. How difficult can it be." But the time and monetary budget was already negotiated and written in stone: "Oh btw, you got 2 weeks and $537.25 to finish the bridge."
- hwayne 7y agoI've met at least two engineers who had to move bridges after they were built.
- pilif 7y agoAnd no civil engineer will ever have to deal with the update to Gravity 2.0 now even better at 10m/s2
- Slikey 7y agoSo much this. I want a civil engineer try and build a bridge over 6 tectonic plates with pretty much all physical constants constantly changing. That would be the equivalent of working with an ever moving tech stack. Even the language and best practise change constantly. Looking at possibly the most stable language C, we have entirely different best practise pattern from community to community.
- eropple 7y agoThis is hyperbolic. Plenty of completely reasonable tech stacks are over ten years old. You could have started writing a web application in TypeScript, my current language of choice, over five years ago. I can go write a web application in React and Spring Boot (which I also like) that's almost completely recognizable, and could have been carried forward from the state of the art of, 2014. Much older, in terms of the backend; Spring Boot is relatively new but it still uses the Spring that somebody might know from 2010 and builds very incrementally from there. Even that noophile bug zapper, Golang, is most of a decade old now. New stuff shows up, but that doesn't mean you are compelled to leap upon it.
- hwayne 7y agoAnd software engineers don't have to deal with half their tensile bolts having 90% of the tensile strength built they don't know which half, or the bridge collapsing because they mixed brass and zinc bolts[1], or hurricanes... Turns out that every field of engineering is hard! [1]: https://www.fastenal.com/en/70/corrosion https://www.fastenal.com/en/70/corrosion
- clarry 7y ago> I often hear people say that software engineering is a joke compared to civil engineering ... I think your example points out exactly why some think software engineering is a joke: they rush ass first to implement something (and they implement the wrong thing) instead of sitting down and figuring out the actual requirements first like any real engineering job would have you do. And it looks like everyone is pushing it more into this ass-first direction with agile. Let's not even try to plan ahead! You know what you want next week, so this short-sighted focus leads to chaotic development and once the real requirements are figured out 9 months into the project, well too bad it's too late to redesign and rewrite it all properly. So it's forever going to be a bumpy and crooked bridge on the verge of collapse, held together by more and more duck tape, hot glue and occult ceremony. And there's a plastic tunnel hanging underneath it. Only the brave will crawl through.
- louwrentius 7y agoGoddamn, this is exactly the sentiment I have about software development. Because it's not about bridges or tunnels, common sense is thrown out of the window, people start building something they conjure out of thin air. Few people say 'No!', we don't do anything. Anything. Until we have written a clear business case / usecase, a raison d'être for this project. Agile is often abused to not think, not design and just follow the whims of the customer. Nice for billable hours, but long term? Do you produce anything of value?
- bob33212 7y agoI have been in a position where I have said no. I was able to stop the feature factory for a few months. But after that we were right back to cranking on features because several end users "validated our roadmap".
- nradov 7y agoSanta Claus isn't going to fly down your chimney and deliver a fully formed business case. Developers share responsibility with other roles for figuring it out. Sometimes it takes multiple iterations of exploration and experimentation. Expecting to be told what to do is just lazy and unprofessional.
- dev_hacker 7y agoI think there is more to it than process. I'm not an engineer, but I know in the US you usually have to pass the PE exam to be a real certified engineer, plus there is the reality that if your bridge collapses, you are liable, might go to jail, etc. I'm unaware of any similar licensing process in software engineering or liability realities. Even when software kills people, it is usually not prosecuted and the devs are not held to the same standards as licensed engineers. For this reason, I just tell people I'm a dev, not an engineer.
- BlueTemplar 7y agoIndeed. Especially since design choices might have real world consequences.
- qznc 7y agoIf you build safety-critical software you certainly have some liability.
- elteto 7y agoI hope this myth would die. Most engineers don’t ever take a PE exam. The PE exam is only needed for a handful of disciplines, like civil and HVAC engineering. Even then, you only need the PE certification if you are going to be signing legal documents. You can be a civil engineer without a PE working in a team producing designs and plans that are signed by a single certified PE. By your logic almost no one that graduated from an engineering discipline would ever be able to call themselves engineer.
- dev_hacker 7y agoI get your point about how people end up doing engineering jobs sans PE certificate, but I would still stick to the position that people without certifications are in fact, not engineers. Maybe they are doing the work, but paralegals who failed the bar aren't lawyers, even if they went to law school, they're paralegals (or whatever lesser title applies). You don't get to be an engineer because you passed a degree program, or got someone to hire you with such a title. You have to demonstrate an objective mastery of a large body of knowledge, etc. This is what the PE actually tests for. This is different than in tech, where getting a degree or a job actually does make you a software engineer. There is no standard exam to pass or anything. Just get any random hiring manager to hire you and you're a software engineer.
- LegitShady 7y agoThe first step in civil engineering is getting data including hydraulic, geo, and traffic data. Deciding between a bridge and a culvert is part of the design process. It's not that software engineering is a joke it's that you don't understand the difference between computer work and moving earth/pouring ckncrete. Of course people are going to plan the project differently in civil engineering. The consequences to building any part of a bridge wrong are pretty dire and redoing work costs much more than it did initially. Maybe don't try to draw parallels with other forms of engineering just because it has the same name in university. The practical differences are large.
- PavlovsCat 7y agoThey don't forget that, that's why they say it's a joke to compare it to actual engineering. Try treating an civil engineer that way, say "we actually wanted a tunnel". If they have the means to, they might sue you into the ground, and if they had the clout and publicity, no other civil engineer, ever, will work for you. Not in 5 years and not in 20, not until you made super clear you changed. In software dev, you just wrap the stupid or dishonest thing in a new euphemism and go harvest a new batch of suckers, with zero real repercussions. I saw this yesterday and didn't know if I should laugh or cry, starting from the jingle at the very start of the video: https://www.youtube.com/watch?v=YJGCZCaIZkQ&t=20m06s https://www.youtube.com/watch?v=YJGCZCaIZkQ&t=20m06s Imagine an architect conference where a vendor proudly expains how in a building the average tenant lifespan increased a lot -- after their automatic turret was moved from lobby to a less frequented room in the basement. I know that's the opposite of a hardcore SW engineering talk, but still. Everybody wants to be nice, nobody wants to get blacklisted, kool-aid makes the dissonance go away. The main issue was that Linus sometimes called people idiots, and that's solved now. Maybe other professions also started out this way, as cliques of fools making policy based on what they dreamed last night or how the birds flew, with the main driver being greed -- but being hundreds of even many thousands years more developed, they are on a totally different level than software engineering is today, and just calling it something noble and serious doesn't make it so.
- austincheney 7y agoAs a web developer with 20 years experience I would argue that one web SPA project is more similar to the next than comparing two bridges and developers still can’t figure it out. One difference is that a license is required to practice civil engineering. Most web developers, on the other hand, require large tools to do theirs jobs for them and recoil in irrational fear and disgust when standard DOM methods are used. I still have people argue with me that the DOM is slow even though all the evidence and browser vendors claim updates to the DOM is simply switching a bit in memory. In other words many web developers have utterly no idea how their platform works. Another difference is that many developers cannot write. Everything about a bridge is planned in extreme detail before work on the ground ever starts. This level of planning is absent in software. Documentation is also largely absent. In most cases everything is an ad hoc mess. In any other industry this would be a cause of numerous lawsuits. Another difference is that construction is treated as a business project with a dedicated project manager and project budget. Most business software, on the other hand, is treated as an operation. If you cannot discern the difference between a project (temporary) and an operation (living) your software will never be released as a product to a specified level of quality by a specific date.
- scruple 7y ago> One difference is that a license is required to practice civil engineering. I've often wondered about this. Who exactly has to be licensed? Are there management layers in civil engineering firms where the license isn't required? I think my point is pretty easy to follow. I'd love for all of us to be licensed to practice software engineering, but I don't hold any hope that it would fix all of the other compounding problems that our industry has as it relates to product/project management and management-born issues. For example, would being licensed stop executives at a triple-A video game company from prematurely announcing games / release dates, or accepting pre-orders for games that won't be finished on time, and forcing all of the people under then to scramble and crunch and do things that would generally be considered anti-thetical to whatever being licensed in software engineering could mean?
- austincheney 7y ago
- amelius 7y agoWe should ask management more questions, like: how much time do you think that would cost? And keep score of how often they are off.
- tracerbulletx 7y agoAlso, physical engineering is constrained by a set of available materials, technologies, and physics. In software you could build a pretty accurate simulation of an entire bridge, generalize it so that it can represent all possible bridges, model new materials, and rewrite the rules of physics, the complexity space is infinite.
- LorenPechtel 7y agoQuit bothering me with this technical jargon! What is this "weight" garbage, just build the bridge!