Domain: joelonsoftware.com
Stories and comments across the archive that link to joelonsoftware.com.
Comments · 1,628
-
Joel
Read everything you can by Joel Spoelsky.
http://www.joelonsoftware.com/ -
Re:Insult all you want
See also Joel Spolsky:
What I wondered was, what happens if you take top-notch C++ programmers who dream in pointers, and let them code in VB. What I discovered at Fog Creek was that they become super-efficient coding machines. The code looks pretty good, it's object-oriented and robust, but you don't waste time using tools that are at a level lower than you need. I've spent years writing code for C++/MFC and years writing code in Visual Basic, and let me tell you, VB is just much, much more productive. Michael and I had a good laugh today when we discovered somebody selling a beta crash-reporting product at $5000 for three months that Michael implemented in CityDesk in two days. (And we actually implemented a good part of ours in C++/ATL). And I also guarantee you that our Visual Basic code in CityDesk looks a lot better than most of the code you find written in macho languages like C++, because we're good programmers, and we write comments, and our variable names are well-chosen, and we do things the simple way, not the clever way, and so forth.
-
Re:Cryptocat != cat-copter
And here I was trying to figure out why he had developed a tool to read encrypted bar codes.
-
Probably don't need a desk per se.
Based on Joel Spolsky's suggestion I bought a details adjusTable. Being a heavy guy (nearly 400 lbs), I couldn't get their side-by-side setup with a flat treadmill, so I bought a heavy duty treadmill with the intent of hacking it together with the desk. If I had my time back, I think I'd just have bought the treadmill and one of these.
Having said that, there's a lot to be said for a standing desk with good quality lift and the ability to return to sitting position. You can multipurpose the desk for a lot of different stuff. It takes some work, though.
-
big software re-writes never workIICV posted this quote over in the B52 thread, but it is even more valid here.
"It's the same reason why big software re-writes never work the old software is old and convoluted because it's had to solve problems you'd never think of the first time around."
Gnome 2 is successful and pleasantly usable thanks to years of input and refinement as a GUI.A huge effort was put into it to understand what its intended use was and how to make something people wanted.
They should not have replaced Gnome 2 with Gnome 3, it should have been a whole new project. Gnome 3 has nothing to do with the original objective that was Gnome 2.
-
Re:Extend the lifespan of B-52 beyond 2040?
Except it would do worse, because there's over 60 years of collective knowledge centered around the construction, maintenance and flying of B-52s, whereas whatever new hotness comes out will have its own little quirks.
It's the same reason why big software re-writes never work; the old software is old and convoluted because it's had to solve problems you'd never think of the first time around.
-
Re:Accepted norms
Thanks, and the same to you. Fortunately I am not bitter. I only try to see the things as they are and describe them clearly. That can sound bitter, I know. I have a pretty nice job where recognizing and describing the truth is a major part of my work (well, in political language). I do only work hard on occasion. I even get to do the occasional bit of (applied) science, which is nice.
As to hard work, there are quite a few scientists that believe all science is incremental in small steps. Those are the hard workers that will never have a great idea, because they are doing it wrong. Hard work does not foster great ideas, it prevents them. True, once you had a good idea, hard work may be required, but before that idea, it is entirely the wrong approach. Hard work all the time is only for those of limited mental faculties. These cannot be good scientists, ever.
As to web-development, stay away. It is the bottom of the barrel for those that truly do not understand programming, algorithms, data-modeling, mathematics and technology. My impression is that there is a need for programmers that actually can get a job done well (see, e.g. http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html and http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html). Maybe try to get into that? I think selecting the right employer is key here. Stay away from the financial sector as well, they pay well, but that is mostly compensation for being treated so badly.
As to Christopher McCandless, there are times when something like that looks attractive, but they pass. Maybe even do something like it, but for a limited time and with a reasonable exit strategy. Intelligent people that actually have the wisdom to see things as they are do not fit well in this world, they are too rare. Intelligent ones are already rare, but typically lack that wisdom. Still, there are niches out there. It just takes a bit longer to find them and may take a bit of luck. Just don't do anything conventional unless you can compensate strongly with something you like doing. It may kill you otherwise.
-
Re:Apps
But Microsoft has started using the word "apps" to refer to traditional desktop software, too.
Actually, I don't think this is a marketing thing.
I worked at Microsoft from January 1990 until after Windows 95 shipped. Even in January 1990, we referred to "apps". The two major divisions at Microsoft were "Systems" and "Apps".
Supporting evidence: Notice how, in this blog posting, Joel Spolsky refers to "apps" rather than "applications". That was written in 2004. Joel used to work at Microsoft (he worked on Excel).
-
Re:So Azure is just another front end to Excel?
Joel Spolsky has an article about the 1900 Leap Year bug.
-
Re:But will it run Linux?
The problem in Microsoft's case is that they seem incapable of dumping what they have and doing a complete rewrite.
It's really tempting to think that way, but actually doing a clean re-write is usually a complete mistake. I'd say Mac OSX is one of the only successfull examples of this (and that largely because their previous versions were so horribly outdated it was unbelievable).
Joel has a great article on this from a while back:
http://www.joelonsoftware.com/articles/fog0000000069.html -
Re:I have an idea for the style guide
How about, when naming variables, you have to put the first letter of the typename in the start of the variable name!
Hungarian notation isn't about using the typename at all.
Indeed. Here is some good reading on the actual purpose of Hungarian notation, although of course it's used wrong far more often than not. I've never used it myself, correctly or otherwise, but I acknowledge that the original intent was at least sensible.
-
Re:You have a clear anti-JS bias.
Sorry
... but weakly typed languages are the junk food of the programming world.e.g. All those SQL injection attacks? Mostly down to weak typing.
Articles like this (which is highly regarded in the weak-typing world)? Wrong, wrong, WRONG. Don't rely on writing code to try and make errors stand out if people pay attention, write code that refuses to compile if you make a mistake.
Compile-time checking is one of the foundations of writing solid software. The compiler never forgets to check stuff, it never has a bad day, a late night or insufficient caffeine. The more work you can get it to do for you, the better.
(This rant also applies to C programmers - C hardly lets you automate anything, get C++ and start using proper containers/strings ASAP)
-
Re:Becoming an engineer
http://www.joelonsoftware.com/articles/fog0000000069.html
'"requirements -> design -> detailed design -> code" waterfall fails hard when at the code level you notice the requirements can't be met with the api's available. that's why at the requirements stage you should test that you can actually fulfill what you're promising to do. now a true agile design end result is that the test if it can be done ends up as the production version....
-
Rewriting Would Be a Mistake
The Firefox codebase definitely has some huge issues, but does anyone remember the big Netscape rewrite for version 6? Joel does. http://www.joelonsoftware.com/articles/fog0000000069.html
-
Re:Oversupply *and* higher wages?
It makes sense that companies would want to pay top dollar for stellar software developers, given that (I would assert that) the variance in developer quality is generally greater than the variance in developer pay. Presumably this extends to other positions and fields too.
It's all about bang for the buck, and if you can get someone three times as productive as an average developer (for some reasonable definition of "productive" and "average") by paying that person two average developers' salaries, it's the logical path to take, setting aside potential pitfalls such as putting all your eggs in one basket.
Not to mention this point: "The real trouble with using a lot of mediocre programmers instead of a couple of good ones is that no matter how long they work, they never produce something as good as what the great programmers can produce."
http://www.joelonsoftware.com/articles/HighNotes.html -
Re:No reason to celebrate now.
I agree. At the time of release, IE6 was probably the best browser out there. Netscape 6, based Mozilla 0.6, was released around the same time and was pretty slow and ugly. The problem with IE6 wasn't initially standards support (it supported XMLHttpRequest and a fair bit of dynamic HTML, including
.eot embedded fonts), it was Microsoft's utterly contemptuous attitude towards users' safety on the web. Popups, drive-by downloads, rogue ActiveX controls, no adblock unless you used a filtering proxy like Proxomitron -- all of these combined to make web browsing a pretty hellish experience. Which is why, I suspected, a lot of people switched to Phoenix as soon as it was usable in late 2002 -- mainly for the popup blocking and the lack of drive-by downloads. The tabbed browsing was just a bonus.Joel Spolsky said it best:
Microsoft took over the browser market fair and square by making a better product, but they were so afraid that Web-based applications would eliminate the need for Windows that they locked the IE team in a dark dungeon and they haven't allowed improvements to IE for several years now. Now Firefox is the better product and there's a glimmer of hope that one day DHTML will actually improve to the point where web-based applications are just as good as Windows-based applications
-
Re:No way
... Throwing away a large codebase is stupid.
That depends very much on the quality of the codebase. They don't age nicely like fine wine, you know.
I think Joel Spolsky might beg to differ:
As if source code rusted.
-
Well
I'm about to switch from a position where I did hands on development to one where I will be building and managing technical team. I will be responsible for designing and implementing the company's overall tech strategy. I am excited about this move but also nervous. It will require a different focus than I had up to this point, different skills, and different orientation. What should I be learning,
I think you should have asked this question a bit earlier me thinks
:)Having said that, there are things that you need to learn:
1. The basics of project management if you don't understand them already. I'd say buy Steve McConnell's "Software Project Survival Guide".
2. Software estimation if you don't have a good grasp of that already. You can start by reading Spolsky's "evidence based scheduling" http://www.joelonsoftware.com/items/2007/10/26.html
3. Learn to delegate.
Also, be aware that you will lose some of your technical chops. You won't be in the trenches, but that doesn't mean you need to devolve into a pointy hairy boss. The closer you are to the developers, the more often you will need to get your hands dirty once in a while to understand their work and needs (and to keep your chops) - you will need to do that while never forgetting when and how to delegate.
-
Joel on Software
Joel has a interesting article on this.
-
Re:Pffft.
Joel disagrees, bug fixes tend to accmulate. Things you should never do
The bugs happen when new features are added, same as with the original developers.
-
Re:SQL too
-
Re:Stick with Excel
Excel has a few bugs but for the most part it's very capable.
Care to name some of those bugs? I have not come across a single one!
You can't google Excel bugs???
http://it.slashdot.org/story/07/09/24/2339203/Excel-2007-Multiplication-Bug
http://www.joelonsoftware.com/items/2007/09/26b.html
http://social.technet.microsoft.com/Forums/en-US/excel/thread/f2850183-e8f5-4a3e-a0b1-5a154347f3e9/ -
Badgers don't need no stinkin' rewrite
If most of them now need to be re-written to support an interface paradigm that is in essence incompatible with a touch interface
The fans of Flash on mobile would claim that not all existing SWF objects out there require hover. For example, the "play" button on a web cartoon does not: when the user taps the digitizer, just send the mouseover event followed by the click event and the SWF object will behave. Those existing Flash applications that do require hover at the moment can be tweaked, not completely rewritten, to support hover-free interaction, with the obvious exception of a tech demo of goal-crossing interaction.
-
80/20 Rule, most people only use some of features
Joel Spolsky said it better than I could:
A lot of software developers are seduced by the old "80/20" rule. It seems to make a lot of sense: 80% of the people use 20% of the features. So you convince yourself that you only need to implement 20% of the features, and you can still sell 80% as many copies.Unfortunately, it's never the same 20%. Everybody uses a different set of features.
http://www.joelonsoftware.com/articles/fog0000000020.htmlThere are a whole lot of new interefaces that have pissed off their existing users in an effort to attract a few more new users. It is the recommendations of the power users that drives many beginners, I think we'll see quite a few people move to XFCE or Mint and we will have another shake up.
-
Re:Amateur programmers not willing to learn
Yup...
But here's the concept:
Programmers seem to have stopped reading books. [...]
Instead, they happily program away, using trial-and-error. When they can't figure something out, they type a question into Google. [...] -- Joel Spolsky, stackoverflow.com (several months prior to the site actually existing)
Does that scare you? Bother you? Leave you a depressed shell of a man, thinking seriously about that potato-farming slash fracking job you left behind back in Idaho?
Well, it probably should. But regardless, that's reality: and that's the audience Stack Overflow was created to serve. So that the apps we're using every day aren't being cobbled together by folks who think DynamicDrive.com and W3Schools are the last word in programming knowledge. If nothing else, this little chart indicates it's working...
Why is that scary? I don't think books are a particularly good way of learning to write software. Often times you don't know exactly what it is you need to learn until you get there. Obviously you need a good foundation so you don't end up gluing a bunch of stuff together and creating a mess of memory leaks, but you don't need a book for every little topic.
One way I often use StackOverflow is to find better solutions to something I already know how to solve. Python has a lot of neat features that, when used correctly, can create some very elegant solutions. I'll run into a problem and think "I know there's a much better way to do this, I just don't know what it is" so I'll search StackOverflow. Does it make me a worse programmer that I haven't run out to buy books on every type of problem I might want to solve for every version of the programming language I might want to solve them in and trusted that the writer has the best solution available?
-
Re:Amateur programmers not willing to learn
Yup...
But here's the concept:
Programmers seem to have stopped reading books. [...]
Instead, they happily program away, using trial-and-error. When they can't figure something out, they type a question into Google. [...]
-- Joel Spolsky, stackoverflow.com (several months prior to the site actually existing)Does that scare you? Bother you? Leave you a depressed shell of a man, thinking seriously about that potato-farming slash fracking job you left behind back in Idaho?
Well, it probably should. But regardless, that's reality: and that's the audience Stack Overflow was created to serve. So that the apps we're using every day aren't being cobbled together by folks who think DynamicDrive.com and W3Schools are the last word in programming knowledge. If nothing else, this little chart indicates it's working...
-
Re:Amen
Precisely. There's no value in such puzzle questions that are binary - you either know the answer from having heard it before, or you don't. Joel Spolsky says as much in his guerilla guide to interviewing.
-
We need more 'Programming only' companies.
It's 4oclock in the morning and I can't sleep - so I'll post this.
:-)Software Development is still very young, very dynamic and very complex.
I've been programming since 1986 and been in professional web software development since 2000. I've done a solid share of projects of all kinds and right now, once again, on the lookout for jobs and projects. Twice a week I get called up by recruiters asking me if I 'know XML' or can drive down to Munich for free to make a job interview for a project that smells of out-of-time, over budget and clueless gouvernance ten miles against the wind. 10 years ago money was free an nobody cared about wether a project was going to succeed or not. Nowadays money is more scarce, but the people in the pipeline haven't learned a single bit.
It occured to me the other week that our profession is very simular to that of doctors. Everybody knows there are complete hacks in the field that can ruin your health for good and seasoned professionals with the patients best interest in mind and a solid experience and will to do good, but only the pros in the field themselves have the capability to judge wether a given MD is from those 30% that are total screwups or it he belongs to the 30% that can make a difference.
In the last few weeks I've been dismissing companies left right and center just by reading their outlandish fantasy job requirements or just asking a set of questions simular to these and noticing what a crappy shop I'm speaking to.
I get simular stories from my cousin who's passed through 3 jobs in the last 18 months - and he's a *real* engineer - y'know, building Airplanes and shit (Airbus 380 and such).
The truth is, after being in the field for so long, I know for a fact that only a 5th or all software teams out there barely fit the most basic standards of working conditions I can even be productive in. 2 out of 3 of those fall flat in some other basic requirement. I think it's a crying shame, because I'd love to do some good and meaningful work in this field, but it's just so darn difficult to find a proper pipeline and the surroundings to make use of it.
... I could go on and on, but you all get the picture. However, I would like to close with one concrete question to all of you who are reading this:Are there any seasoned programmers here who think it should be possible to build an international company that has everything online (vhost servers for versioning, building and staging, online project and task management, etc.
...) and delivers along the lines of a company like this one? I personally do, speak fluent English and German, have solid experience in Organisation (as a scrum master), have technical account management skills alongside my programming stuff and do believe it should be possible to a) deliver good software b) on time c) without crunching d) having fun while doing so and finally e) making a good living at that.Reply to this post and let us hear your thoughts. I'll leave a mailadress somewhere further down as an reply tomorrow
.... errr ... later and we can get together online somewhere. I'd rather work with some slashdotter from the other side of the planet I have never seen than with some disponent from the other town who can't tell Java from JavaScript and earns 3x my rates by renting me out to others.Let's see if we can improve the industry just a little bit and make a dent in the universe.
My 2 cents.
-
Re:Law of unintended consequences
It's quite possible to have both the experiences you describe, and unemployment having a 95% effectiveness rate. Imagine, if you will, an area with 10000 unemployed people. 5% of those 10000, or 500, are the kinds of cheats you describe, and 50 of those people are ones you actually want to hire if you can.
You will see the 500 cheats, because they are going to go around to every single potential employer and never getting hired. You might, if you're lucky, see some of the 50 people you want to hire (they might get hired by your competitors). You will never see the remaining 9450, because they're legitimately looking for work and realize that they aren't a good match for your firm.
Or another way of putting it, as Joel Spolsky points out in his advice on finding good employees, the people you really want are almost never on the market (because they're either happily employed or snatched up really quickly), while the people you don't want are always on the market and applying for everything under the sun.
-
Re:Yikes
(Sorry)
I'm sure your case is an exception, but I couldn't resist. The one time I felt like the only option was a rewrite, it turned out to be the right decision and the result was a huge improvement and a success. I wish you the same luck with yours.
-
Joel calls it "Fire and Motion"
There's a an old Joel on Software article called Fire and Motion and in the second half he talks about a similar phenomenon:
The competition has no choice but to spend all their time porting and keeping up, time that they can't spend writing new features.
For what it's worth, I don't think Mozilla are quite in this situation as they are producing new features too...
-
Re:freedom to choose
Too many choices, is like too much money. It is a problem we should all be so lucky to have.
I don't see how.
Too many choices have a negative impact on happiness. Decision paralysis means that we have to intentionally downplay the effects of choice, through heurtistics and other mechanisms. Analysis of decisions can make unchosen options more attractive and chosen options less attractive.
Decisions aren't free. If Linux is your hobby, customizing it involves time... time that you want to spend. But if you're using your computer to get laid, you want something that just works.
-
Could hardly read; also, see Joel Spolsky's piece
Please, use commas when you write; the summary was extremely difficult to read. Also, Joel Spolsky has a great blog entry on Microsoft's tendency to vacillate between different frameworks (the article, though a decade old, is still relevant): http://www.joelonsoftware.com/articles/fog0000000339.html
-
Re:The only problem with Microsoft...
FYI:
http://www.joelonsoftware.com/items/2006/06/16.html
Not that it would excuse the anticompetitive crimes, which is partly because of the attribute that business is war that I think Bill Gates and Steve Ballmer helped. -
Re:No, it really won't.
I forgot the obligatory link: This article is usually held up as a shining example of how to do it right, I've seen it quoted hundreds of times on programming forums.
As Mythbusters would say: "There's your problem..."
-
Re:Because firefox is shit?
Oh please! Ya wanna know why Netscape died hard? Because they put out a total POS release that was NS4 and then they broke one of the cardinal rules which basically gave the market to MSFT.
You may be too young but I was one of the poor bastards that had always used NS and had TRIED to use NS4. Let me give you my impression of me using NS4: "Alright! Its installed! So lets fire it up and go.../NS4 crashes/....Okay, must have been a glitch! So I'll just go to a different site this time and../.NS4 hangs and THEN crashes/...huh, maybe that site is buggy. This time I'll just go check my.../NS4 crashes and BSODs the OS/...*&^*^%*&^%*&%!
NS4 was complete and total garbage, NS6 was released THREE YEARS later (there was no NS5) and by that time nobody gave a shit because IE was "good enough". If you look at the download numbers (NS4 was in the days before IE was bundled) I'm sure you'll see a BIG spike soon after NS4 was released. Compared to NS4 IE4 was a big bundle of candy flavored goodness. No frankly it wasn't great, but at least it ran most of the time and didn't BSOD the OS like NS4 which in the days of dialup meant a long bunch of BS as you had to reboot and redial.
As for TFA, because FF isn't the "lean mean" browser it was originally supposed to be, but a big bloated monster? mobile is all about thin and light, because with the exception of the top o' the line mobiles most have less CPU and RAM than we used on desktops a decade ago. FF 4 is frankly a huge bloated mess, especially compared to Chromium based so I can understand why nobody at Moz is talking about a FF OS.
I hate to say it, but maybe it is time for a rewrite of the Gecko engine? Because ever since the 3.6 branch I've found it to be quite painful on anything less than a 3GHz+ with 2Gb of RAM, which is a hell of a lot more than your average mobile device. It is pretty obvious at least for now that mobile and green computing are gonna be popular for awhile, and FF bloat just don't fit in with that. When FF 4 can give a really nice experience on a single core Atom with 1Gb of RAM and work well all day then maybe a FF OS will be in order, but that day sure ain't today.
-
Re:Not a bad list.
We're not asking for this for the sake of it...because we're used to it on the PC
What you're used to isn't necessarily usable. Please read this article and scroll down to "The question of preferences", and read this article by Joel Spolsky.
I was saying, "we're not asking for this for the sake of it because we're used to it on the PC, we're asking for this because it's a good idea".
We're not asking for this for the sake of it...because we're used to it on the PC...it's because it's a good fucking idea for PC gamers.
Those articles are nice and all (Joel's ever so cute when he gets a bee in his bonnet), but as I've point out to ildon, it's possible for someone who doesn't care about tweaking settings to start the game and never even see an "Options" dialog. Moreover, they're looking at a very specific domain. Starting up Word, a user who "just wants to type a document" doesn't need to see a whole raft of options. However, a gamer, playing a game that runs sluggishly and wants to dial down anti-aliasing/model quality etc. is going to be extremely frustrated if he can't do that. I don't want to be able to have infinite control over my games, but I can handle something a little more involved than "Low, Medium, High".
Windows is fairly easy to use. Should Microsoft remove the registry and prevent anyone from changing any settings? Should they remove the ability to change the screen resolution? Window transparency?It can be hidden in an "advanced options" menu, completely obliterating any complaints about a bad or confusing UI.
By "Advanced", do you mean something like "about:config" of Firefox, or do you mean actually testing every combination? The former is confusing; the latter increases your test matrix by one or two orders of magnitude if you attempt to support all combinations of options.
I mean, as in HL2, the main menu has an "Options" menu item. You click on that and are presented with simple options. If you want to turn off anti-aliasing, you can click on "Advanced...". If you are happy with the default settings, you never have to see those options, but if you aren't, you can change them. I don't understand why that is hard to grok? "about:config" is confusing, however, you also almost never need to use it to change options. Most users can use Firefox and never even need to see the contents of the "Options" dialog, let alone "about:config".
As for the test matrix complaint, I hadn't given a moment's thought to "testing every combination" because: a) that's not my job; and b) almost every PC game I've ever played had graphics options that I could change, and not one of them has ever crashed because a particular level of anti-aliasing was incompatible with a particular model quality. Hell, I edited my Quake 3 config file to increase the angle of my field of vision and it didn't crash. -
Re:Not a bad list.
We're not asking for this for the sake of it...because we're used to it on the PC
What you're used to isn't necessarily usable. Please read this article and scroll down to "The question of preferences", and read this article by Joel Spolsky.
It can be hidden in an "advanced options" menu, completely obliterating any complaints about a bad or confusing UI.
By "Advanced", do you mean something like "about:config" of Firefox, or do you mean actually testing every combination? The former is confusing; the latter increases your test matrix by one or two orders of magnitude if you attempt to support all combinations of options.
-
Re:here, have some cynicism
Being a manager, I am learning to hate the phrase "clean code". It seems to be a preoccupation with how code looks whilst being a distraction from what it does.
Please read Making Wrong Code Look Wrong. Also, watch the classic Star Trek episode "The Menagerie" and pay careful attention to the ending. "Everything works, but they had never seen a human before." Just because something works, doesn't mean it's right.
-
Re:Were you born yesterday?
And at the end of the day, the message from Microsoft was that Silverlight will be everywhere "in the future," so we hoped we could hit all platforms with a rich product without doing any porting.
And now this, the latest in a long steady stream of screw-overs.
That screw-over line made me laugh. I was already thinking "man these guys really drank the koolaid". Do you recall Plays-for-sure? I got stuck in the 90s when DDE was borked and they said just switch to OLE. There is a reason slashdot thinks Silverlight is a bad idea and you guys were wrong to choose it. There is even some great writing by Joel on the subject and that was written in 2002. It doesn't matter if it made sense at the time for a
.net shop. It was a poor strategic decision. You don't get to come back a few years later and try to justify that with but but but... Many (most) people had better insight and avoided it. Next time, evaluate technology and make the right choice. Don't just do it because it's the "next big thing" from your current supplier. And lastly, I think you're a liar or just plain stupid when you said you believed a Microsoft technology would give you a cross-platform solution. -
Infinite scaling is a dream!
MS wants one OS to cover everything from phones to Surface and it AIN'T GONNA FUCKING HAPPEN. Is there one type of vehicle that scales perfectly from single-person transport to the size of a bus? Is there one type of vehicle for land, sea, and air? Is there one type of building that scales perfectly from storage shed to multi-story office? No, no, and no. Different things have different needs. "When great thinkers think about problems, they start to see patterns." Programmers always want to solve "the general problem" but one-size-fits-all solutions rarely work.
Dear MS: Please make a great desktop OS. And a great mobile OS. And a great server OS. And before you start, realize that they're different things.
-
Another good advice
Another sane advice from the guy who claimed that writing a new web-browser was the worst decision the Mozilla Foundation could make.
-
Hey, lets incentivize the devs to game the system.
I believe the subject of incentives in software development have been proved to be harmful for a development team for a long time. By introducing an incentive pay scheme where a team can get more money based on performance will have disastrous effect on team morale and cause wedges between team members. Not only that but you're now encouraging the dev team members to fudge the system so they can receive extra pay and avoid looking bad. Both of these topics have been covered pretty thoroughly by Joel Spolsky on his blog. http://www.joelonsoftware.com/articles/fog0000000070.html http://www.joelonsoftware.com/items/2006/08/09.html
-
Hey, lets incentivize the devs to game the system.
I believe the subject of incentives in software development have been proved to be harmful for a development team for a long time. By introducing an incentive pay scheme where a team can get more money based on performance will have disastrous effect on team morale and cause wedges between team members. Not only that but you're now encouraging the dev team members to fudge the system so they can receive extra pay and avoid looking bad. Both of these topics have been covered pretty thoroughly by Joel Spolsky on his blog. http://www.joelonsoftware.com/articles/fog0000000070.html http://www.joelonsoftware.com/items/2006/08/09.html
-
Commoditize your complements
Joel Spolsky had a Joel on Software post pertinent to this subject back in 2002, except then it was applied to understanding just why numerous large companies were jumping on the open source bandwagon. (Hint: it's not due to a sudden shift to a Stallman-esque viewpoint.) Joel talks a bit of economics, lays out the details, and provides a number of examples, like the one below.
Headline: IBM Spends Millions to Develop Open Source Software.
Myth: They're doing this because Lou Gerstner read the GNU Manifesto and decided he doesn't actually like capitalism.
Reality: They're doing this because IBM is becoming an IT consulting company. IT consulting is a complement of enterprise software. Thus IBM needs to commoditize enterprise software, and the best way to do this is by supporting open source. Lo and behold, their consulting division is winning big with this strategy.
Seen in this context, these providers are rapidly commoditizing an entire marketplace as a complement to increase the demand for their products and services.
Closely related reading: This timely post on Facebook's Open Computing Project.
P.S.: I certainly don't think that Joel's ideas capture the whole of the open source movement, but it's one valuable perspective. At minimum, there's also big wins for many parties, whether individuals or companies, who can cooperate to share the burden of a cost center (such as an operating system, a web server, etc.)
-
Re:Maximize profit
Joel Spolsky pointed out the problem with this a few years back: http://www.joelonsoftware.com/articles/CamelsandRubberDuckies.html When your unit production cost is small, you're better off (as much as possible) to adjust the price based on the ability of the consumers to pay and get something out of the poorer ones instead of nothing.
-
Re:You know what I want to see more of? Shop class
If you're hiring programmers you need to provide a good Development Abstraction Layer. I certainly would not want to be pulled off my desk to help with any handyman projects you have around the office.
-
Re:It's Called 'Experience'!
I'm glad you posted this: the reactions to your post are stellar in how misguided or narrow-minded the common view on computer science seems to be.
To the responders, this article is a good start:
http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html -
I've heard this story before.
The rewrite of Firefox as told by Spoksly - features never solidifying and nothing ever shipping. To show it's not an open source thing, the whole MacOSX post System7 Taligent/Pink/Copeland fiasco.
-
Re:What Classes Are They Cheating In?
There are a lot of problems with that view on things:
1. If you're taking classes on jazz history, literary analysis, political science, etc, I sincerely hope you're interested in it, because it's probably costing you something on the order of $200 per class session. If you wanted to attend a school with practically no requirements beyond technical work, you should be looking to transfer to a school that has that.
2. Being able to digest information about non-engineering topics matters more than you'd think in engineering. For instance, if you were designing 'green architecture' buildings, wouldn't it help you to be able to make sense of all the political, scientific, and economic discussions around green architecture?
3. Being able to write well really matters, because part of your job as an engineer is being able to describe your designs.
4. Why would your life possibly be worse off by knowing something about jazz history or literary analysis?If they're overworked and under-rested, they need to find a way to lower their courseload or get some more rest, not find a way to cheat. Although I went through a pretty rigorous program myself, my solution to the rest problem was to get to sleep at more-or-less the same time every day, get up at more-or-less the same time every day, and work on schoolwork from about 9 to 4:30 unless I was in class. The result was that I found myself getting projects and papers in good-enough shape well before the due date, and would spend a few hours refining the results, and could devote my evenings and weekends to fun stuff and frequently ending up with it being 2:30 on a Friday afternoon and nothing to worry about until Monday morning.
Complementing people on their time management when their solution is to not get something done is a bad idea.
I don't recommend everything Joel Spolsky writes, but his college advice is pretty good.