07.01.09
Posted in Apple, News, Software Development at 2:13 pm by Pablosan
Back in August, 2008 you may remember a series of posts covering my signing up for the iPhone Developer Program. I finally gave up on my updates because… well, the posts would have been redundant: “still nothing.”
While wrapping things up in Buenos Aires, I received an interesting email from Apple. The email contained an iPhone Developer Program Activation Code! The email arrived on 25 June. On 26 June, after completing the online process, I received another email from Apple with the following banner:

Certified iPhone Developer!
Woohoo! I’m certifiable (like I needed Apple’s confirmation to prove THAT)! Now, what did I do with that iPhone app, completed 10 months and 10 days ago…
Permalink
06.13.09
Posted in Journal, Travel at 10:25 am by Pablosan
One of the things I really enjoy about visiting other countries is learning their language. This is not an academic exercise filled with parts of speech and verb conjugations, but learning the colloquial language: idioms, slang and the like. I enjoy trying to understand these nuances and come up with a dynamic equivalence translation to my native tongue.
I made a fascinating discovery in a conversation with one of my colleagues here in Buenos Aires. He came to a point where he was having difficulty translating a word because he was confident the literal translation of the Spanish word “piojoso” would be meaningless to me. So he started explaining that the root word, “piojo”, is the bug that gets in your hair. “Oh, you mean lice?” Someone else confirmed that, yes, lice was indeed the bug. He continued explaining that, when something was old, run-down, dirty, unpopular, etc. they would say it is “piojoso”: lousy.
We probably don’t think about it much anymore, but lousy literally means “filled with lice”, which is exactly the same literal meaning of piojoso. And, just like us, Argentinians no longer associate piojoso with lice. It has taken on its own meaning in both languages, and that meaning is identical in both languages.
How did that happen? Is it just coincidence? If not, who came up with it first and how did the languages get cross-pollinated? They are both romantic-languages and, therefore, share a common heritage. According to Words, lousy in Latin is pediculosus, pediculosa or pediculosum, but does it have the same connotation? I have no idea, but I find it to be a fascinating mystery!
Hmmm… maybe I should become a linguist when I grow up!
Permalink
05.23.09
Posted in Journal, Travel at 8:38 pm by Pablosan
I’ve had the displeasure of dealing with American Airlines over the past few days. I have been making plans for an upcoming business trip, as well as attempting to use my AAdvantage Miles for some summer travel to visit family.
Any of you who have had to deal with this mess of a company will, like me, avoid using their web site at all costs. It has to be one of the worst user experiences on the Web. I’m not the only one who thinks so, and I think Dustin comes to the right conclusion:
At the AA annual shareholder meeting yesterday morning, Mr. Arpey said the company is “taking efforts to improve customer service”. I think this is a shortsighted goal. AA should take efforts to improve the whole customer experience. AA suffers from deficits in every aspect of its business. The website is a horrid abomination, the customer service is generally — infamously — bad, and the casual travel market is practically ignored. The customer experience, from start to finish, for every interaction a customer has with the company is not perfected. That’s where the problem is.
“not perfected” is quite the understatement, in my opinion. My latest call to American Airlines’ AAdvantage Platinum support line is yet another example of this. As a frequent traveler calling what should be their top-tier support personnel, I was greeted by a surly, curt, unpleasant representative and hung up the phone incredibly frustrated.
Oh yeah… and those frequent flyer miles? There are so many restrictions and extra fees that I ended up finding another way to book my travel. So it looks I’m sitting on a mountain of worthless miles from a company that doesn’t care: not even about their most loyal, spendy customers.
It is WAY past time to take my business elsewhere!
Permalink
04.09.09
Posted in Journal, News, Software Development at 1:02 pm by Pablosan
I know this news is somewhat old, but I just ran across it last week. I have known that IBM announced a round of aggressive layoffs in North America. What I didn’t know is that they are “offering outgoing workers in the United States and Canada a chance to take an IBM job in India, Nigeria, Russia or other countries.”
It seems that this news has garnered it’s fair share of “simple solutions” and accusations of Naziism (speaking of simple solutions, Steve Yegge has some interesting thoughts).
As is usually the case, I find myself at odds with the “common wisdom.” Maybe I have a unique perspective, but I’m probably just being contrarian. At any rate, I don’t find this offer offensive. From my vantage point, nothing has changed and this is nothing new. Professional careers in IT for U.S. workers have been on the decline for some time now (”some time” being… oh, I don’t know… a DECADE or more). Moreover, sending U.S. citizens off to foreign countries to earn their keep has been going on for far longer than the aforementioned decline. The only difference I see is that IBM has chosen to be open and honest about the practice. I applaud them for their candidness.
I like the idea of having one more option. It doesn’t sound to me like anyone is being forced to accept a position overseas, and I’m sure there are some who would jump at the chance to spend a little time abroad at the company’s expense. Why not look at it as an opportunity, with pros and cons, just like every other opportunity? I have friends at my current company who have quite enjoyed having their relocation costs covered and are now living an extravagant lifestyle by our standards, albeit on another continent.
Is it ideal? No, it’s life. Make the best of it.
Permalink
02.15.09
Posted in Apple, Journal, News, Travel, Uncategorized at 12:40 pm by Pablosan
Leading up to Christmas and her birthday, my eldest daughter had been asking for a new computer. She has been using a hand-me-down Titanium Powerbook (the G3, 500 MHz version), which is still in perfect operating condition, but runs a bit slow. So, for her birthday and not knowing for sure how I wanted to handle it, I gave her a “Free Computer Upgrade” coupon. Yes, it was a bit of a copout, but I had my reasons: primarily I wanted to wait for MWSF, to see what Apple might have up their sleeve.
A couple weeks later I had made my decision: buy her a netbook. So Karyssa and I sat down together to order an HP Mini 1000. Over the next week or so, Karyssa and I looked for an email informing us it had shipped. The email finally came and we watched the progress of the package as it made its way from Shanghai, China to Dallas, Texas.
I was a little worried: concerned that maybe this wouldn’t work out. Once the netbook actually arrived, I was disappointed that it did work out. I knew within the first hour of her using it, Karyssa was very happy with her new computer… and I wanted one. I mean, there are a couple concessions (the screen can be a bit small for some things, and the keys on the keyboard are a shade smaller than standard keys), but it would easily handle the vast majority of my needs. And HP has done an incredible job putting a very slick UI on top of the standard Ubuntu Linux distro. The fit and finish of both the hardware and software — the way they complement each other — reminds me more of Apple than of HP.
My move to The Cloud will be complete when I switch to an HP Mini 1000. And at one third the weight and 40% the size of my 17″ Macbook Pro, it will fit incredibly well with my plans to travel light.
It’s time to start saving my pennies!
Permalink
02.12.09
Posted in Apple, Journal, News at 3:54 pm by Pablosan
I tried about a year ago: I’ve decided it’s time to try again.
Up until this week I’ve been using Apple’s MobileMe to keep my laptop and iPhone in Sync, even though I really prefer Google’s apps. Due in large part to a recent announcement, I was eager to make the move. As of last night, my transition is complete: my email, contacts and calendar are now all sync’ed to Google’s apps.
Real-time sync capability wasn’t the only feature missing, however. If I store everything up in The Cloud, how do I access it when I’m off the grid? Shortly after my first, failed Cloud Move Attempt, Google announced Gears as well as offline capabilities for Docs. In the last few weeks, Google completed their trifecta with the release of Gmail offline and Google Calendar offline. Ya gotta love Google! …well, mostly anyway.
Early reports suggest their are still kinks to work out of their latest offline offerings, but I fully expect these to be ironed out in a nice, iterative fashion, as is Google’s modus operandi.
In my opinion, offline data access is essential to the success of services in The Cloud. I may not always have internet access when I need access to my data.
So it begins… again. I may not make it, but I know it’s a lot closer to being ready this time than it was a year ago. So far so good!
Permalink
01.30.09
Posted in Agile, Journal, Software Development, Travel at 12:49 pm by Pablosan
The idea that constraints are constructive is not a novel one, by far. Study any of the arts and you quickly learn how artists use constraints to inform their creativity: jazz idioms, a painter’s choice of color palette or medium (oils, acrylics, water colors, etc.), an architect’s choice of materials, textures and shapes. Limiting possibilities is an essential part of the creative process. A Blues drummer once told me “It’s not just what you play that matters: knowing what not to play is what separates a good musician from a great one.” Lately, I’ve noticed this principle in three places that have surprised me.
Twitter
I’ve been using Twitter for about six months now. 140 characters of text doesn’t leave a lot of room to get your point across. It’s amazing the amount of clarity focusing on brevity can bring!
iPhone
It is no coincidence that the day I started using Twitter closely coincides with the release of the 3G iPhone. I finally had a mobile device that was actually usable for more than just phone calls. Many of my friends told me they were spending much less time on their computers because they could do so much on their iPhone. I did not expect that to be the case for me… and I was wrong. One might describe the iPhone as a laptop with a few, rather severe constraints: like the lack of a real keyboard, for instance. Much like the result of Twitter’s 140 character constraint, I find the lack of a real keyboard encourages me to keep my email responses small and poignant (hopefully you’re not wishing I would have written this blog entry on my iPhone!).
Travel & Packing
For my latest business trip, I decided that everything I needed for the trip had to fit in my backpack. I was doing my best to follow Andrew Hyde’s excellent example. I was very pleased with the added freedom packing lightly provided.
Over the past year I have been challenging software development teams and product management teams alike to start asking “what can we live without?” What features, enhancements, processes are not needed? What existing features can we live without? What’s not pulling it’s own weight? What is the customer ignoring or, worse yet, what are they working around.
Your product should not be like the ever-expanding universe. Learn how to use constraints to keep projects and products small and poignant! What you exclude from products and projects is as important as what you add.
Permalink
12.18.08
Posted in Journal, Software Development, Travel at 4:02 pm by Pablosan
I woke up this morning thinking about air travel: maybe because I’m currently working for a company in the travel industry. Maybe it is because I’ve been doing a lot of travel of late. Most likely, it’s a little of both.
The thought that came to mind was this: the problem with airlines today is that they focus too much on the destination and not enough on the journey. The effectiveness of an airline is measured by how many flights arrive on time. As a customer, though, what I will remember far longer is how enjoyable the journey wasn’t. This begins with finding flights and purchasing tickets, which is nothing short of pain on parity with a poke in the eye with a sharp stick. It continues with the Security Theater at the airport, the boarding process (cattle being herded into slaughterhouses are treated with more dignity), having my knees jammed into the seat in front of me for hours, getting off the plane (see previous slaughterhouse comment), and navigating labyrinthine airports, only to wait in line for a taxi or a shuttle. It is a wonder that the whole of the human race doesn’t simply refuse to use air travel: thank you, but I’d rather walk… barefoot… in the snow… uphill both ways… on razor blades.
As I mulled this over I came to realize this is a great analog to Software Development. The “destination” is obvious, as is the “journey”: they are the release and the development process, respectively. Much like the airline industry, most software development projects are judged entirely on the release: did we get all the features we wanted and were they delivered on time? This leads to a myopic focus on features: quantity with little or no substance.
The journey or process, on the other hand, is all about substance. Some might suggest it is also about maintainability, but I consider that a special case of substance.
Both the journey and the destination are important. Focusing too much on one at the expense of the other is unhealthy: taken to the extreme, it is dangerous. As with all things in life, finding and, even more difficult, maintaining a healthy balance between the two is key. This is hard. There is no methodology that can take the place of constant evaluation and simply using your head. As a good friend of mine is fond of saying “You have to think.”
This thought exercise has helped me solidify the three things in my career on which I want to focus:
- Substance: the journey is just as important as the destination.
- Delivery: get the right stuff implemented at the right time (i.e. GTD).
- Critical Thinking: no process, practice, methodology, etc. can take it’s place.
Permalink
12.11.08
Posted in Agile, Journal, Teams, Travel at 7:58 am by Pablosan
Today I am wrapping up my visit to London. It has been a great four weeks, though I’m anxious to be back home with my family. Having taught two, very full TDD Courses and coached several teams, I took some time this morning for a personal Retrospective, as my four-week iteration comes to its close.
Of course, while I am in my company’s London office there are still things to be done for the home office. At the top of that priority list right now is, as I’m sure is the case with so many companies in today’s economic climate, a cost-savings initiative. The goal is to have all our courses virtualized in 2009. The idea is that we could make the courses available to more people, more frequently, without incurring the cost of sending the trainers all over the globe. For a company with offices strewn across 5 continents this approach, at least on the surface, seems like a good idea. And, like a good employee that thoroughly enjoys what they do (and appreciates the opportunity to remain gainfully employed), I am giving this new approach a great deal of thought. If this is what I have to do, I want to make the best of it. However, stopping to think this morning, I realized that this move to virtual courses comes at a cost: reduced face time.
During these last four weeks it has been impressed upon me several times, and by several individuals here, that the home office’s willingness to send a “guru” (their word, not mine) to provide training and guidance sends a very strong message: the people here are important to the success of the company. This is quite significant, as this particular office is a part of the company I work for through an acquisition. It is quite common for the people in an acquired company to feel like undesirables. I have seen a shift in their attitude over the last four weeks: call it a spring in their step, the sense of the load being lightened, a renewed sense of belonging. However it is described, it is a very good thing. It is amazing how much more people will accomplish when they feel valued.
There is a second aspect that will also be lost through virtualization. I have made significant inroads in challenging individuals to shift their mindset in small groups over pints in pubs. Two individuals in particular were very opposed to some of the things I teach. I don’t think I changed anyone’s mind, but they are at least considering the possibility that the things I’m teaching might actually have merit. I am convinced that, for these people, that would have never happened in a classroom or in an office setting.
We are social creatures: even down to the most hard-core, introverted, “anti-social” computer geek. The fact that we need to physically be with other human beings cannot be ignored: it’s in our genes. And for this reason, I believe the virtual should enhance the real: not supplant it.
Unfortunately, it is quite difficult to assign a dollar value to these types of benefits and so it is easy for companies to eliminate them: wrong… but easy.
Permalink
11.26.08
Posted in Agile, Journal, Software Development, TDD at 6:04 am by Pablosan
There is a marked shift in the way a developer approaches their craft once they become test-infected. Instead of tests being an afterthought, if thought of at all, they become the starting point. Consistently… as in, always.
Here is how to tell when a developer has become test-infected:
- When researching a bug/issue, they first look for Unit Tests to guide them through the production code to the source of the problem
- When looking at code for the first time, they first look for Unit Tests to inform them as to how the code should function
- In the first two situations, if no tests exist, they write them
- In the first two situations, if tests exist but are not clear, they refactor them
- When unsure of the approach needed to add a feature or fix a bug, they first write tests to help them discover a good solution
- Once a bug has been tracked down and they know what they need to do to fix it, they first write a test that fails because the bug is there, fix the bug, and then run the test again to see it pass
- When they are faced with the need to refactor, they avoid changing production code until they are satisfied that test coverage will insure their success
- When asked by a colleague to take a look at code they’ve been working on, their first comment is “show me your tests”
- Their mindset toward testing shifts from “This cannot be tested” to “How might this be tested?”
All of this can be reduced to two, simple questions:
- Where are the tests? and
- What do they say?
So how are you doing? Is this the approach you find yourself taking? Do you find yourself looking for solutions or looking for excuses?
Permalink
« Previous entries