5 ms·
My experience with taking such classes at multiple schools was always that any CS class talking about Real World Software Development turned out to not be all t
by jghn 11y ago
My experience with taking such classes at multiple schools was always that any CS class talking about Real World Software Development turned out to not be all that accurate. Which perhaps makes sense since computer science isn't really about software development, real or otherwise.
My favorite was being chided by a phd student teaching assistant that I needed to understand how things worked in industry if I wanted to pass. Problem was, I'd worked for multiple companies at that point and he'd worked at 0. What he was looking for (what it was exactly I don't recall) hadn't been my experience anywhere I'd worked.
- kuschku 11y agoThe issue here are systems like Internet-of-Things devices. 90% of the people buying your smart washing machine will never ever update it. Never. So change is non-existent in the code you are delivering. And we’re going to have more and more IoT devices. Already today we’re seeing Smart TVs with preinstalled apps for online streaming sites that don’t even exist anymore. We have to be able to separate those pieces of code that will surely change and require constant change from those that will never get updated.
- parasubvert 11y agoAll smart TVs these days are updatable. My Nest thermostat is updatable. I don't have to do a thing for it to update. I would bet my Smart washing machine will also be.
- kuschku 11y agoAnd we see how well this updating works with the "agile" developed Android... Not. A phone has a lifetime of over 5 years, but support is dropped before the legal minimum support of 2 years, even for Nexus.[1] A device like a Thermostat shouldn’t even ever need updating. Everything it should do is record, transmit, and accept settings for temperature. Everything intelligent should be in a separate device. It’s like we’re learning to separate the world into microchips and the interfacing processors all over again. Also, I argued this before, if people can’t even update their game consoles or are still running Vista SP0 this month then they sure as hell won’t update their Smart Washing Machine. You’re maybe living in Silicon Valley and all around these shiny new toys, but reality is that people are still using fax. ---------------- [1] By the way, this opens an interesting legal opportunity, I need to get updates for my Nexus device, as it’s less than 2 years old, and the vulnerability is a manufacturers defect.
- dustinleblanc 11y agoAbsolutely none of this matters to agile vs. waterfall. You can accomplish this with agile development: 1. People meet at the beginning of the project and say "heres what we think our washing machine needs" 2. They create a backlog based on those features 3. They start working and implement some features. 4. They find out they don't actually need the washing machine to wink and smile and say its done in a fancy british accent. It was a silly idea marketing came up with that adds no value. They drop that feature from the backlog. 5. They find out making the machine text you when your laundry is done is a desirable feature, they add it to the backlog. 6. Management says the competitor is launching a month earlier than us so we need to accelerate the time table. Engineering gives them the hard news that they need to sacrifice some features. They look at what they have left to do and prioritize the important items and drop the feature for the washer tie-dying your clothes if you want from the backlog. 6. Project enters qa, all tests are passing but testers found a bug. They write a test to confirm and reproduce the bug, they squash it and update the build. 7. Software is working, launch happens, everyone celebrates. Nothing here says the software has to change anymore; its done, its shipped, its good to go, and done using scrum/agile.
- kuschku 11y agoThat’s not the definition of "agile" I meant here. The definition of "agile" is what actually happens in reality: You depend on an API from Google, and they, thanks to their so "agile" team, constantly drop or add features every few weeks, constantly move everything around, and then drop support for the API a few months later completely. And they argue that it’s "necessary to have moving open standards for everything to be able to react to change". That’s pretty "agile". Change! Change! Change! Who cares about consistency?
- maxxxxx 11y agoMaybe it's "agile" but certainly not "Agile". You seem to have a total misunderstanding of how Agile methods work in practice. Not saying that Scrum is great but the points you are raising make no sense in this context.