Friday, September 21, 2012

Conflict


The other day, in a conversation about conflict in the workplace, I said,
“Conflict is usually a matter of differing expectations.”
That is, each side was expecting a different process, a different set of rules, a different outcome, or whatever.  Quite often, these can be resolved by resetting everyone’s expectations.
I said it off-the-cuff, but I think it is useful.

Friday, September 16, 2011

Testers: Get Out of the Quality Assurance Business

http://www.developsense.com/blog/2010/05/testers-get-out-of-the-quality-assurance-business/

This is a terrific article, worth repeating a section of it:

So:  you want to have an influence on quality, and on the team.  Want to know how to influence the programmers in a positive way?
  • Tell the programmers, as James suggests in the interview, that your principal goal is to help them look good—and then start believing it. Your job is not to shame, or to blame, or to be evil. I don’t think we should even joke about it, because it isn’t funny.
  • You’re often the bearer of bad news. Recognize that, and deliver it with compassion and humility.
  • You might be wrong too.  Be skeptical about your own conclusions.
  • Focus on exploring, discovering, investigating, and learning about the product, rather than on confirming things that we already know about it.
  • Report what you’ve learned about the product in a way that identifies its value and threats to that value.
  • Try to understand how the product works on all of the levels you can comprehend, from the highest to the lowest.  Appreciate that it’s complex, so that when you have some harebrained idea about how simple it is to fix a problem, or to find all the bugs in the code, you can take the opportunity to pause and reflect.
  • Express sincere interest in what programmers do, and learn to code if that suits you. At least, learn a little something about how code works and what it does.
  • Don’t ever tell programmers how they should be doing their work. If you actually believe that that’s your role, try a reality check: How do you like it when they do that to you?
Want to know how to influence the managers?
  • Provide them with the information they need to make informed decisions, and then let them make the decisions.
  • Remain fully aware that they’re making business decisions, not just technical ones.
  • Know that the product doesn’t necessarily have to hew to your standard of quality.
  • It’s not the development manager’s job, nor anyone else’s, to make you happy. It might be part of their job to help you to be more productive.  Help them understand how to do that.  Particularly draw attention to the fact that…
  • Issues that slow down testing are terribly important, because they allow bugs the opportunity to hide for longer and deeper. So report not only bugs in the product, but issues that slow down testing.
  • If you want to provide information to improve the development process, report on how you’re actually spending your time.
  • Note, as is so commonly the case, why testing is taking so long—how little time you’re spending on actually testing the product, and how much time you’re spending on bug investigation and reporting, setup, meetings, administrivia, and other interruptions to obtaing test coverage.
  • Focus on making these reports accurate (say to the nearest five or ten per cent) rather than precise, because most problems that we have in software development can be seen and solved with first-order measures rather than six-decimal analyses derived from models that are invalid anyway.
  • Show the managers that the majority of problems that you find aren’t exposed by mindless repetition of test cases, but by actions and observations that the test cases don’t cover—that is, by your sapient investigation of the product.
  • Help managers and programmers alike to recognize that test automation is more, far more, than programming a machine to pound keys.
  • Help everyone to understand that automation extends some kinds of testing and greatly limits others.
  • Help to keep people aware of the difference between testing and checking.  Help them to recognize the value of each, and that excellent checking requires a great deal of testing skill.
  • Work to demonstrate that your business is skilled exploration of the product, and help managers to realize that that’s how we really find problems.
  • Help the team to avoid the trap of thinking of software development as a linear process rather than an organic one.
  • Help managers and programmers to avoid confusing the “testing phase” with what it really is: the fixing phase.
  • When asked to “sign off” on the product, politely offer to report on the testing you’ve done, but leave approval to those whose approval really matters: the product owners.
Want to earn the respect of your team?
  • Be a service to the project, not an obstacle. You’re a provider of information, not a process enforcer.
  • Stop trying to “own” quality, and take as your default assumption that everyone else on the project is at least as concerned about quality as you are.
  • Recognize that your role is to think critically—to help to prevent programmers and managers from being fooled—and that that starts with not being fooled yourself.
  • Diversify your skills, your team, and your tactics. As Karl Weick says, “If you want to understand something complicated, you have to complicate yourself.”
  • As James Bach says, invent testing for yourself. That is, don’t stop at accepting what other people say (including me); field-test it against your own experience, knowledge, and skills. Check in with your community, and see what they’re doing.
  • If there’s something that you can learn that will help to sharpen your knowledge or your senses or your capacity to test, learn it.
  • Study the skills of testing, particularly your critical thinking skills, but also work on systems thinking, scientific thinking, the social life of information, human-computer interaction, data representation, programming, math, measurement
  • Practice the skills that you need and that you’ve read about. Sharpen your skills by joining the Weekend Testing movement.
  • Get a skilled mentor to help you. If you can’t find one locally, the Internet will provide. Ask for help!
  • Don’t bend to pressure to become a commodity. Certification means that you’re spending money to become indistinguishable from a hundred thousand other people. Make your own mark.
  • Be aware that process models are just that—models—and that all process models—particularly those involving human activities like software development—leave out volumes of detail on what’s really going on.
  • Focus on developing your individual skill set and mindset, so that you can be adaptable to any process model that comes along.
  • Share your copy of Lessons Learned in Software Testing and Perfect Software and Other Illusions About Testing.

Monday, July 11, 2011

Fully fledged from the mind

Even though I now recognize it, I am still afflicted by it: I have this notion that creative works spring fully fledged from the mind of their creator.  So why do I care?  Because it taps into my inability to be creative.  That is, I expect that if I wish to create something new that I will need to map it out to the nth degree before proceeding.

That notion is, of course, poppycock.  I have seen it refuted in writing music (when I worked in theater), and in completing crafts (my wife).  I have experienced it myself while doing some computer programming, and even when cooking.  None of us is Mozart, who in the movie Amadeus says, "It's all up here, I just need to write it down."  Most creation is an iterative process: a framework, some details, flesh it out here or there... Give yourself space to experiment.  Do not be afraid to throw it away and start over.  Add things to see what happens, and if they work, great; if not, try something else.  Then cut, edit, cut, edit, cut, edit until it is right.  1% inspiration, 99% perspiration.

Now this may seem obvious.  It may feel unnecessary to be stated.  Duh.  But still, my default mode of thinking is that I have to be perfect the first time, and that leads to apathy (why even start?) and anxiety.  I know that I am not the most creative person(1), but working past this mindset helps me to get things done: writing a test plan, cooking a meal, or editing a blog.



(1) I am actually not very creative at all.  I am very good, however, at synthesizing what others have done, with the occasional appearance of something new.  But I rarely come up with truly original things.  I think it may be an INTP side effect.

Wednesday, June 29, 2011

Italian-esque Soup, a variant

1 lb. sweet Italian sausage, broken up
1 lb. ground beef
1 15oz can tomato sauce
1 15oz can crushed tomatoes
1 8oz can tomato paste
1/2c red wine (chianti)
2c chicken broth
2 tbsp red wine vinegar
1 large sweet vidalia onion , diced
3-4 clove garlic, peeled and chopped fine
1 tbsp Italian Seasoning
1 tbsp basil
2 tsp oregano
1/2c pasta shells
1/2c rotini pasta
2 large carrots, peeled and cut into discs
2 stalk celery, diced
1 sm can corn
1 sm can green beans
1 15oz can kidney beans

Brown the Italian Sausage in a skillet and transfer to stewpot.  In the same skillet, brown the ground beef and transfer.  Again in the skillet, cook the onion and garlic on low heat until softened, and then add to stewpot.  Stir all the tomato ingredients into the stewpot, with the wine, vinegar and chicken broth, and set to medium heat.  Stir in the spices (Italian, basil, oregano) and cook until bubbling.  Transfer to slow cooker (or reduce heat to low), and add the pasta and vegetables (all remaining ingredients) and simmer on low heat for several hours, stirring very occasionally.

Thursday, June 02, 2011

A modest proposal

Longtime readers of this blog(1) know that I don't care much for my job.  I feel stupid every day, and it gives me real, physical headaches.  Being overpaid does not in fact help, but makes it worse - it feels like I am set up for a 'bigger they are...' ending.  Oh well. 
I was having one of those conversations with my wife - the ones where I know when launching into it that it is going to go badly for me - wherein I tried to let her know, very clearly, how unsatisfied I am with my current employment.  She pointed out, very rightly, that I have never had a job that I was truly satisfied with, and I agree with her on that(2). At one point, though, she said something very interesting: I could try being a 'house husband'.  But, she said quickly, I probably would not like that very much.

Since then, this has been rolling around in my head.  What would it mean exactly?  Far less money coming in, for one.  Yet when I mentioned it at the time, she said, well, probably only $20,000-$30,000 less per year.  How's that?  Well, she figured, we wouldnt need to pay for the pre-and after-care for the girl at school, or all the summer stuff we have her signed up for; we would not need to pay to get the house cleaned (because I would of course be filling that role), and so on.  Ok, I can see all that, but it still seems pretty insignificant.  I started thinking that probably we would spend less on food, because I could use it more effectively (cooking decent meals, something I like to do) and would not eat out as much.  Hmmm... if there were some sort of thing that I could do part-time, either at home (internet something?) or nearby, that would generate $20-$30k per year, I might be able to pull it off.
Would I like it?  I think so.  Actually I do.  I always have a good time getting things done during the day, when I have time off or such.  I don't mind cleaning, dishes and all that.  I could finish those little repair projects that are stacking up. Maybe an hour reading everyday, or time to do my Python lessons or whatever I am studying.  I like having time alone

So, why not?  Well, as I say, I am not sure that finances work out.  I would have to see some real numbers on what we might save.  And I think some sort of part-time is necessary, but could not be volunteer work, would have to be for $$, which leaves, what?  Retail?  Stuffing envelopes?  Also, the biggest problem is that I am an incredibly lazy person.  I could see myself sitting around a lot, or wasting a ton of time on the internet, or generally dithering.  And I tend to spend money when I am left to my own devices, which could make the problem worse (3).
I would like to examine it more.  I will think on it (that's what I do best!) and maybe come up with some numbers, and keep my eyes open for part-time opportunities - if I could do some light testing at home, that would work great.  I could clear out some of the junk, getting it on to eBay or wherever. 

(1)  All zero of you.
(2)  Actually, I was the one who told her that, but it is nice to know that she remembers it.
(3)  Although I have been pretty good about only spending my 'own' money, the part I reserve from my paychecks.  And just today, as I have paid off almost all of my Christmas and birthdays debt, I upped the amount that I contribute to the common fund.

Thursday, February 17, 2011

Crow Augury

I have no idea where it started, but there are many variations on the 'counting crows' rhyme. I first learned it as:
One for sorrow, Two for joy
 Three for a girl, Four for a boy
 Five for silver, Six for gold
 Seven for a secret never to be told.
That is the version used in the song "A Murder of One" by Counting Crows, and undoubtedly where they got their name.

A variation reported from Maine:
One crow sorrow,
Two crows joy,
Three crows a letter,
Four crows a boy.

Many other versions exist, from various regions. These below come from user Kerrie posted on surlalunefairytales.com:

Counting Rhyme
(from The Folklore of Birds, by Laura C. Martin, 1993) 

 One for sorrow, two for mirth,
 Three for a wedding, four for a birth,
 Five for silver, six for gold,
 Seven for a secret not to be told.
 Eight for heaven, nine for hell,
 And ten for the devil's own sel'.

Counting Crows (Emailed to me by a 'Net acquaintance) 

 One for sorrow,
 two for joy,
 three for a girl,
 for for a boy,
 five for silver,
 six for gold,
 seven for a secret,
 never to be told,
 eight for a wish,
 nine for a kiss,
 ten for a time
 of joyous bliss.
 

Magpie Rhyme (from Bird Brains, by Candace Savage, 1997. 
The Rhyme she quotes is from The Dictionary of Superstitions, 
published by Oxford University Press in 1992) 

 One for sorrow,
 two for mirth,
 three for a wedding,
 four for birth,
 five for rich,
 six for poor,
 Seven for a witch,
 I can tell you no more.

Counting Rhyme (another from an email acquaintance) 

 One crow sorrow,
 Two crows mirth,
 three, a wedding,
 four, a birth,
 five brings silver,
 six takes wealth,
 seven crows a secret,
 More I can nae tell.

Counting Crows (again, from an email acquaintance) 

 One for sadness, two for mirth;
 Three for marriage, four for birth;
 Five for laughing, six for crying:
 Seven for sickness, eight for dying;
 Nine for silver, ten for gold;
 Eleven a secret that will never be told.
 
A third found in Brewer's Dictionary of Phrase and Fable is: 
 
 One's sorrow, two's mirth,
 Three's a wedding, four's a birth,
 Five's a christening, six a dearth,
 Seven's heaven, eight is hell,
 And nine's the devil his old self.

And there is this page within the oldwivestales group on Yahoo:
The practice of Augury has been around for centuries. It is about predicting the future by counting the number of crows present at significant times, Sometimes the direction of their flight is significant, or the time of day at which they are seen. Complex rules have been drawn up by some augurist, while simple rhymes are used by others.
The basic rhyme, which goes something like "One for Sorrow, Two for Joy.." has been a popular children's chant off and on through the years. It has recently been made popular again by the band Counting Crows, which has put the rhyme to music.
Crow augury may have started off as Magpie augury. The oldest rhymes, including at least one dating to the 1600's, deal with counting magpies rather than crows.
The magpie rhyme seems to have been left on European shores, though. In North America, most people who know the rhyme use it in reference to crows.
Various version of the rhyme exist,but the basics are as follows:
  • One: Sorrow. An unhappy event. A change for the worse. Maybe loss or a death.
  • Two: Joy. A surprise. A change for the better. Sometimes the finding of something.
  • Three: Marriage. A celebration. Sometimes the birth of a female child. Other times some significant event around a daughter.
  • Four: Birth. Usually the birth of a male child. Sometimes a significant event surrounding a son.
  • Five: Silver. Sometimes costly. Usually a positive transaction.
  • Six: Gold. Wealth. Sometimes money. Maybe greed. Occasionally a negative transaction.
  • Seven: Something of spiritual significance. Often a secret. In some cases witchcraft, or the performing of sacred rites.
  • Eight: Something profound. Death, dying, or a glimpse of Heaven. A life-altering journey or experience.
  • Nine: Something sensual. Passion, or forbidden delight. In some versions this is corruption, in others it is closer to temptation.
  • Ten: Something extreme. An overwhelming sensation. Something paid in full.
  • Eleven: Uncertainty. Waiting. Wanting. May be in relation to a spiritual matter.
  • Twelve: Fulfillment. Riches (though not always of a material sort). A fruitful labor. Something completed. An end to a problem,or the answer to a question.

And another European version:

One's lucky,
Two's unlucky,
Three is health,
Four is wealth,
Five is sickness
And six is death.