Come on Google...not you too...

I'll try to give you a bit of insight into how development works for most companies.

Most of us are agile based or some form of it. There is a metric fuck ton of pressure to release and release often. Each release cycle is called a sprint and we usually have fuck all time to get much done, let alone write out in an end user format about what we did and why. Sometimes we can't say anything due to trade secrets, compliance laws (there are lots of rules with these and they are very strict), security reasons, and so forth.

We often don't decide what goes out as developers. We get input on it and some freedom, but not a ton.

Release management handles most of the deployment notes and things like that. It is up to management and marketing on whether or not to release these details to the public. We have zero control on our end. Whoever wrote whatever you see here made a decision to write that and it was done with no input from the devs. It wasn't even decided in our department probably. The notes might have been emailed out to some groups internally, but honestly? Most employees give fuck all about any product that isn't their own and don't read them anyways.

We would love to tell you guys what we're working on and how much we think you will love it but we can't.

You asked why we don't release everything all at once. Simple answer? It creates a fuck ton of risk. It's a terrible idea to release a bunch of things all at once because there is no way to QA it properly and make sure it all plays nicely together. It's a fast way to accumulate technical debt (bugs) that we just have to fix later and lowers the quality of the product at the same time. In addition to that when you just queue things up like that it makes the business antsy on why something wasn't released and the customers too.

When you queue things up for one huge release its a methodology called waterfall and it's a very poor way of doing things because everything gets developed and QAed at the end all at once. If you have an issue? Tough shit. Release is now pushed back for X amount of time.

Going back to what google did here again is that we don't know what they released. Re-factoring is a low chance because it has ZERO value to the business and is the last thing they want you working on no matter how much it might make life easier for developing. They would rather you fix existing tech debt or build something new, be it s feature or whatever else.

It's easy to sit there and call our processes dumb and some of them may certainly not make sense from a user perspective, but once you actually start working in software development you begin to realize it's more than just writing code and pushing it to release. There's tons of politics, even more bullshit red tape to go with it, a fucking labyrinth of rules and regulations to get through, and a measure of risk with everything that does make it out.

At any given time you have a large number of teams all working on different shit. Some of it has absolutely nothing to do with anything else and some of it has a billion touch points and dependency across the entire product map. This causes slow down because now you've got teams that have to cross train and work around or in those other products or learn how to test them and make sure they don't get broken when you make your changes, no matter how small.

TL;DR - Software development is a pain in the dick and nobody is ever happy with anything you've done and it's never enough. It's not as simple as you think it is or should be. Not even close.

/r/iphone Thread Parent Link - imgur.com