D'oh! I let this one languish for a while. My Stickyminds column on Aesthetics, the last branch of philosophy I'm exploring in the Philosophy & Testing series, went live back on 31 Oct.
Ada Lovelace Day: Audrey Tang (鳳たん)
Oct. 7th, 2011 03:03 pmAudrey Tang is far and away the most awesome hacker I've ever had the privilege to have worked with. She's best known for creating Pugs, a perl6 implementation in Haskell. Though it's now semi-retired in favour of the newer implementations that it had a role in inspiring, it represented a huge leap forward and a quantum shift in Perl6 development at a time when enthusiasm around Perl6 was sorely flagging. She was the first CPAN contributor to have uploaded 100 modules. She's the key figure behind Perl 5's internationalization, as well as the i18n of many, many other individual pieces of software. She was part of the committee that designed the Haskell 2010 standard, and has made innumerable other contributions to the open source community.
I never got seriously involved with Pugs, but many of the things Audrey did with it shaped my thinking around open source, community, and how we should collaborate. First was the idea that a project should be optimized for fun (-Ofun1), not for control, or strict adherence to the founder's vision, or anything else. Second, whereas many open source projects keep a very tight rein on who has commit access and make getting a commit bit an arduous process, Audrey aggressively gave out commit bits to anybody who happened to wander by in the general vicinity of Pugs. Got a great idea? Here's a commit bit, go implement it. Notice something missing in the docs? Here's a commit bit; go add it. Ranting in IRC that something's not working? Here's a commit bit; go fix it. Extending this trust makes people feel welcome and want to contribute. It fosters an air of community instead of making prospective new participants feel as though they are looking at climbing (or worse, building) a pyramid.
Audrey would likely demur at my calling her brilliant, but it's a fitting descriptor for her. She has a unique and penetrating insight into code and an uncanny knack for encouraging the people who write it. I count myself as fortunate to have been able to work with her and to be part of a few of the communities she's had such a profound impact on.
1 -Ofun: -O is the compiler option that tells it how you want your code optimized. Audrey's presentation on -Ofun [pdf] talks more about how to maximize the amount of fun in your software project.
Ada Lovelace Day is an international day of blogging about women in science and technology. You can find more information at the Finding Ada website.
Logic and Software Testing
Sep. 26th, 2011 08:50 amMy latest StickyMinds column: Logic and Software testing.
As technologists, I think we often fail to consider that most everything we do has two sides to it: a technical side, and a human side. Similarly, the digital logic that underpins how computers work is first to mind when we mention logic in the context of software testing, but there's another equally important aspect of logic in software testing: using informal or persuasive logic to reason with other people. Dealing with zeroes and ones is part of our jobs, but so is arguing that a certain bug needs to be fixed, that one feature should have priority over over another, or that a proposed solution should be rejected as unsuitable.
I'm happy to note that my latest article has gone up on StickyMinds. This one's on Epistemology & Software Testing.
This one was actually a bit arduous to write, because it went off in a very different direction from where I initially thought it'd go. The pieces that do that can end up being the most illuminating ones, though.
LinkedIn's Underhanded Privacy Fail
Aug. 11th, 2011 09:30 pmAs you may or may not have already heard, LinkedIn recently added a new "feature" that allows them to use your name and image in their advertising. It is turned on by default, with no direct notification to the user that it has been added and activated.
This is an abuse of your trust. It is wrong.
You have authorized LinkedIn to do a certain set of things with your data, but they have gone and done something else with it; something to which you haven't consented. It is as though someone had asked to borrow your car to go grocery shopping but then took it bar-hopping instead.
It would be bad enough for any website to do this, but LinkedIn isn't just any social networking site -- it's a professional networking forum. Your presence on it is a living résumé. LinkedIn is the custodian of your professional reputation. Shouldn't they be handling it a little more respectfully than this?
What they should have done is to ask first, with the default being 'no'. Presumably, they knew that most people would either answer no if presented with this choice, or not answer at all -- thus removing the majority of their user base from this program and largely eliminating the additional ad revenue it would bring. This is a move that smacks of desperation; of a company that is ruthlessly trying to wring every possible cent of ad revenue out of its subscriber base.
I'm participating in one event that's using LinkedIn to organize, but after it's done, so is my LinkedIn account.
Thanks for coming out, LinkedIn.
StickyMinds Column: Testing Metaphysics
Aug. 5th, 2011 02:56 pmWhoops! Forgot to make an entry here when this went up. I had the Stickyminds Weekly Column back on 30 May 2011 with the article Testing Metaphysics.
I've got the front page of StickyMinds.com this week with a column on Ethics & Software Testing.
I would have loved to delve more into the foundations of ethical thinking and some of the ideas people have articulated about how to best "solve" ethical dilemmas, but the length and focus of the piece doesn't really permit. Maybe that's something for the future. =)
I neglected to post this at the time because I was enroute to Drupalcon Chicago 2011 when it went live, but -- I had the StickyMinds.com weekly column for 7 March 2011: Philosophy and Software Testing.
Distinto, Diferente
Feb. 20th, 2011 02:59 amI love this song by the Afro-Cuban All Stars, and not just because it has a great beat. (lyrics)
|
Yo le puse el corazón // también le puse la mente // y el producto resulto // bien distinto y diferente. |
I put my heart into it // and also my mind; the product that results // is very unique and different. |
A lot of the value I bring to a test team (or indeed any team) comes by virtue of being different -- of bringing a different life experience, different perspective, and different set of skills to the table.
To take one example, I interact with the Internet through a medium that's very different from that of most people. I use Linux and other open-source software well-nigh exclusively, often via a textual interface. I read mail with mutt, chat with people using irssi, and tweet using ttytter. For many years I browsed the web using lynx simply because my outdated pittance of a computer couldn't handle anything more demanding. Even now, my default view of the web doesn't include javascript, java applets, or flash. A lot of things fall apart when the assumptions that they're developed under crumble.
To take another angle, I've worked as a programmer, sysadmin, and a tester in recent memory. While I'd likely lose out on a kernel hacker job to someone who's spent the last 20 years coding in C, small shops (like the one I'm in now) really appreciate having someone around who can kick servers together, debug CMS modules, and come up with testing tools for the open source project we're hacking on. So it goes with other aspects of my background -- knowing i18n and a few snippets of Japanese because of my time as an exchange student; being sensitive to the ethical ramifications of a piece of software on account of my background in Philosophy; thinking things out in terms of concepts, theories, principles, and strategies, because that's simply how my mind works.
It may be presumptuous to think that you can be the best programmer in the entire world, or the best tester, or what have you. But you can be the best you in the world; the best at at offering the unique set of skills and perspectives that only you have. Though I endeavour to give my best, I'm not so presumptuous to think that I am the best. But I hope you will always find my work distinto; diferente.
Obviating Certification
Nov. 1st, 2010 12:46 amSo far, I've studiously avoided addressing the morass that is the certification debate, but I wanted to respond to Chris McMahon's "Ignoring Certification -- With Numbers". In doing so, I started thinking about what kind of professions we certify, the ways in which we certify, the rationale for certification, and so forth. This, however, is exactly the kind of detailed analysis that gets dragged down into the Certification Muskeg. Instead I will leave you with these three assertions:
First: We don't certify authors, yet we generally manage to figure out if they are any good or not. Stephen King didn't sit an Authors' Board examination before writing his novels. Similarly, Jeri Ellsworth didn't get a benediction from the Electronic Industry Alliance before creating the C-One. And despite the lack of an Electric Guitar Certification Council, we somehow clued into the fact that Jimi Hendrix was creating something powerful and innovative.
Second: Currently, there exists no entity with the technical or moral authority to administer a software testing professional certification. We have nothing akin to a College of Physicians and Surgeons or a Council of Professional Engineers. In no small part, this is because humanity's understanding of the field of software[n] is so incomplete and so immature as to prevent an impartial, vendor-neutral certification from existing. Without a consensus around what constitutes good testing or a good tester, how can we certify anyone as a Software Tester in the general sense, as opposed to someone who's merely familiar with how some organization thinks testing should be done?
Certifying software testers in this day and age is akin to certifying nuclear scientists in the 1890s. We need to be growing our understanding of our field substantially, not dwelling on the tiny sliver of it we think we know.
Third: It is human nature to fight the battles that are placed before us instead of looking for the ones we should be fighting. We often start coming up with answers before checking to make sure we are asking the right questions. This is a mistake of the highest order. Fighting meaningless battles is a waste of our time, energy, and karma. Our goal isn't to fight -- it's to win. Slugging it out in the wastelands of the world is a benighted thing to do and an absurd thing to strive for; far better to leave your foes in the wastelands while marching on to your objective.
[n] I would argue that this is true of software creation as a whole, and not just of software testing.