This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: Stupid Is as Stupid Does
Feed Title: Pollock
Feed URL: http://www.cincomsmalltalk.com/rssBlog/pollock-rss.xml
Feed Description: Pollock - the next VW GUI
A question was asked of me yesterday, "How do you feel now that people are starting to use/play with Pollock?"
I had been thinking of that lately. Several people have indeed started to play with Pollock, and have made some comments, reported some bugs, and even supplied features and tests.
I took most of this quite well, until... I got back a couple of comments/bug reports that made me react very badly, here in private. On one set of bug reports, my private reaction was to feel quite hurt. Then, on a comment, I felt attacked. It took me several hours to realize these were foolish reactions, and even longer to figure out where they came from.
First about the bug reports. When the bugs came in, they were in areas of Pollock that I had completed many months before. My I found, came from the thinking that the code was out there long enough that I didn't need to worry about it having bugs in it any more. Of course, that's irrational. The irrational hurt was accompanied by an equally irrational exasperation. Pollock has been in Beta for over a year now. Sometimes when I see a bug reported on old code, I get anxious. It just summons up these thoughts that there are 100X more bugs waiting to be found, and that because only a few people are looking at Pollock, they remain hidden.
The sort of interesting thing (to me), is that most reports, even on old code, don't upset me at all! Well, except to the extent that I feel stupid having created the bugs in the first place. I'm used to that reaction. Who of us in the software development industry isn't?
Then there was my private reaction to two comments. One comment was about how I have designed the Pollock model objects. You get an event notification before the value changes, and then one after it has changed (#changing and #changed respectively). It also has an event that gets triggered before the #changing event, named #aboutToChange. If you raise a specific exception, called VetoAction in response to being notified of the change that wants to take place, then the change will NOT take place, and the change is aborted. The other comment was about the fact that Pollock supports XML as an additional format for saving the specification of a user interface definition.
The first comment basically said the veto was a bad thing, and shouldn't be there. The second pointed out known pitfalls of having specifications in XML instead as literal arrays, since the latter is constructed with the same objects that we use for selectors, and thus automatically are included in our dynamic search tools, where the former would need to be transformed into objects from a string in order to participate. Because of these pitfalls, it was also suggested that it shouldn't be supported at all.
Boy, did I react badly to both of these comments. Fortunately, I didn't react publicly the way I felt privately. It felt like someone was taking potshots at my child, and I felt very defensive. After all, both of the features are options, one doesn't have to use them. Indeed, the XML will likely be only available as a non default option. But privately, the first reaction, to my Cats who always listen but never comment (thankfully), I swore and shouted. "WELL, JUST DON'T USE THAT!" is a reasonable approximation of the expurgated words I used.
Later, when calmer heads prevailed, I realized why I reacted that way. I've been discussing the design of Pollock for almost two years in public. The Blog here is a newer, but no less uncommon outlet for that discussion. I've spoken at 3 conferences and given 4 talks about Pollock.
But the bottom line is that in order to get going on Pollock at all, in order to not have analysis and design paralysis, I have had to assume the persona of expert. From the beginning, I have been working on Pollock by myself. I use this and other mechanisms, such as a Cincom mailing list, the Smalltalk IRC channel, and conferences to bounce my design ideas off of people in the community. Even so, it is up to me to weigh the various ideas, and come up with a conceptually coherent and cohesive design, and then implement it.
So, when I got the above comments, my private reaction amounted to a very childish: "How Dare You Question The All And Powerful OZ?"
Fortunately, a small cat (not a dog) came and pulled aside the curtain, and there I stood, just pulling levers and twisting dials, with nothing but the famous balloon that got me here to protect me from my private, but real, humiliation.