So in my ongoing desire to lower my self-worth, I’m trying to learn to play the piano. Now, it’s not concerted effort yet at all but I have some musical ability, I could play the piano once, and so I’m toying with it off and on (mostly off). I mention this because I’ve had the thought before that James Tauber writes about, i.e. that programming and jazz have a lot of things in common. It’s interesting to see the number of other programmers who are also musicians in their free time.
I think that one of the key concepts the two disciplines have in common is the need to have an extremely solid basing in the fundamentals before any higher order ability becomes available. In jazz, musicians spend countless hours learning scales, music theory and history before they ever transcend to that next level of being able to create abstractions from the music. It’s fundamentally the same in programming. I’ve been programming professionally for almost 8 years now and what bothers me is how often it feels like the fundamentals change. I think that might be because, unlike in jazz, where scales and music theory don’t change every 2 years, programming platforms seem to. Some would argue that platforms aren’t fundamental and to a certain degree, that’s true. But when all your work is done on a given platform, it becomes the fundamental. It’s hard to ever achieve a level of proficiency when things change frequently.
Rob Walling writes that he figures it’s taken him “hundreds of hours” to develop the blogging acumen he currently has. Hundreds of hours is exactly the kind of dedication jazz musicians and top programmers put in. Of course, when you put hundreds of hours into something, you’re taking those hours from somewhere else. I think that’s my main problem (but not point, I clearly don’t have one of those today), I have a hard time deciding that I want to spend hours on one thing over another thing.
I’m ready for the Matrix. Just plug me in.
In other news, SomaFM.com kicks ass. It’s great trance music and is awesome to code to. Go check it out and donate some cash if you can spare it.
It’s a dirty little secret but but there really is a big glaring hole in the whole agile software movement in large American businesses and this guy nails it. The businesses built around the software that most agile teams write aren’t actually agile at all and that’s important. The agile teams I’ve worked on have been small and isolated to the team and possibly a couple of supporting managers. The enterprise as a whole isn’t agile and because it’s not, agile typically fails to deliver what it promises. As that article says, you have to “embrace continuous integration of the enterprise” for agile to succeed and American business isn’t ready for that. A 2 month QA cycle at the end of the project isn’t agile. One month of preparing for deployment isn’t agile. At its heart, agile is successful when the entire operation is agile. Toyota didn’t revolutionize car manufacturing through Lean by applying it to hybrid engine design. It was the total company.
Don’t get me wrong, I’m still a big fan of agile. But in my meager experience with it, if the enterprise isn’t agile, the team isn’t really agile either. They’re just pretending. There’s plenty of benefits to that pretending but the real gains from agile aren’t being recognized. In the end, the pretending sabotoges the entire process. If you can’t ship at the end of the sprint, you aren’t really “done”. If you can’t hand the product to a customer and say “Happy working”, you aren’t really “done”. Continuous integration of the enterprise really is important and it’s so difficult to do that inertia takes over. With that kind of weight sitting on top of a team, the agile process is just a facade. It provides some protection to the team but it doesn’t provide the benefits it could. Maybe agile is just still way ahead of its time.
Here’s a fascinating little tool from Microsoft for teams who both have some standards that they code against and want to analyze how closely their code conforms to those standards. I haven’t given it a try yet but it looks like Microsoft has been using it internally for quite awhile and that definitely says something.
Code standards are often overlooked but they are important especially on teams > 1 because a common style makes it easier to not worry about such things as curly brace placement, spaces in parameter lists, etc. while focusing on what the code actually does. Teams without coding standards are less efficient than teams with them. Microsoft knows this and is doing something to help. I’m looking forward to giving the tool a try.
The Ingredients to a perfect Texas BBQ. And fittingly, I drink my coffee on BBQ day from the Texas Coffee Cup:
The Brisket went on at 10:10, current temperature in the smoker is 215 and now we smoke. It’s like a mission from God only better.
Let’s say you have a WCF web service with RESTful bindings that accepts complex objects and you’re having trouble figuring out why some of your properties and fields on the complex objects never seem to serialize properly. Maybe you’ve even popped open Wireshark and you know that the data is being put on the wire but for whatever reason, some of it never shows up on the server. It’s apparently random and not related to the data type of the field being serialized.
Well, my little frustrated hacker, try putting the fields in your complex object on the client side in alphabetical order and see if that doesn’t just cheer you right up. You see, the DataContractSerializer which is the serialization object for WCF serializes the data in alphabetical order. That’s just how it rolls. And part of how it rolls is dictating to the client what order their XML has to be in.
I’m sure there’s a reason for it. And I’d love to know what it is. Since I just spent 12 hours figuring it out. Part of me thinks it’s Microsoft giving REST the bird but never attribute to malice what can be explained by ignorance and all that. Meh.
So yeah. Quiet ’round these parts lately. I don’t really have an explanation for that. Well, I was on vacation. And we have a major backyard project that is underway and has to be complete by this weekend. Oh and I have a mad case of poison ivy that basically makes me cranky around the clock. But really, no explanation for the bucolic nature of this blog of late. It’s not like I don’t have ideas for writing stuff. It just never happens. Can’t really write in the morning since, well, since I have to get up at 5:holyshititsreallyearlyandidonotwanttogotowork45 to get to work and miss traffic because if I get stuck on the PGBT in a traffic jam again, people are probably going to die or my head will explode which is really a subset of the first. When I get home, hell, I don’t know where that time goes but lately it’s gone to the aforementioned backyard project.
So not much writing going on. I also stop writing when I’m not drinking as much and lately, I’ve been giving that a try to see how it affects my sleep habits. Aside from tonight, that’s been a success. I did upgrade wordpress and the new dashboard kicks ass. It always amazes me how easy it is to upgrade wordpress. I love it. What a phenomenal piece of software.
Also, there are things I probably think I want to write but that aren’t particularly suitable for a public audience. So when I feel like I can’t write everything, I tend to not write anything. Have I mentioned how horrible poison ivy is? Yeah. Bad stuff.
Do you know how hard it is to do open heart surgery? Damn hard I bet. I wouldn’t know because I’m not an open heart surgeon but I just bet it’s hard. Do you think you’d ever see an open heart surgeon working on a patient while a 5 piece rock band played in the corner? No, probably not. Open heart surgery is hard enough without making it more difficult by having David Lee Roth jumping around (JUMP!!) and Eddie Van Halen doing random riffs (Hey David, get the hell out, we’re bringing Sammy back). If you were the patient, would you ever pay for open heart surgery but tell the surgeon that he had to do the surgery in the third ring of the three ring circus while the lion tamer tamed lions in one of the other rings and the clowns did their act over in the other ring? No probably not because it would be senseless to pay an open heart surgeon a shit load of money to save your life and then make his job even harder by throwing 14 different distractions at him while he cut on your heart. Who would do that? Not me. Seems illogical. Totally bassackwards. If I’m going to give someone a shitload (in the vernacular of course) of money to do something, I want to make sure he (or quite possibly she) has the best chance of succeeding possible. I’m just saying.
Well, that’s really it for now. I have grand dreams of writing more but eh, I have lots of grand dreams and most of them just don’t really pan out. So here’s something to wet your whistle, so to speak.
I love Pandora.com. On my Slaid Cleaves station, I just heard Ray Wylie Hubbard, the godfather of Austin alt-country scene followed by Burl Ives singing Pearly Shells (Yup, Burl Ives) followed by the Lost Immigrants. Now if I could just get Pandora.com in my car, my life would be totally complete.