938 karma · joined August 6, 2011
The only other option was to have thousands of customers with live systems edit their templates and or data to fix that one bad character. It affected a lot of people due to another unrelated update. Anyways had we not been forcing the use of setters and getters a solution would have been on a whole other scale! And no we couldn’t edit the template engine, etc, because in most cases it was valid.
The benefits are all in code maintenance. Again most of the time it’s useless but when you need I can’t tell you how incredibly useful it can be. And once you come across such an instance you never again ask why or refuse to do it ;)
These however there is no really big advantage to using Firefox over chrome, and when the difference is that close marketing and convenience will win. In other words if Firefox would've been on or with internet explorer years ago it would never have gained the market share it did in the first place.
It's not just a marketing issue but a combination of a marketing and engineering issue.
I think software development also falls into this category. Some hotkeys are at least an order of magnitude faster. And 90% of the time hotkeys will be faster. But in some cases you absolutely need to use your mouse, it's just much faster.
Here's a YouTube video that discusses what it takes to be a competitive Starcraft player and shows them entering actions: https://youtu.be/zmYhX8fjmo8
As for privacy we already give more away just to have free online services. Think how much is tracked by Google through their searches, gmail, etc. by Facebook to use their free service. Apple, Microsoft, etc are all known to track all kinds of data on you. It's not like this isn't already happening.
They key is to make sure it's not abused, and I think for the most part in first world countries this won't be a big issue. That and the benefits will far outweigh the costs.
We just have to prevent it from escalating like in the South Park drone episode ;)
You can't do everything so you have to pick your battles ;)
To give you an analogy imagine you have a credit card. As you spend you increase your debt but you never get to know want your balance is. All you know is how much you pay per month. In fact even that number would be blurry and fluctuate. That's what management sees from their perspective. As a result it's easy to keep adding debt because it had no real value, you don't see that you're $1000, $10k, $100k, etc in debt, just that you have to pay something each month. Yes each month you have less to spend but it's a lot less than you spent that month. Last month you had to pay $100 but this month it's $101 and you don't have to pay that $50 one Ike hit. The extra $1mth is easier. You kinda forget that in a year it's now an extra $2-$3/mth. And again you never see your balance, so you don't know how much you have in debt. Your spouse keeps saying your way in debt but you have no idea of the scale. It's very easy to increase your debt this way.
Unfortunately I don't have an answer as to how you can value the technical debt so that the business people can appreciate the scale. I don't think as developers we can even measure it ourselves accurately, it's more of a feeling, a scale if you will.
What's even more interesting is that most of the discussions around anything tend to be bike shedding discussions, discussing the color of the paint, rather than actual hard stuff.
There are exceptions but that's much more the norm. You estimate based on what you know right now and it will never be adjusted if things get added. And you will only be given the minimal amount of time to make an estimate. And of course you hope they listen and agree, many many times your estimate gets overridden.
Just to give you an idea, do you think Steve jobs ever really allowed an estimate like this or would've accepted it? It's not just him think Amazon, oracle, EA games, etc. they all have reputations for being aggressive and you either provide and estimate they like or they will provide it for you. And not just the big companies but most of the companies are like this too. Working long hours to try and meet estimates is more than common in our industry.
Again I agree with you, and I've seen a couple times, but that's it. It's very very rare is all I'm saying. It's part of the reason I started my own company. I understand that estimates are just estimates, and in most cases they aren't going to work without spending a good amount of time on them.
But even then an estimate is an estimate, the same as you get an estimate when doing some major renovations on your house. It's only when you open up the walls and do the actual work that you'll know the true time and costs. You can't predict the plumbing is bad and leaking in your estimation. And sometimes you don't even know who the staff will be. The only way to do a proper estimate is to start the actual work.
The only thing I disagree with is that what your describing is the exception rather than the norm. Well that and a week is not enough to do a year long estimate. Of course that also depends on the size of your team, it's easier to estimate for one person than a 20 person team. But 1 week is too short. but even with the appropriate amount of time you should still be ready to accept that once the walls are opened you never truly know what you will find...
I agree with what you're saying and that's all great and awesome but in the real world it unfortunately doesn't work that way. In most cases you have a day to a week to come up with an estimate for a year long project. If you by great luck get a cognate to do a spike, you get maybe an extra day. Ok most cases actually you would've maybe gotten an hour to a day at best and there would be no spike, and if you did get a spike it would be maybe an hour. Again I agree with what you're saying but it just doesn't work this way for the vast majority of companies.
Also is this real time or actual time? In other words does it include time for meetings, holidays, sick days, change in staff, etc.
In terms of never having done it before, this is true of most software projects. If you're building the same house from the same plans then this is the same as say installing a Wordpress blog, easy to estimate. But if you were to ask how long it would take to build Wordpress from scratch, even having a Wordpress sample app, it would be very hard. Not only that but there are a lot of assumptions. Is it for a handful of visitors or are we talking a million visitor blog?
Ignoring that, let's go back to the pharma example. How long do you estimate developing a new drug will take? It's not the first drug your company has developed. Anything beyond a week is hard to estimate.
Back to your estimate of 25% within 4-8 weeks, this would never be accepted because it could mean anything.
The worse part, I an tell you right now, even if new functionality or changes are added, you will be elf to 4-8 weeks, the 25% will be ignored. And in most cases management will hold you to 4 weeks because this is what was sold to their bosses.