Category Archives: Guest Post

Show the Way, Then Get Out of the Way

First Steps Through a Coding and Testing Journey

As I drove up to the glass and steel office building in our town, I figured I would pick up my daughter, like I had from so many other school sponsored events. I’d ask her how her night was, she’d say it was “good” and then we’d have a little bit of small talk about her day. On this day, however, the response was not at all what I had expected. On this day, she had gone to a presentation being sponsored by Google and YouTube called “Made with Code”. It was meant to be an introduction to how computers control so many parts of our lives, from conducting traffic, managing trains and helping airliners take off and land, to business functions and fun things as well, including computer games, favorite applications, and the social media tools so many of the kids were familiar with. As she hopped in the car and I asked how her time was, this time, she answered back “it was amazing. There are so many things you can do!” She described a variety of the projects they demonstrated for her. Her breathless enthusiasm made me smile, but it also made me think. In this world that requires so much technical acumen, why shouldn’t I encourage her to learn as much as she wanted to about code and software?

Having been in the software testing world for twenty- four years, twenty one of those years officially holding a job title that had some connection to testing, I felt I’d be a great person to teach her about what it took to learn more about software testing. What struck me as an important perspective to focus on was to help Amber get excited about how computers work, not from a “users” perspective, but from a “makers” perspective.

Perhaps there might be some interesting “discoveries” and reactions from our two perspectives. We both decided to put some practice times into our days, and see if the concepts that I have been learning over the years are easily teachable, or if I might learn more from her interactions than she would from me. That process has had its fits and starts. We discovered that streaks are wonderful when they are established, and they can be motivating when they get going or build up a substantial amount of time. We also discovered that streaks can be big let downs when you find you have to break them, or if something forces you to shift gears. Sometimes, getting back into the swing of regular practice is as difficult as starting over.

For a young person looking to learn to code, frankly now is probably the best time in history, because so much free material can be accessed, played with, reviewed and used in real time, and much of it completely free or very close to free. Sites like Codecademy and Khan Academy have proven to be excellent for this purpose, especially when it comes to basic syntax and general details of languages. Together, we have chosen to focus on three areas; HTML/CSS, JavaScript and Python. Why those three? Well, pretty much any web interface today that allows someone to write or create something to post and share allows for editing documents in HTML, so knowing the markup tags for HTML and CSS felt like a logical first step. Since most modern web pages utilize a lot of JavaScript, which likewise made sense to be a next step. Why Python? Truthfully, I picked Python because it was the programming language I have to date had the least amount of experience working with that’s readily available and in use in many places. It felt reasonable to say “we could learn this together. I could help with broader concepts, but the syntax would be as new to me as it would be for her.

Through the past few months, we’ve learned a lot about each other’s work styles and approaches to solving problems. Additionally, we’ve learned what it feels like to approach an interest together that goes beyond a general hobby and resides outside of mandatory school work. Rather than have me explain all of this, I figured it might make sense to get Amber’s perspective and how she felt about taking this journey.

Make it Real, and Make it Fun
AL: Codecademy was helpful in that it had whole lessons on the basics and how to get started. I appreciated that each segment blended into the next, so that you could work on one step at a time. Several of the projects allowed me to make changes to what looked to be very advanced sites. My dad explained to me after I finished these sections that they were showing me frameworks (the one we worked on that I most remember right now is Bootstrap.JS). The ideas that were being taught were easy to grasp and I felt like I could progress fairly rapidly through a few of the projects, but I felt it was a bit too streamlined to use the framework. I’d make changes that would have dramatic effect on the look and feel of the site, and I didn’t think that would be possible with just a line of code being edited. My dad pointed out to me that a lot is happening under the surface to make it so a simple one line change would have such a dramatic impact, but yes, it was possible to have one line of code made such dramatic changes. The important part was to make sure that I understood exactly how much help I was getting from the system itself. Overall, it made what I was working on feel a lot more real than just writing up a text box and making sure I could put text in it. Feeling like I was actually editing AirBnB was pretty cool.’

Guide Me to Guide Myself
AL: One of the things my Dad tends to do that can be a little off putting is when he sits next to me and “helps” me with some of the assignments and examples. I like the fact that he can help me understand what is happening, but sometimes the “Dad Card” gets played too much. He can be a little to quick to tell me when I am doing something wrong. That gets frustrating. It makes me feel like I am not learning as well as i could. When the going gets hard, that’s when you really start to figure stuff out, but if my dad is too quick to help me, then I don’t really learn what I want to. We finally made an agreement that I would work on my own computer and that I would call him over only when I felt stuck or confused. While I appreciate his input, I told him I was not going to learn anything with him always hovering over me and telling me what to do.

Strive to be Consistent, But Don’t Beat Yourself up if You Can’t Always Be
AL: I will admit that keeping a streak running can show dedication or progress, but it can also give you a false idea of what you’re learning. I have several friends that have expressed interest in learning how to code, and some of my friends have said they’re interested, but haven’t really stepped up to do it yet. By keeping a streak going, I can help motivate them and encourage them to do some of the exercises with me. It’s also possible to do just one exercise a day, and keep a streak going forever, but move really slow. There needs to be a balance between getting points for what you do and learning enough to actually get what I am doing. The other challenge is that, at least with Codecademy, I feel like I am learning a lot about how to use the terms and tags, but I’m not learning enough about where I can actually use it. My Dad pointed out that tools like WordPress, Blogger and Tumbler allow him to have a public place he can show off stuff if he chooses to, and that many of the elements are completely adjustable using HTML, CSS and JavaScript. That availability gives me an opportunity to interact with tools I already know about and work on code in a real place. Doing rather than just reading is the critical part.

I’ve greatly enjoyed these past few months and watching my daughter learn about the various aspects needed to set up a site, use code to make pages or apps that she can use (mostly rudimentary at the moment, but that’s where we all started at some point), and carry on from there. I think she makes some good points that will help other young programmers get the most out of what they are learning. As Amber sums it up “Keep it simple, make it fun, and do a little at a time as often as you can”. That’s great advice, both for an Intermediate school girl and for her twenty-four year veteran Dad.

 

About the Authors:

Amber Larsen is winding down her Intermediate School years and getting ready to enter High School in the San Francisco Bay Area. When she’s not playing around with web pages and figuring out code syntax, she enjoys Japanese Manga and Anime, music from both Japan and South Korea, watching K-Dramas and having fun with cosplay and attending events where she can meet other creative people.

Michael Larsen is a Senior Quality Assurance Engineer with Socialtext in Palo Alto, California, USA. Over the past two decades, he has been involved in software testing for a range of products and industries, including network routers & switches, virtual machines, capacitance touch devices, video games, and client/server, distributed database & web applications. He is a Black Belt in the Miagi-Do School of Software Testing, President of the Association for Software Testing (AST), a lead instructor of the Black Box Software Testing courses through AST, and a founder and facilitator of the Americas chapter of Weekend Testing. Michael writes the TESTHEAD blog (http://mkltesthead.com) and can be found on Twitter at @mkltesthead. A list of books, articles, papers, and presentations can be seen at http://www.linkedin.com/in/mkltesthead.

What Testers can Learn from My Wife

Let me start by guessing what you might be thinking looking at the title. Some guesses-
1. This must be an emotional piece from someone who adore his better half.
2. This must be a sort of self/family achievements boasting exercise.
3. This must be something about a next generation test innovation.

If you are thinking on the above lines then i only have one word for you- Sorry, your assumptions here are misplaced. It might take me rest of the article to explain about my stand here but let me clear some things upfront-

1. My wife is not a software tester.
2. In fact, her job profile has nothing remotely to do with Information Technology.
3. She is an engineer by qualification and professional experience.

As a family, we have been brought-up in a culture that values humility to the core. As a result of this foundational nature, we are probably low key about the way we are and about our humble achievements, if any. Being low key usually have a negative connotation to it especially in the cultures and sub-cultures that value extroversion. But to me, being low key does not mean being anti-social as we are sufficiently social and thriving in the space that we operate in.

With this background, i can say that what i am attempting to share here is probably something that does not come very naturally to me. But in the spirit of sharing for the betterment of our profession, i thought it is a risk worth taking. So my words my stumble, grammar may get shaky, the full stops may seem too far away but still here i attempt to narrate the lessons that i learned from my wife that helped me become a better professional.

A bit more about my wife:
Being engrossed in the everyday challenges of Information Technology profession, we sometimes get too blinded in our world. So much so that we don’t recognize that any other profession or job that can be as challenging, if not more. If i just say that my wife is in automobile engineering profession, it may not give perspective on what she actually does- so let me narrate a bit more.
1. A very mention of the word “automobile” should give a sense that it’s a profession that is dominated by a certain gender. No prizes for guessing which one. One could argue that even IT is dominated by male bastion, which i don’t deny. But difference lies in the extent. If, for example, IT has male/female ratio as say 3/10- take automobile world as 0.25/10 or even less.
2. Her job role is at managerial level and she belongs to a core engineering role, by which i mean- as a part of her role she knows each and every part of two-wheeler (her area of expertise). Every now and then, she gets to open each and every part of a two-wheeler and assemble it back. As a part of Quality role that she played, she knows quality assessment and parameters of each and every part involved in making a bike. As a part of her Service engineering profile, she gets to train managers, engineers to workshop workers on the technical nuances of her area of work. And much more.
3. She thoroughly enjoys her job and is passionate about it.

Professional lessons that i learned from her:
With this background, i will attempt to share some worthy lessons that i imbibed from her.

1. Be hands-on not because of your position but despite of your position
Few days back, my wife told me that she needs to go to work wearing the sports shoes. No, they didn’t have any sports event in the organization but on the contrary, it was the strike period. For those unfamiliar, strike happens in manufacturing plant when the workers usually have some unmet demands and they decide to abandon work. So why did she need sports shoes? On a lighter note, it was not to “run” away from work but rather run towards it. Let me explain- Given that it was a strike, the management had requested people from the organization to help with meeting production targets. She willingly volunteered for the same and was required to work and deliver Compressor internal assembly. She needed shoes (than the usual sandals) as a protection towards accidental oil spillage or heavy parts getting dropped.

Crises situations are not new to Software testing profession. We are faced with many uncertain situations during the life cycle of a release, including but not limited to- build breakages, late arrival of requirements, blocker bugs, and new changes at the end of the release, people attrition, and possibly many more. That truly is our world in Software testing. From the above incident that i narrated, the core question for me is- How often do we see Managers and Executives contribute hands-on when the crisis situation arises? Of course, there is guidance, words of encouragement and motivation from higher-ups but hands- on involvement?

I am sure we have seen some instances but does it happen often?
So, the core lesson she taught me is- Be proud to be hands- on, not because of your position but despite it.

2. Work for your passion irrespective of not getting the credit

I am sure most of the current generation Software testers are passionate about what they do. As i have experienced in my career, the extent of our passion towards our craft really gets tested at many times. One of the crucial such phase is when we go through a lean phase in our career.

The work culture in automobile profession is quite different from that in software industry. It’s a task oriented culture to the core. It means that if you do the task, then usually there is no response from your manager but if by any chance, you miss to do that you were asked to, then all hell can break loose. Of course, it is a person-dependent thing but higher- ups in that culture are quick to spot when you are wrong (even if you are really not) than really take efforts to appreciate the right deeds of an employee. Usually, the rebuke for mistakes is public deploying the choicest words. My wife usually a lone female in such meetings have been subject to uncomfortable situations mostly for no fault or mistake of hers as she is usually always ready with data- bound explanations. The bigger point here is how one gathers the motivation to continue one’s job if you are subjected to such situations almost daily, either happening to you or your colleagues. This is where I have seen her exhibit tremendous maturity to focus on task (not on people) and deliver great work despite not been given credit and accolades she deserves.

In Software testing world too, there are many difficult situations where our passion gets tested but you would agree that they are largely at a much lesser extent than what i described above.

From her i learnt to respond to unfair situations with the same élan as any other work situation. Treat every day at work as experience. Don’t leave seemingly bad bosses at once, as there is much more fun and fulfillment in winning such people over by your passion, focus and hard-work. And don’t keep bad experiences sulking within you, speak to your close ones, have mentor and routinely clear your mind off the negative thoughts.

3. Get better at job even if it means learning and mastering the local language.
No, the language here does not mean programming language, it’s the one that we use to interact with other human beings. Somehow, the people at the job my wife was doing spoke to each other mostly in the local language of Bangalore i.e. Kannada. Being the only non-Bangalore person, she realized that she will need to adapt to local culture sooner than later. Such adaptation would need her to learn and converse in the local language. With her will and determination, she picked-up the individual words, then small sentences and eventually became fluent in Kannada. From a non-starter in the language to achieving fluency good enough to train the people technically in local language in a matter of few months was nothing short of transformational to me.

Is learning local language important for Software professionals? Whenever i have asked this question to people, the response has always been skewed towards a resounding No. And that’s because people feel that writing and testing code majorly requires us to know English or English-like syntax’s. To me that’s a very narrow way to look at one’s job. Broadly speaking, every job has two aspects to it. The core job itself (development, testing etc.) and the people relationship aspect. Even if we write or test code, the work cannot be accomplished without teaming up with others and in certain cases, without approval of others. Now, one can argue that every organization has a business language and that must be followed to get the business done. There is no problem, in general, with this argument but it misses a larger point about complexity of human relationships. Such relationships, including at work, are never linear -as an example, even though English is a preferred business language, often people feel more connectedness with those who embrace local cultures. I would be missing a point if you are feeling that knowing local language would amount to favoritism, that’s not at all what i mean. But all I am trying to stress is the subtle nuances of human nature and why a seemingly unrelated thing like mastering a local language can enable us to work better than without having that knowledge.

4. Have a child like curiosity towards embracing newness

Newness, in essence means change.In automobile world, which arguably follows sort of fixed production process, newness opportunities may be thought of as limited. But automobiles are also invested a great deal in R&D and that is seen in the capability of organization to come up with new models. New model launches bring in a great sense of anticipation in the organization and for the techies post production, it is an opportunity to explore. That is what i have seen my wife do with almost a childlike questioning, exploration and figuring out each and every detail of what has changed not only at the exterior but also going a step ahead and opening the vehicle up and intricately checking the details.

Software testing profession also sees such situations when the new versions of the software gets released. Often testers deploy the build and observe what has changed. What i have not seen as often is the curiosity to see the code and understand what has changed and design tests. This is what i have learned from my wife’s experiments with the newer models of the vehicles. If you are really a curious software tester, then you shouldn’t be restricting your curiosity to what happens on the exterior but rather go a level down and see how raw code is designed.

5. Thinking out of the box is fine but not at the expense of making the box dirty
Most of the jobs in automobile engineering profession would require following a process to ensure conformity. This is done to ensure that physical parts that millions of automobiles use should behave the same way across. To ensure the sameness of such high-degree, it requires that the process that goes into making the part and later assembling the same is identical, and fool-proof. So while there are part of jobs that deal with R&D, a good chunk of jobs are related to ensuring consistency and less variance, and this is where process orientation is a key virtue. Following the process for certain things is taken as a given expectation.

Coming to Software engineering world, I have seen certain fascination by many people in believing that following a process is not right or something similar. Agreed that a good portion of software engineering requires a Research and Development mindset, but does it mean that all the tasks in testing or development are research based? I guess the answer is- No.

Can the various release phases exist amicably without well- defined entry and exit criterias? Can all the testing be only Exploratory? Does all the test-ware need to be created new (based on Research) always or do we reuse pre-existing test-ware? Does the test-reports not, in some cases, need to be standardized based on stake-holder needs? Doesn’t the role of testing changes based on the phase of release you are in i.e. towards the close to release, the role changes more from finding bugs to confirming there are no ship-critical bugs?

If you look at these and many such instances in software testing world, you would realize that we are talking about situations where we would expect less variations and more conformity. This is exactly what a well-designed process help us achieve. It ensures repeatability of results wherever it is desired and needed. And as you can think now, there are some situations in software testing where this is needed. So before you bash the process, think that processes are here to serve a need. There can be cases where process isn’t designed well and it causes irritation to the impacted people but that doesn’t mean all processes are bad in essence, on the contrary they may be unsuitably designed. The need to embrace innovation (out-of-box thinking) is well understood but processes should also be embraced with same vigor wherever they are needed, otherwise it can potentially impact the project deliverables and overall scalability of the organization.

As I come to the epilogue of this story, I must convey that some advice here may be offbeat, some orthodox but to me, the life really lies between these two extremes. That’s why probably i value my wife’s professional journey. In life one needs reference points to help us walk past difficult phases. To me, she is one of my professional reference points. If i hit a trough, i think of her day-to-day struggles and capability to overcome them and then choosing to celebrate small victories of the day rather than choosing to stay buried in the past.

If you like what i said here and learned even a single thing, i would hugely appreciate if you can drop a note to my wife at shwetamagazine@gmail.com and express what you felt after reading this (she doesn’t know that I have written this and would surely be surprised).

About the Author

Anuj Magazine is a software testing and general management professional at Citrix Inc. He regularly share his knowledge and experiences as a conference speaker and writes frequently on diverse topics like software testing, management, sports, and handwriting analysis. Anuj tweets at @anujmagazine.

Diversity in Tech – Making the Future Today

“The future belongs to those who believe in the beauty of their dreams.” ― Eleanor Roosevelt

I am a product of my environment. I have benefited from a lifelong positive model for diversity starting with my mother, to my wife, multiple bosses, friends, to my industry colleagues. Strong, intelligent men and women who inspire and challenge me, and make me think differently about who I am and how I see the world have surrounded me for as long as I can remember. I am grateful for that experience, but I realize that not everyone has had the advantages that I have enjoyed. As well, part of the social contract, as Elizabeth Warren says is to “take a hunk of that and pay forward for the next kid who comes along.”

Tweet1

 

 

 

 

Having spent twenty years in large, multi-national companies working on countless Human Resources exercises trying to work out why diversity is such a problem, I can tell you, Einstein’s view on “the same level of thinking” reins supreme. To crack a “problem” as large as the one that some of these organizations face, complete reinvention is required – something that most individuals, let alone 1000+ person workforces cannot easily accomplish.

Increasing diversity in technology has just about entered the phase of Corporate Social Responsibility (CSR) where everyone and their brother (pun intended) has started some initiative to increase their footprint with some underrepresented group. Looking to the future, this trend seems to be increasing with CSR commitments becoming the new standard to govern decisions from whom to do business to where we want to work.

Diversity versus inclusion…
In my experience, the trajectory for identifying, hiring, training, and developing people in large companies is so protracted; adding another source of candidate flow is nearly doomed from inception. Moving the needle on something so large and pervasive as the lack of diversity in technology requires a complete rethink of the issue at hand, and that means changing the game.

Unfortunately, the real problem with companies is not the lack of diversity but the lack of inclusion, regardless of what the workforce looks like. Inclusion according to the Harvard Business Review is how you “create an atmosphere in which all people feel valued and respected and have access to the same opportunities,” and inclusion is where the diversity rubber hits the road. I’ve sat on multiple senior executive boards discussing the progression towards our targets in a room comprised entirely of middle aged, white men. Worse than that, two and three layers deep into the org charts the demographics looked exactly the same – and no amount of target setting is going to change that fact.

So while setting targets to increase your diversity footprint may have some merit, in my opinion and experience, if that’s your approach – you’re doing it wrong.

You’re doing it wrong…

At the New York Tech Talent Summit last year, I was on a panel discussing workforce development and our work at Doran Jones with Per Scholas. During the Q&A I was asked what I thought could be done to increase the amount of women hired in technology. My answer: create new companies that make diversity an underpinning of their business model. There are clear benefits of a diverse workforce from marketing, to culture, and strategy, so as far as I’m concerned, the problem is not with the workforce – the problem is with the companies.

According to this Forbes article, that idea might not be as far off as it seems. The authors feel that building diversity and inclusion from the inception of a company is the quickest way to address the divide, as a “startup, short on history but long on seeking the best talent, provides a good platform for establishing an inclusive organization and work environment.” My view is that like everything else in the corporate world, when market scrutiny increases on CSR and potentially crosses into Federal regulation, companies that have a gap will come looking to “buy” a solution anyway.

There is a demographic sea change happening broadly across the workforce and technology is subject to the shift. In my opinion, companies that build diversity into their DNA and have inclusion as a principle instead of a target will have the best chance to be successful in the new economy. The beautiful part of my dream for the future is that you won’t have to worry about changing an organization to match reality – because those that don’t will no longer exist.

 

About the Author

Keith Klain is CEO of Doran Jones, a technology consulting company based in New York, With over 20 years of multinational experience in enterprise-wide testing programs, Keith has built global test teams for financial services and IT consulting firms in the US, UK, and Asia Pacific. Keith designed the Per Scholas STEP program, and has been instrumental in its growth and continued expansion. He is the Executive Vice President of the Association for Software Testing and was the recipient of the 2013 Software Test Professionals Luminary award. Twitter: @KeithKlain Blog: www.qualityremarks.com

The Mother of All Testers

The Mother of All Testers

We live in a world where things that are precious to us are labeled with a feminine title.  Mother Earth.  Mother Nature.  People refer to their cars as “she”.  Why do we do this?  Because there is something genuine, tender, caring, and special about the female aspect when it comes to our lives.

We are witnessing a change in the world we live in.  Women are taking more leadership positions in government, corporations, and within various other communities.  The right person is being selected for the positions, regardless of whether they are male or female.

Women have paved the way through the years for others to follow and build upon.  Imagine what life would be like without these influential Women:

  • Mother Teresa – she led a cause to the orphaned, sick, and dying among the poorest worldwide and became an inspiration to so many who followed in her servant leadership.
  • Diana, Princess of Wales – she chose not to just live in royalty, but to lead many causes (such as acceptance of AIDS victims, and a campaign against land mines). She inspired the world with her life.
  • Marie Curie – first woman to win a Nobel Prize in two areas. She coined the term “radioactivity” and was one of the first to suggest radiation to treat cancer.
  • Mary Kay Ash – she founded Mary Kay Cosmetics, and gave jobs to thousands of women, along with the chance for each to earn a “pink Cadillac” car to drive.
  • Maya Angelou – during the writing of this article, Maya passed away. Of all the many great things she did, one of her quotes that stood with me for so many years has been “People will forget what you said, people will forget what you did, but people will never forget how you made them feel“.  Never forget this quote.  Make it something you live by.
  • Grace Hopper – how could we have a software testing discussion related to women in testing without talking about this lady? This Navy admiral was also a math genius and founding mother of computer languages, which led to the development of COBOL.  She is credited with the term “debugging”  One notable quote from Grace was “The most important thing that I’ve accomplished, other than building the compiler, is training young people.  They come to me, you know, and say ‘Do you think we can do this?’ and I say ‘Try it’.  And I back them up.  They need that.  I keep track of them as they get older and I stir them up at intervals so they don’t forget to take chances.”  What an inspirational quote to live by.

In the testing profession today, being a test practitioner is nothing like years ago.  The dynamic nature of the industry, combined with the exponential growth of new technologies gives so many great, new, and interesting areas for the thinking tester.  We are seeing the ratio of male to female in the practice changing.  And with this change comes a new group of women testers that are providing new insights and inputs to the testing community.  I am encouraged by the articles, presentations, and teachings of many of the women in testing.

My challenge to the community is this: let’s bring on testers who want to change the world.  Let’s encourage them to expand and help others grow along the way.  Let’s get more women testers in our communities, and let’s encourage them to be seen and heard and to lead major changes as we face the future.  We have no idea what the next 10 years will bring us.  In the 1980’s, we had not even heard about the internet or mobile phones in everyone’s pocket.  Now these two things are responsible for so many testing efforts conducted today.

Congratulations to Women Testers magazine and Testing Circus on this effort.  I look forward to the many articles that will rise up from writers around the globe.  You have my support and following!

About the author

ML

Mike Lyles is a  Sr. QA Architect with over 21 years of IT experience. He has led various aspects of testing: functional testing, Test Environments, SCM, Test Data Management, Performance Testing, Test Automation, and Service Virtualization.  In his current role, he is responsible for defining and implementing tools, processes, and methodologies to support the QA teams.  Mike is an international/keynote speaker at multiple conferences, and is regularly published in testing publications. Mike’s passion to help others improve and grow in the field of testing, leadership, and management is his key motivation.  He is available for mentoring and coaching on testing via Skype (mikewlyles).  You can learn more about Mike at http://www.linkedin.com/in/mikewlyles, www.MikeWLyles.com or http://about.me/mikelyles