Understanding XP

Understanding XP

James Shore, an Agile Programming proponent writes:

Understanding XP

Mock dialog: "In my last company, we didn’t have any structure at all. People just
did what they felt was right. That worked okay when we were starting
out, but after a few years we started having terrible problems with
quality. We were always under the gun to meet deadlines, and we were
constantly running into surprises that prevented us from releasing on
time. Here, although we’re still able to do what we think is right,
there’s enough structure for everyone to understand what’s going on and
make constant progress."

Self-Documenting Code

Simplicity is in the eye of the beholder.  It doesn’t matter much if you
think the design is simple; if the rest of your team can’t understand
it, or if future maintainers of your software find it too complicated,
then it is.

Code Abstractions

Code Abstractions

Jeff states In his post Respecting Abstractions, that abstraction is good and you don’t always have to know how things work under the covers.

While no abstraction is perfect– you may need to dip your toes into
layers below the Framework from time to time– arguing that you must
have detailed knowledge of the layer under the abstraction to be
competent is counterproductive. While I don’t deny that knowledge of
the layers is critical for troubleshooting, we should respect the abstractions and spend most of our efforts fixing the leaks instead of bypassing

Eric writes about the .NET Abstraction Pile

This is what programmers do.  We build piles of abstractions.  We

design our own abstractions and then pile them up on top of layers we got from

somebody else.  Abstractions can be great.  We use them because they

save us a lot of time.  But abstractions can also cause lots of

problems.

Both posts refer to Joel’s essay "The Law of Leaky Abstractions".

One reason the law of leaky abstractions is problematic is that it
means that abstractions do not really simplify our lives as much as
they were meant to.

Dependency avoidance in code

Dependency avoidance in code

Jeff writes:

I’m not against dependencies. Everything software developers do is one giant string of dependencies. I’m a pragmatist. Strive to make your dependency stack as small as you possibly can.

If you take dependency avoidance too far you might get the Lava Flow anti-pattern:

As we delved into it, we interviewed many of the developers concerning
certain components of the massive pages of code printed out for us.
Over and over again we got the same answer, "I don’t know what that
class is for, it was written before I got here." We gradually realized
that between 30 and 50%
of the actual code comprising this complex system was not understood or
documented by any one currently working on it. Furthermore, as we
analyzed it, we learned that the questionable code really served no
purpose in the current system, rather it was mostly there from previous
attempts or approached by long-gone developers. The current staff,
while very bright, was loath to modify or delete code that they didn’t
write or didn’t know what it did for fear of breaking something and not
knowing why or how to fix it.

Native UI vs Cross-platform UI

Native UI vs Cross-platform UI

In his post "Non-Native UI Sucks" Jeff states:

When two applications with rough feature parity compete, the application with
the native UI will win. Every time. If you truly want to win the hearts and
minds of your users, you go to the metal and take full advantage of the native
UI.

I'm not even sure the native application has to be at parity with a competitor to win.

I also agree with Jeff's comments about the Java UI. UGGG-LYYYYYY. And SLOW.  Never met a Java app I didn't hate.

Too much technology

Too much technology

If I needed proof I have too much technology in my home, my 10 year old made it crystal clear this evening. Cassidy wanted to watch a TV show in my office on our Samsung.  I have it set to cycle through the High-Definition stations only with the antenna setting set to over the air.  You have to switch the antenna setting to Cable to get all the stations available in our other rooms that are connected to our basic cable.  Anyway, she couldn’t find the station she wanted.  She DID know how to use the XBOX360 connected to the Samsung to access  Windows Media Center on my PC.  So she fired THAT up, selected My TV and promptly began streaming Live TV from the PC (with a TV tuner card) to the XBOX so she can watch it on our HDTV which is also connected to cable! Caramba!

HDTV: The Facts and Fiction of 1080p

HDTV: The Facts and Fiction of 1080p

The Facts and Fiction of 1080p

What is better, 720p or 1080i? This has been a topic of discussion for
a long time. If only taking into account the technical aspects, the
answer is simple. 720p is better than 1080i.

720p is better than 1080i in HDTV because the highest 1080 line formats
(1080i60 and 1080p30) as defined in the ATSC standard, deliver only a
few more pixels per second than the highest 720p variant (720p60).

1080i delivers a higher quality visual when static images are
broadcasted. As soon as you have fast changes in the visuals, 720p look
as good or better than 1080i.

Is 1080p essential?  Not really.  If you already own an HDTV, don’t feel that you’ve thrown your money out the window.   
Moving forward, getting a 1080p display that can accept 1080p signals
will be crucial for enjoying next-generation DVD movies and games at
their maximum resolution.

1080p is supported on the XBOX with this XBOX software upgrade.  I don’t have anything that outputs 1080p.  I would have to purchase a HD-DVD drive and game or movies created for 1080p.  My TV doesn’t even support 1080p.  Something to look forward to with my second HDTV purchase!

XBOX 360 & Elite

XBOX 360 & Elite

In light of this weeks announcement about the new XBOX Elite, I thought I’d post about my recent XBOX 360 experience.  I picked up a used XBOX 360 on Craig’s list about three weeks ago.  It was a bundle with tons of accessories and I have been extremely pleased with the system. 

The system is a Core with a hard disk added.  It included component cables, a wireless adapter (though I have the box wired to my network), a plug-and-play adapter for the wireless controller, an extra wired controller, a Microsoft wireless headset, 2 64mb memory cards, a Microsoft Driving Wheel, about 9 months left in a Gold Live account, an extra 1-year subscription to Live,  a  Gears of War branded  hard carrying case, and 5 games (Gears of War, Rainbow Six Las Vegas, Need for Speed Carbon, Tiger Woods Golf, Tony Hawk’s Project 8).

I was unable to get the component cables working to my HD TV for a while.  My first calls to Microsoft and Samsung, did not result in a solution, though access to their Tech support was good and the technicians were friendly.  After buying a component cable for my DVD player to rule out any problem with the TV, I called Microsoft for a second time.  Again, I was pleased with the access and this time they were able to solve the problem.  My TV was saying the signal from the component was unrecognized.  I was unable to try changing the HD setting on the XBOX because no picture would appear, and if I used a different connection from the XBOX, the HD settings were disabled!  Seems the key was to plugin the component but ALSO plugin the yellow composite cable so the XBOX detected component, enabling the HD settings, and I could get a video signal to the TV using the yellow composite cable.  After changing the HD setting to 720p or higher it worked. 

I always said I wouldn’t buy an XBOX 360 until I could hook it up to a HD TV. Boy, was I right.  HD gaming is beautiful and the only way to go.

Gears of War has been a blast.  Again, playing the campaign co-op with David is a huge bonding experience and the game is terrific.  BTW, there is a setting to turn off Extreme Content.  It earns it’s M rating with extreme violence (what do you expect with a chainsaw attached to you rifle?) and mature language  (several F-bombs).  We also hook up with Ed in the evening.  Being able to play co-op with a friend online using headsets is a great experience as well since there is no split-screen.  Co-op only works with two people. I wish it supported more.

Xbox360eliteSo the XBOX Elite has been officially announced.  I think the price is great if you’re buying new.  For an extra $80 above the price of the premium you get the bigger hard drive ($179 sold separately), you get new HDMI cables (not that big a deal, though there is disagreement from some, consensus is that it is equivalent to component), and you get a transfer cable to move your content between the old and new HD.  The console itself is black and I’m sure it is sweet.  There is really no new features, it’s all packaging and accessories which I could get for my 360 so in that respect, current owners shouldn’t feel left out.   It’s silly to whine about being left behind.  There is ALWAYS something better around the corner in every electronic device you buy.  The fact they did not lower the price, but make the new skew a great bargain makes this announcement a win win for old and new fans alike.

Lifestyle Businesses

Lifestyle Businesses

Aaron talks about and points to a good article about Lifestyle Businesses.

How much money does a person need after all?  After a few millions or even 12 million (for a 50k monthly income at %5 return) as mentioned in the article, it seems you’re just greedy to go after more for yourself.  Now making more for your employees is another thing.  I think the disparity between the lowest paid employee and higest paid is obscene in most companies.