Saturday, February 28, 2009

Maxims: YAGNI: You Ain't Gonna Need It

It's true. You really ain't gonna need it. 
In software engineering, YAGNI, short for 'You Ain't Gonna Need It', suggests to programmers that they should not add functionality until it is necessary. Ron Jeffries writes, "Always implement things when you actually need them, never when you just foresee that you need them." According to those who advocate the YAGNI approach, the temptation to write code that is not necessary at the moment, but might be in the future, has the following disadvantages:
  • The time spent is taken from adding, testing or improving necessary functionality.
  • The new features must be debugged, documented, and supported.
  • Any new feature imposes constraints on what can be done in the future, so an unnecessary feature now may prevent implementing a necessary feature later.
  • Until the feature is actually needed, it is difficult to fully define what it should do and to test it. If the new feature is not properly defined and tested, it may not work right, even if it eventually is needed.
  • It leads to code bloat; the software becomes larger and more complicated.
  • Unless there are specifications and some kind of revision control, the feature may not be known to programmers who could make use of it.
  • Adding the new feature may suggest other new features. If these new features are implemented as well, this may result in a snowball effect towards creeping featurism.
And if it turns out you do need it after all, don't worry. You'll have plenty of time to do it since you saved so much time not doing that other stuff that isn't needed.

Calling Yagni on that stuff works much better than calling shenanigans!

Friday, February 27, 2009

xkcd: we won the DRM war

xkcd is right - we won the DRM war. And yet some people just won't be satisfied.

Wednesday, February 25, 2009

The Netbook Effect: How Cheap Little Laptops Hit the Big Time

I am SO looking forward to getting my plate clear enough to start bringing these in.

The Netbook Effect: How Cheap Little Laptops Hit the Big Time:
"All of which is, when you think about it, incredibly weird. Netbooks violate all the laws of the computer hardware business. Traditionally, development trickles down from the high end to the mass market. PC makers target early adopters with new, ultrapowerful features. Years later, those innovations spread to lower-end models.

But Jepsen's design trickled up. In the process of creating a laptop to satisfy the needs of poor people, she revealed something about traditional PC users. They didn't want more out of a laptop—they wanted less."

Tuesday, February 24, 2009

Maxims: 97 things every software architect should know

Other people's maxims! Or, as they call them, axioms. (They're synonyms.)
The following are the 97 axioms selected for the book, 97 Things Every Software Architect Should Know, which will be published by O'Reilly Media in early 2009. The contents are now being edited for publishing - you can see them here. All edits will be contributed back to the 97 Things web site on this page.
Here are a few random selections to tease you. I have't read all 97 of these yet - in fact i haven't even read all of these links yet - but the maxims themselves are enough for me to repost 'em. And I saw plenty more I like where these came from.

2. Simplify essential complexity; diminish accidental complexity by Neal Ford
3. Chances are your biggest problem isn't technical by Mark Ramm
4. Seek the value in requested capabilities by Einar Landre
9. You're negotiating more often than you think by Michael Nygard
10. Quantify by Keith Braithwaite
18. Simplicity before generality, use before reuse by Kevlin Henney
19. Architects must be hands on by John Davies

So - have YOU got more maxims, axioms, or pointers to other people's deeptechthoughts? Do share! I love this collected & shared wisdom idea. Might just be the basis of civilization....

Saturday, February 21, 2009

Maxim: The stuff you want to store will expand; size disks accordingly

The stuff you have to store will always expand to fill your available storage. You won't go wrong buying as much disk space in your computer as you can afford. There's ALWAYS going to be something more you'll want to have space for.

Related to Max Out Your RAM - eventaully, if the device is upgradeable/expandable, then you may want to consider an upgrade a year or so after purchase to maximize cost/benefit. But if it's sealed (I'm looking at you, iPhone/iPod!) then max out the storage from the get-go.

This posting was inspired by the tragic tale of Duane, who just realized he should've gotten a 64gb SSD in his netbook instead of the 32gb.

This is also related to Keep Your Original Source Files in the Highest Resolution Possible.

Tuesday, February 17, 2009

The Great Reset

Behavior Gap says in The Great Reset:

"A recent New York Times headline read:

“Consumers Increase Savings While Spending Less”

That sounds like a GOOD thing doesn’t it?

It used to be that savings and thrift were basic, core, American values. Check out Tom Brokaw’s the Greatest Generation if you can’t remember a time when Americans valued thrift and savings. The media is so focused on “reviving” the economy that it is now seen as a negative sign when saving increases and spending declines. I know the economy as we have known it over the last 10-20 years depended on consumer spending, but the problem was THAT WAS MONEY WE DID NOT HAVE!"

There's a few more paragraphs, I recommend reading it.

Via Seattle Bubble who further comment:
Over the last few decades, we have constructed a sham economy that was not sustainable.

When the pyramid scheme failed (as all such schemes are destined to do eventually), rather than the healthy response of “whoops that was stupid, now let’s rebuild a sustainable, sound economy,” we’re hearing nonsense like “we need to prop up housing prices” and “we need to spur more consumer spending.”

Let’s put a stop to the delusion that things can just magically go back to the way they were when everybody (individuals and corporations alike) was hopped up on leverage. It’s not going to happen, nor should it.

Falling home prices and consumer spending are the necessary medicine that must be taken to return to a fundamentally sound and sustainable economy.

Sunday, February 15, 2009

Feature Requests for the next iPhone

Dear Apple: For the next iPhone, please do the following:

1. Higher-quality camera. The target should be pictures comparable to those I can get from my Canon Powershot SD550. (That's a few years old, shouldn't be too high a bar.) I'm willing to live without zoom or flash, but the optics have to be able to pull in more light (so they can take better pictures in dimmer conditions).

2. A solution for video chat. I don't care if you have two cameras, or two lenses, or whatever - just make it work so I can see the screen and be seen by a video camera.

3. Support expansion storage. (I know that doesn't fit your business model, charging more for higher capacity devices is a HUGE profit center, just like addtional RAM in laptops are for all OEM's, and just like computer accessories like surge protectors and mouse pads are for retailers. I can still dream.)

4. More storage space - I'd like to have 64-128gb please - and faster CPU. (Well, I'll get this one no matter what.)

5. Don't treat your customers like criminals; don't ask for the law to make jailbreaking illegal.

Thursday, February 12, 2009

Guidance on Windows Deployments for Business Customers - Windows for your Business - The Windows Blog

Gavriella Schuster, who leads Product Management for Windows Client, including the Windows OS, the MDOP products, and the client virtualization strategy for Microsoft's commercial customers, provides Guidance on Windows Deployments for Business Customers
on the brand-new Windows for your Business Blog.

Gavriella, welcome to the party! As one of those you're focused on, I'm glad to have the chance to talk. (I should however point out that this blog doesn't represent my employer's yada yada; see disclaimer below.)

I'm glad to see this guidance coming out so clearly. It's really helpful to have Microsoft publicly recommending the same things I'm saying. :-)

For example:
"If you are running Windows 2000 in your environment: Migrate your Windows 2000 PCs to Windows Vista as soon as possible. Extended support for Windows 2000 ends Q2 2010, and as an commerical customer, you may soon find your business’s critical applications are unsupported."
This is exactly what we are doing. And it's precisely and explicitly because of this reason:
Testing and remediating applications on Windows Vista will ease your Windows 7 deployment due to the high degree of compatibility.
So - we'll have Vista for some deployments and upgrades that just have to happen. Gotta get off Win2k before July 2010. (Can't believe I have to say that...)

What I'd like, Gavriella, is to know that since I'm deploying Vista now, I'll be able to do an IN PLACE UPGRADE to Windows 7 on those Vista PC's, and it will be a comparable experience to deploying a service pack upgrade. (Sure, it'll be bigger and the install process will likely take longer - but I don't want it to have to be any more complex than that.) I don't want to have to put my users through another round of USMT, app reinstallation, etc. They have more important things to do!

We know Microsoft is working on an in-place upgrade program for OEM customers. I hope Microsoft is doing the same for Enterprise customers.

Windows 7 Enterprise Edition will have DVD playback (Vista EE doesn't)

You're saying "So what? Doesn't Vista have DVD playback?"

Yeah, it does - but not Enterprise Edition. When I learned this (back in about 2006) I was baffled.

I told Microsoft that enterprise customers really DO want DVD playback support in Enterprise edition of Windows. (It's not in Vista Enterprise, grr.

This is annoying because now we get to choose between paying an extra fee per user to get native DVD playback support, or having to install the stupid DVD software that comes from the OEM.

And the lovely OEM's have different versions of the packages, each of which will only consent to work on a few of their models - so we have to keep a whole library of DVD playback software and coordinate it with each model. And we can't include it in the core image, so it's a deploy-time addition, which means time waiting for the install to happen. What an annoying waste of time and effort! But not quite annoying enough to justify paying a few bucks per user times tens of thousands of users to those who pay the bills.

Happily, Microsoft listened! And Windows 7 Enterprise WILL include DVD playback. Thank goodness. And thanks for listening, Microsoft.

Windows 7 Enterprise Edition Customer Benefits - Windows for your Business - The Windows Blog: "Windows 7 Enterprise includes all end user features available in Windows 7 Professional, as well as the DVD Playback Codec"

To those of you who say "what do business users need to play DVD's for?" I say "have you ever traveled on business? what kind of jerks would your company be if they didn't even let you watch a friggin' movie on your laptop?"

But more seriously, there are business purposes for this, even without the employee perk of entertainment. Enterprise customers often have videos that are on DVD's that they want people to watch! Crazy, I know, that DVD's could hold stuff other than movies, and that some people in business could get some use from that.... but it happens!

Now, let's see if we can get MS to agree to let us use the DVD playback in Vista for free until they can ship Win7. :-)

Sunday, February 08, 2009

Maxims: reading material

Always bring something to read.

(Back in my day sonny, this was actually something that required conscious effort and planning! To get books, we had to walk 10 miles to the library, barefoot, in the snow, and it was uphill -- both ways!

Now you've got your shiny, always-connected, infinite-reading-supply devices you can bring in your pocket. You kids have it so easy! Hey! Get off my lawn!