News for hackers. Stuff that matters.
Re:Ubisoft DRM authentification server is down, Assassin's C... by CWuestefeld on Monday March 08, 2010 @10:31AM (#1175491)
I made design and implementation decisions early on that seemed to make no sense to the devs, even after I explained the reasoning, but now that we're 8 months down the road and they see those designs in action, they get it.

To what degree does this refute the YAGNI principle? If the initial phases of the project don't need those sophisticated aspects, why would you design them in at the beginning?

Don't interpret that as an attack. I'm really trying to resolve two principles that both seem obvious, but are in tension to some degree.

Re:Ubisoft DRM authentification server is down, Assassin's C... by nettdata on Monday March 08, 2010 @11:22AM (#1175649)
>> If the initial phases of the project don't need those sophisticated aspects, why would you design them in at the beginning?

Because history has taught me that it will be a definite requirement later on (as in when going live), and the amount of work involved with going back after the fact and incorporating it is insanely high versus designing it properly up front.

So that's not YAGNI, that's You Just Don't Know That You'll Need It.

That's where the experience comes in.

We're not talking about simple refactorings, etc., but major design decisons like technology stacks, architectures, etc.

For instance, the biggest issue I've run into is having a live MMO that had the "new" requirement to be able to troubleshoot and debug a single user among hundreds of thousands.

That is something best handled by a proper initial design, not a slight reworking later on in the process.

As far as I'm concerned, too many people take YAGNI too far. There's a compromise there, and that's where the experience comes into play.