2. Information on virtually any subject is available almost any time I wish, be it the middle of the night, while I'm watching TV, or whenever. This change is so significant to me that it's hard to imagine what it was like "before." For the most part this has enabled me to be more politically and socially informed and active, but it's also allowed me to change careers (to MS developer, sorry), take up ham radio, help sell my mother's house without a realtor, build my own computers, etc
And the significance of this shouldn't be underestimated. Weinberger may have his head in the clouds about where things are at right now, but Katz has got it wrong, too. Widespread access to information is an incredibly powerful thing, and once the "average" person possesses a high degree of net-savy and begins to use it constructively, the world really will be dramatically different, it's just happening much more slowly than all the Cyber BS predicted.
Slashdot is a perfect example of access to information improving discourse on a topic. The ability to link directly to the law/interview/filmography/press release in question means the loud bullshitters lose the debate to the meticulous thinkers. Stack up several decades of that happening in a much wider forum, and I think the world will be much better.
Something that never seems to get mentioned in the mainstream media regarding the so-called "failure" of banner ads is that perhaps the problem is that the ads themselves suck, and the concept of banner ads is actually a good one, just entirely misdeployed. I mean, come on, I don't hear anyone talking about how the billboard or side-of-a-bus advertising market is going down the tubes, but I typically only see those ads for a few seconds as well (not counting the billboard outside my window which was just changed to something uglier than before).
On the Internet there's actually a lot more that can be tracked, counted, targeted, etc. depending on how well a typical website is deployed. The real problem is advertisers aren't 1) creative enough to come up with ads that work well within the medium and 2) smart enough to even understand what the new medium really is.
Of course it doesn't help that most of the websites trying to stay afloat are just as clueless.
A "horizontal" virtual platform (or API, call it what you will) that allows common, mainstream productivity software (i.e. email, spreadsheet, etc) to run on any machine [Ok, call it Java, call it whatever, but just imagine such a thing exists and works]. Also imagine that this platform is as ubiquitous as TCP/IP or a similar standard, and is well implemented and easily implementable by anyone.
OS vendors could now compete viciously for "vertical" markets (games, servers, multimedia, programming, what have you) and still support the "horizontal" platform so they do not become marginalized from the mainstream. Application vendors can compete viciously for a piece of either market because the playing field is relatively level.
Under this scenario, consumers would at last have a choice. And not only that, they would be better served by whatever choice they made depending on their needs.
If General Motors had owned all the roads and ensured that only GM cars could run on those roads, would anyone had ever purchased Japanese cars back when GM cars sucked? Would GM cars have ever stopped sucking as a result (or at least sucked less)? It's a pretty loose analogy, but work with me here.
Until consumers can choose an OS independently of the applications "compatible" with that OS, then they do not truly have a choice, and they are definitely harmed by that whether they know it or not. MS has done everything in it's power to ensure the consumer does not have a choice, and it will continue unless they are broken up. The technology exists for a solid, workable virtual platform to be available and to become mainstream, but Microsoft will never let it happen (even though even they might ultimately profit more from such a move in the long run).
Why? Because prior to the explosion of browsers and the web there was no good, ubiquitous technology that allowed platform independent distributed computing. There were plenty of technologies at the time, but you wouldn't find any of them on Windows machines. Rembember Bill's pre-Netscape attitude about the Internet? "Oh, it's just for hobbyists, the REAL *information superhighway* is going to be MSN!" Hence Windows had none of the built-in network-ready functionality that would help form a base for *real* distributed computing in a way that would actually work.
Once browsers became widely available for Windows (i.e. Netscape) the web began its explosion because it enabled what everyone really wanted in the first place, but Windows wouldn't give it to them, platform-independent networking. Unfortunately, since the browser represented the only real choice to accomplish this, it started being used for EVERYTHING. Not just hypertext document traversal and simple form submission for which the web was designed, but full-blown remote applications for everything you could imagine. Hence the browser wars reached a feaver pitch because now everything under the sun had to be supported, but it was on top of a model (batch-style client fetch) that just wouldn't support it.
And we're still paying the price today. My own job is in the development of a complicated user interface used to configure a complex system. Pretty much hell to do in a browser, but we break more than half of the W3C's rules because we need it to act like a real UI, and the decision to go browser-based stems ultimately from the fact that there really aren't many better alternatives (well, Java maybe, but it has it's own problems, --I won't get started on how Microsoft screwed that up, too). And now, God forbid, we're faced with more Microsoft "vision" in.NET.
If Microsoft had the slightest CLUE about networking, the world would be a different place today. Hell, we probably wouldn't even be facing a possible recession, and the dot-com implosion most likely would have been much less severe if everyone had real tools and applications that interacted on the Internet in a sensible way.
Sorry if this is just more/. sour-grape Microsoft bashing, but if anyone can't point out why I'm wrong, I'd love to hear it.
I've seen a lot of comments posted here that tend to say avoid rewriting most of the time. This probably echos your manager's attitude. Generally your manager is applying the "Bang-for-the-Buck" rule, i.e. is the cost worth the payoff. The flip side of the question is how much risk is assumed by not doing the rewrite. These can be very difficult questions to answer, but your ability to answer them accurately will establish your value as an engineer to the company.
I was once working on a piece of code which required an "enhancement" modification shortly before release. The change to the user was minor, it should have only taken a couple of days. The code in this area, however, was so convoluted with so many hidden dependencies that I literally did not know how to change it. It was so fragile that I could have no confidence that any change I made would have the desired effect. When we approached my manager with the classic "It needs a redesign" argument with not much to back it up aside from our opinion, he rebuffed our request pretty quickly. When I (very honestly) phrased it with the terms "no confidence in my own changes" he realized that we were pretty serious. The change request was flagged with a two-week lead time as opposed to the one day it should have been. Incidently the change was never made, and the code remained the same.
To summarize, assess risk vs. payoff as best you can and articulate it well to you manager. This will result in the best decision for the company.
2. Information on virtually any subject is available almost any time I wish, be it the middle of the night, while I'm watching TV, or whenever. This change is so significant to me that it's hard to imagine what it was like "before." For the most part this has enabled me to be more politically and socially informed and active, but it's also allowed me to change careers (to MS developer, sorry), take up ham radio, help sell my mother's house without a realtor, build my own computers, etc
And the significance of this shouldn't be underestimated. Weinberger may have his head in the clouds about where things are at right now, but Katz has got it wrong, too. Widespread access to information is an incredibly powerful thing, and once the "average" person possesses a high degree of net-savy and begins to use it constructively, the world really will be dramatically different, it's just happening much more slowly than all the Cyber BS predicted.
Slashdot is a perfect example of access to information improving discourse on a topic. The ability to link directly to the law/interview/filmography/press release in question means the loud bullshitters lose the debate to the meticulous thinkers. Stack up several decades of that happening in a much wider forum, and I think the world will be much better.
On the Internet there's actually a lot more that can be tracked, counted, targeted, etc. depending on how well a typical website is deployed. The real problem is advertisers aren't 1) creative enough to come up with ads that work well within the medium and 2) smart enough to even understand what the new medium really is.
Of course it doesn't help that most of the websites trying to stay afloat are just as clueless.
Here's an imaginary scenario:
A "horizontal" virtual platform (or API, call it what you will) that allows common, mainstream productivity software (i.e. email, spreadsheet, etc) to run on any machine [Ok, call it Java, call it whatever, but just imagine such a thing exists and works]. Also imagine that this platform is as ubiquitous as TCP/IP or a similar standard, and is well implemented and easily implementable by anyone.
OS vendors could now compete viciously for "vertical" markets (games, servers, multimedia, programming, what have you) and still support the "horizontal" platform so they do not become marginalized from the mainstream. Application vendors can compete viciously for a piece of either market because the playing field is relatively level.
Under this scenario, consumers would at last have a choice. And not only that, they would be better served by whatever choice they made depending on their needs.
If General Motors had owned all the roads and ensured that only GM cars could run on those roads, would anyone had ever purchased Japanese cars back when GM cars sucked? Would GM cars have ever stopped sucking as a result (or at least sucked less)? It's a pretty loose analogy, but work with me here.
Until consumers can choose an OS independently of the applications "compatible" with that OS, then they do not truly have a choice, and they are definitely harmed by that whether they know it or not. MS has done everything in it's power to ensure the consumer does not have a choice, and it will continue unless they are broken up. The technology exists for a solid, workable virtual platform to be available and to become mainstream, but Microsoft will never let it happen (even though even they might ultimately profit more from such a move in the long run).
It really is Microsoft's fault.
Why? Because prior to the explosion of browsers and the web there was no good, ubiquitous technology that allowed platform independent distributed computing. There were plenty of technologies at the time, but you wouldn't find any of them on Windows machines. Rembember Bill's pre-Netscape attitude about the Internet? "Oh, it's just for hobbyists, the REAL *information superhighway* is going to be MSN!" Hence Windows had none of the built-in network-ready functionality that would help form a base for *real* distributed computing in a way that would actually work.
Once browsers became widely available for Windows (i.e. Netscape) the web began its explosion because it enabled what everyone really wanted in the first place, but Windows wouldn't give it to them, platform-independent networking. Unfortunately, since the browser represented the only real choice to accomplish this, it started being used for EVERYTHING. Not just hypertext document traversal and simple form submission for which the web was designed, but full-blown remote applications for everything you could imagine. Hence the browser wars reached a feaver pitch because now everything under the sun had to be supported, but it was on top of a model (batch-style client fetch) that just wouldn't support it.
And we're still paying the price today. My own job is in the development of a complicated user interface used to configure a complex system. Pretty much hell to do in a browser, but we break more than half of the W3C's rules because we need it to act like a real UI, and the decision to go browser-based stems ultimately from the fact that there really aren't many better alternatives (well, Java maybe, but it has it's own problems, --I won't get started on how Microsoft screwed that up, too). And now, God forbid, we're faced with more Microsoft "vision" in .NET.
If Microsoft had the slightest CLUE about networking, the world would be a different place today. Hell, we probably wouldn't even be facing a possible recession, and the dot-com implosion most likely would have been much less severe if everyone had real tools and applications that interacted on the Internet in a sensible way.
Sorry if this is just more /. sour-grape Microsoft bashing, but if anyone can't point out why I'm wrong, I'd love to hear it.
I was once working on a piece of code which required an "enhancement" modification shortly before release. The change to the user was minor, it should have only taken a couple of days. The code in this area, however, was so convoluted with so many hidden dependencies that I literally did not know how to change it. It was so fragile that I could have no confidence that any change I made would have the desired effect. When we approached my manager with the classic "It needs a redesign" argument with not much to back it up aside from our opinion, he rebuffed our request pretty quickly. When I (very honestly) phrased it with the terms "no confidence in my own changes" he realized that we were pretty serious. The change request was flagged with a two-week lead time as opposed to the one day it should have been. Incidently the change was never made, and the code remained the same.
To summarize, assess risk vs. payoff as best you can and articulate it well to you manager. This will result in the best decision for the company.