The forgotten history & roots of Silicon Valley

roots_of_sillicon_valley

Gordon Moore with Robert Noyce at Intel in 1970

Why you should not miss to read this article
If you are a Silicon Valley (SV) engineer or if you are a Silicon Valley VC or if you are curious to know about the history of Silicon Valley or if you want to know why Silicon Valley VCs invests so boldly and successfully in startups or why employees leave their current company to work at a startup, why Silicon Valley love stocks or why companies sue each other over patents etc then this article is for you. Even if you have just heard the buzz world “Silicon Valley” or want to know why you see what you see today in Silicon Valley then this article will not disappoint you. This article will take from the very first episode in the history of Silicon Valley to how its subsequent events laid the foundation of the trends which we see till today. However I do want to start this article by giving due credit to PBS as most of the data of this post has been compiled from their documentary on Silicon Valley.

William Shockley & Shockley Semiconductor Laboratory
William Shockley was an Applied Physicist who after receiving his PhD from Massachusetts Institute of Technology, started his career at Bell Labs. In addition to many great things, he is mainly known for inventing Transistor and he even received the Nobel prize in Physics for his work on Transistor. By the end of this article you will realize that Silicon Valley perhaps would not have achieved so much success if William Shockley would have never invented Transistor. William Shockley soon decided to commercialize his transistor design and laid the founding stone of Silicon Valley by starting his company called Shockley Semiconductor Laboratory with some great engineers of Silicon Valley like Gordon Moore (the same legend who is known for the Moore’s law), Jay Last, Jean Hoerni, Victor Jones and of course Robert Noyce who had the ability to charm anybody and would later change the entire course and direction of Silicon Valley.

Robert Noyce & Fairchild Semiconductor
Robert Noyce once said that when Shockley approached him to work at Shockley Semiconductor Laboratory, it was like talking to God. He was referring to William Shockley. Although Shockley was considered as a God and the Guru of Electronics, he soon started gaining ego after having awarded the Nobel Prize. He would easily get angry on people who failed to meet his requirements or standards. He also started demanding change of focus from silicon transistor to a four layered diode and it was all chaos and total flux under his leadership. Founding members of Shockley Semiconductor Laboratory like Gordon, Jean, Julius Blank, Victor and few others decided to revolt against him by starting their own company called Fairchild Semiconductor (FS) under the leadership of Robert Noyce, the same Noyce would later start another company whose products are used till today at the core and heart of all the modern day gadgets from PCs to Apple. But what happened to Shockley Semiconductor Laboratory? Well within few years of formation of Fairchild Semiconductor, Shockley Semiconductor Laboratory was drowning and dead in the sea.

Sherman Fairchild & VCs of the Silicon Valley
Achievements and innovations of Silicon Valley would never have been possible without the courage and vision of Silicon Valley VCs (Venture Capitalists). The qualities of successful Silicon Valley VCs which sets them apart from other VCs are the trust, freedom and valuable advice they provide to the founders along with the much needed capital. It is the eagle eyed ability of the Silicon Valley VCs to spot the talent and grab the opportunity with both hands that has led to one successful startup after another in Silicon Valley. Another most astonishing quality of Silicon Valley VCs is to never take rest and to never retire. The have always liked to continue investing on the next big thing and continue betting on more and more adventurous and risky ideas. And one of the first such Silicon Valley VC was the owner of Fairchild Camera — Sherman Fairchild. He was the single largest stock holder in IBM, a company which was founded by his father. Yet, when Robert Noyce and his founding friends were struggling to find investors, it was he who agreed to put $1.3M to get them started. Fairchild Semiconductor would have never got formed if they didn’t receive the investment from Sherman Fairchild and perhaps Silicon Valley would have remained deprived of the priceless and professional VC culture.

Innovation & Stocks
Silicon Valley engineers start or want to work at a startup mostly for 2 reasons. A. To innovate. B. To get lot of stock options. Being able to constantly innovate has led to comeback and exponential rise of Apple. And it is the same innovation which led to downfall of companies likes HP, Oracle and Microsoft for not being able to innovate consistently. When Fairchild Semiconductor was being questioned for their reliability they invented a planar process that created a new semiconductor using silicon dioxide. Fairchild Semiconductor patented this technology. As the orders began to pour in and as Fairchild Semiconductor rose to fame, Fairchild Camera & Instrument decided to buy its subsidiary Fairchild Semiconductor. And with that each of the 8 original founders received stock options worth $300K which is equivalent to roughly $2M today.

Integrated Circuit
Now the limitation of transistor was that it did only one thing and if you needed it to do 10K things then you would need around 10K transistors involving high complex circuit connections thereby increasing the risk of circuit failure. And it became an uphill battle to continue design and development of new products using transistors. To solve this problem, it was time for Texas Instrument to step up with innovation and they soon patented a technology invented by one of its bright engineer Jack Kilby to device an entire circuit on a single chip using the same planar process which was invented Fairchild Semiconductor. And now all of a sudden you didn’t need million of transistors to perform a complex task as all that circuit was etched on a thumb sized chip. Invention of integrated circuit is considered as a giant leap forward in the history of electronics and Silicon Valley. This invention by Texas Instruments jolted Fairchild Semiconductor and forced them to action and innovation. And then they came up with their own design and version of Integrated Circuit but based and inspired from Texas Instruments integrated circuit and it was this step by Fairchild Semiconductor that triggered the war of patents which is fought till date between different companies.

Suing companies for patent infringement
Two years after Fairchild semiconductor was founded, it came with its own version of integrated circuit called MicroLogic priced at $120. Robert Noyce is believed to have played a major role in its design. It took no time for Fairchild Semiconductor to make progress and profit through this device and this sparked Texas Instruments to sue Fairchild Semiconductor for patent infringement. Technologists believe that Kilby’s design was not a practical one and it was Noyce’s design that finally worked. It can also be treated as the case of two simultaneous inventions. After suit dragged for years, Texas Instruments and Fairchild Semiconductor decided to share the licensing of integrated circuit design. So the latest stories of one silicon valley company suing another for patent infringement (like Apple vs Samsung) should not surprise you as it got its roots and culture right when Silicon Valley was getting incepted.

Starting your own startup
Silicon valley has always seen an increasing trend of employees leaving their employer to work at a startup or start something of their own. Be it PayPal mafia or FaceBook mafia, bright engineers leaving their brightest jobs to work on their own idea is not something new. And this trend of leaving the company that gave you the break and starting something of your own can be considered to have started when Robert Noyce and his friends decided to part ways from Shockley and founded Fairchild Semiconductor. However starting your own company was heavily criticized earlier as people back then still believed in working with your first company till you retire. And the thing that led to development of Fairchild Semiconductor also led to its destruction. When Fairchild Semiconductor was at the peak of its success, it was able to attract the best and brightest engineers. But at one point so much talent got stuffed at one place that it led to a chain reaction process which eventually triggered employees to move out of Fairchild Semiconductor to work on something new but related to their previous work. Fairchild Semiconductor is believed to have spin off more than 100 different startups and companies like Rheem, Signetics, Amelco, Molectro, General Microelectronics, Advanced Micro Devices (AMD), National Semiconductor etc and they began to be called as “Fairchildren”. And the term “Gold Rush” was once again used when Fairchild Semiconductor engineers started planting their own silicon by starting their own chip company.

Mass production & Multi generation products
Be it Sony Walkman, iPod, Xbox, iPhone, Cloud or Tesla, we all know first generation products are always expensive. It is only when demand rises, you are able to bring the prices down. And this business model of production meeting demand to slash the prices down, goes to back to the early years of Silicon valley when there was an exponential increase in demand of Transistors. Because of which Fairchild Semiconductor was able to slash the price of one Transistor from $120 to less than a dollar making electronics within reach of a common man.

The role of NASA
Today NASA may have lost its mojo but it will be very unfair and harsh to not mention the incredible role NASA has played behind the phenomenal success of Silicon Valley. After Soviet Union put the first step on Space by launching Sputnik, NASA was founded and began its operations in 1957. By next 2 years its budget crossed $400M and by mid 1960s it was consuming 60% of the transistors produced by Fairchild Semiconductor. So 12 years after Russia launched its space mission and 8 years after John F. Kennedy conceived Apollo program and passed the bill for Space budget, NASA finally landed on the Moon in 1969. And this journey to Moon was made possible by Fairchild Semiconductor’s integrated circuit design. And if there was no demand for integrated circuits then Fairchild Semiconductor would not have thrived and Silicon Valley would not have survived. And the nice thing about NASA is that it still continues to help Silicon Valley startups like SpaceX and perhaps many more to come.

Baffling benefits, Beer Bashes & Social Networking
Today it is impossible to understand how can companies like Google, FaceBook or Dropbox manage to provide one of the best and lavishing employee perks like best medical benefits, best gadgets and setup to increase the productivity, health training, free gym memberships, tuition reimbursement, free massage, free shuttles, free booze and not to forget free food & desserts. It is all done to retain employees. And this again got started at Fairchild Semiconductor when they saw lot of attrition rate. And to keep employees happy, Fairchild Semiconductor started to organize parties at a bar called Wagon Wheel where not only employees from Fairchild Semiconductor but engineers from other chip firms came to hangout and do the networking. Today we have LinkedIN & Twitter but during those days it was parties of this kind, where you came to know who is working on what and who left the company to work at a startup. These parties soon became a hanky-panky interactions and divorce rate climbed an all time high of 150% as the second marriages were also not successful.

Fall of Fairchild Semiconductor
Soon after Fairchild Semiconductor came to glory, it started to lose sight of its goals. There was miscommunication and sometimes no communication between different groups of the company. Although the stock price of Fairchild Semiconductor’s parent subsidiary Fairchild Camera was going an arm and a leg, all because of the profits gained through Fairchild Semiconductor’s products but still the company didn’t pay stock options to all of its employees and this lead to discontent between the employees of Fairchild Semiconductor. Robert Noyce was not happy too as he felt that he was being treated like a leader with no power and stakes left. He was also not happy with the subtle differences which internal groups within Fairchild Semiconductor had with each other. After a point when things got really frustrating, he decided to leave the company and started a new company with his friend Gordon Moore with whom he had already struck a chord twice before.

Birth of Intel & start of Silicon Valley
This new company formed by Robert Noyce and Gordon Moore was called Intel and this time they didn’t face any problem in raising the capital because of their established reputation and proven ability to deliver. In fact they managed to raise $2.5M in less than 2 days. They started the business with a plan to produce memory devices using the same integrated circuit design which was devised by Robert Noyce and his earlier Fairchild Semiconductor team. They gave themselves a 2 year time frame to start the production of memory chips. Had something gone wrong, it would have been a game over for Intel and perhaps end of Silicon Valley. But not only were they able to deliver their promised product but to meet the changing market demands and to simplify the complexity of circuits, they invented the first Microprocessor 4004 and rest is history. Ever since then Intel has become an industry mogul in business of microprocessors by releasing many generations of successful Microprocessors and all this would never have been possible without William Shockley and his team. So this so called Silicon Valley was born and started when Shockley and other founders signed the Silicon Valley’s declaration of Independence on a Dollar bill while founding Shockley Semiconductor Laboratory.

You can also find me on Twitter: @paragkalra

All the images are used under Creative-Commons license

Cover photo courtesy

 

Blog Rush: The best Blogging opportunity you don’t want to miss

blog_rush

Why I started blogging again
Writing has always been my passion and it got started when my articles started getting published in local city newspapers during school days. The total articles that ever made to some corner of the newspaper could easily get counted on the fingers of the hand. But it was still sufficient to leave an impact and an interest that is most likely to last for lifetime. Then the Blogspot happened and I had a brief stint blogging technical notes on Blogger. Both of my above attempts never lasted more than a full moon cycle because of just two reasons:

A. Unable to reach wider like minded audience.

B. Inability to provide good user experience while engaging readers on the blogging platform.

However here I am again, blogging nearly after 5 years and determined to continue it strong and hard. Do I still encounter the same blogging limitations? Well that is what this article attempts to answer, how I got back to blogging and which is the best blogging platform currently. The experiment which I carried was to post my articles simultaneously on all the blogging websites (listed below) for about a month and only then I reached to the conclusion which you will find through this article.

What are the current blogging options
There are more than half a dozen good social media and blogging platforms available to users today. Just to name few: Medium, Tumblr, Quora, WordPress, Blogger(Blogspot), Facebook, Twitter and you can even create your own website. As far as the editing tools are concerned, most of the above platforms provide more or less same features. But some may provide better themes and whereas some have better support for pictures. Although Facebook and Twitter are not exactly blogging websites but you can share anything you want. The only problem is that Facebook audience (your friends) is very diversified and not all may like your posts. Twitter on the other hand is microblogging website and sharing a tweet storm is likely to infuriate your followers. Whenever you share or blog something, always make sure that you are not spamming. Excessive sharing or long posts will force your followers to ignore your posts, unfollow you or even block you.

Who solved the problem A
I am a very active Twitter user. There is no question that currently Twitter is the best way to share you thoughts even better than Facebook. It is simple, takes less time to read the tweets and provides a great way to spread your message through retweets and hashtags. But Twitter is only good to express what you are feeling, it is not meant for long conceptual articles. On the other hand, Medium has some nice integration with Twitter but it is still not able to draw lot of attention. To my surprise LinkedIN has the magical recipe to broadcast and spread blogs by significant order of magnitude. The trick it does is to scan or read the articles and automatically post it (I guess through using some machine learning algorithm) to several other related LinkedIN groups. So you not only end up reaching your direct connections but also many indirect connections (belonging to that group) and who might be interested in reading your article. Readers also have the option to reshare the article to their direct connections if they liked it, which draws more followers. And LinkedIN has a very sweet way to tell how many people viewed your article, how many times it got shared on LinkedIN, how many times it was shared on other social media forums (Twitter, Facebook, G+ etc) and how many likes & comments you have received so far. And to add sprinkles to the desert, LinkedIN has integration with Pulse where it recommends viral articles right at the top of the home of the LinkedIN users. As a result of which any of your good post ends up becoming a really great post. Surprisingly and sadly, none of the other blogging platforms come anywhere closer to what LinkedIN offers. When it comes to spreading a blog and drawing more users, LinkedIN has so far stolen all the thunder from other blogging websites.

What about the problem B
Blogging is just not about writers, it is also about the readers. If the readers don’t get the kind of smooth experience they are looking for then they are likely to find the posts uninteresting. First step is to notify the users that something interesting is ready for them to read. Moment you publish an article on LinkedIN, your direction connection gets notification on the home page about your post. Kaboom. You have made the first impact. Your post will also appear in the news feed of your connections and followers. Providing feedback on LinkedIN posts is also very rich. And as an author you can respond to each and every reply either with a comment or with a like. Just brilliant. LinkedIN’s mobile app also offers a very good user experience both to the readers and to the author too. So by taking care of problems A and B, it is really astounding that LinkedIN has effectively created a medium both for writers and readers that is second to none. And the biggest advantage LinkedIN has that your direct connections are mostly working professionals who are likely to share the same skills, same mindset and same passion to succeed. And this compelling advantage is what other blogging websites are missing because they were just meant to be a blogging website and not a connection hub of working professionals. LinkedIN is using its biggest asset of astronomical professional network connections to a great advantage, by engaging and drawing more professionals through blogging.

What needs improvement
There was an occasion on LinkedIN when my post never appeared in the news feed of my followers. Imagine if you are an Influencer working on an important blog post or an critical announcement and this glitch happens. Also there seems to be some bug while responding to reader’s comments. After replying to certain number of comments, you can’t reply to more users. Notification center also seems to be slow when you receive many comments in short time. It doesn’t notify you immediately that a new comment has been posted on your post. It will also be nice if LinkedIN can let authors know, which others LinkedIN users have shared their post. Last but not the least, it takes some time for web app and mobile app to get in sync. However these are very minor issues and both writers and readers can live up with it as long as it is not frequent and consistently annoying. What is of utmost importance to any blogging website is that, writers can reach the audience they want and readers can enjoy the articles they are reading. And by employing both these features, LinkedIN is making all the other blogging forums feel the breath of its growing popularity and penetrating dominance. So far LinkedIN has managed to keep everyone else with their noses pressed against the glass. But as it turns out, competition drives innovation and LinkedIN will have to continue innovate otherwise it will be a game over for LinkedIN and will receive a crushing blow to its staggering achievement so far.

You can also find me on Twitter: @paragkalra

All the images are used under Creative-Commons license

Cover photo courtesy

Disclaimer: Opinions expressed are solely my own and do not express the views of my employer or any other organization.

How Quality Engineers should start their day

2aaf69a

Read the docs! Understand the code!
The two most important qualities that produce highly effective Quality Engineers are 1. Knowing nuts and bolts of the project specifications and 2. Being able to design tests by dissecting developer’s source code, aka white-box testing. While latter need skills and time but is doable if there is a will and passion to learn. However in order to achieve it you have to first read and thoroughly understand all the specs, requirements and important technical project documents. Never give these two things least priority in your work routine and never leave it for end of the day. They need utmost concentration and no time is better than doing it as the first thing in the morning when you are most alive and kicking.

Learn something new everyday
No matter how well your job is paying you or no matter at what position you are or no matter what title you hold, if you are not learning new things everyday then you are not growing and you are not earning the real values. Very rarely it happens that it is because of the project or the team or the circumstances that you are not being able to learn.

This reminds me of a beautiful quote said by Brendan Francis:

Other people’s interruptions of your work are relatively insignificant compared with the countless times you interrupt yourself.

If you make conscious and disciplined efforts, you can learn good and positive things from any environment and experience. Learning new stuff can be anything like either reading a chapter from your favorite book or watching an old TechTalk or watching a recoding of an important meeting which you missed or trying a new tool or watching an insightful documentary or reading a good article or maybe exploring some new technology or may be designing a new framework etc. It really doesn’t matter what that thing is as long as it is new which you have not done before and is creative. Also it is very important to document what you are learning so that you can share with the team if it is related to the project and if it could be beneficial to others.

Analyze the new bugs found
Nothing is more depressing to a Quality Engineer than coming to know that a customer has found a bug or external teams are grudging about an annoying issue which you have not seen. The first real testing related thing a Quality Engineer should do is to go through all such new bugs exposed overnight either by customer or Technical support or by external teams. Understand the exact issue, inspect it to find why was it not caught by the QA test plan and come up with a strategy to reproduce the issue and accordingly include it in the regression run. All such bugs are very good candidates for automation too.

Stay on top of all the technical discussion
Being a Quality Engineer neither should you turn a blind eye to the technical discussions taking place over the email between developers, architects or the support team nor should you turn a deaf ear to important technical meetings or the TechTalks. If read with commitment and interest, emails could be Quality Engineer’s best source of knowledge and one of the best guide to design new tests. Not only should you try to get all the gory details by reading emails but you should also actively participate either by asking more questions or responding to queries whenever you know the answers.

Complete the pending code-reviews
Never keep any engineer blocked because of you and if you do so you end up applying deceleration to the entire project execution velocity. Once you have noted the new issues and you have read all the emails, the next important thing you should do is to go through the queue of code-review requests on your plate and start providing comments one by one. The sooner you give your feedback the better it is for the project. It also gives the other automation engineer entire day to work on the comments and may be even submit the code by end of the day.

Participate in the forums
You will be surprised how far we can go if we help each other and work together as a team. Never miss an opportunity to help someone. And as Harry S. Truman says,

It is amazing what you can accomplish if you do not care who gets the credit.

Helping others is one of the best & easiest way to learn and grow. And the discussion forums are the way to foster a healthy work culture. You should actually make deliberate efforts to help the community by keeping an eye on the questions posted on the internal and external forums of your interest. If you know the answer or even have a guess, never fear away to share it. And if you don’t know the answers still attempt to read the solutions posted by others to avoid running into the same issue in future. On same grounds never feel embarrassed to post your questions on forums, no matter how silly they may sound. Every single and simple progress made by the team eventually contributes towards the company’s business. And the reason you want to do this sooner is because someone might be expecting a workaround and your one reply can save someone’s day. Also if you post your own questions sooner, you get sufficient time to wait for the reply while you are troubleshooting on your own.

Automate the planned test
“Release fast, release often and iterate”, not only applies to developers but also to automation engineers. Test automation is that unique thing which takes comparatively less time to develop but takes more time to debug and takes even more time to deploy and keep it stable. What to automate generally depends on the QA Test plan but it can be either verification of fixed bugs or even the new things which you learned today while reading the project documents or may be the regular functional tests.

Test something new everyday
If you read this article carefully, you will realize that I have not spoken about any manual testing so far and I have also not differentiated between separate manual and automation team. I am of the opinion that, just like software is eating hardware, one day automation will gulp the manual testing completely. Sad but true. However if there is any manual testing that can be justified to some extent then it is ad hoc testing. What that means is basically testing something at random like playing with a new features or exploring a new command or testing integration of multiple components or testing different configurations and environments etc. Basically the idea is to throw the product into the sink and trying to break it. Always be innovative while doing this testing. Although as I said automation may not be the priority for this testing but nothing stops you from automating a good ad hoc test. Same holds true for documentation, record and log every what you are doing.

You can also find me on Twitter: @paragkalra

All the images are used under Creative-Commons license

Cover photo courtesy

How to become a great interviewer

Prepare for the interview
Believe it or not but conducting an interview needs more preparation than giving an interview, if taken seriously. But being an interviewer, why should you ever prepare? Well because you want to hire the best candidate and you want to know your meat really well. At the end of the day, you represent your company and if the candidate is not impressed by the interviewer, chances are pretty less that recruiter will be able convince the candidate to accept the offer. And most importantly revising the concepts gives you an opportunity to brush up your forgotten knowledge and stay on top of what you already know. It also prevents you from getting into a tempting habit of asking same questions again and again from one candidate to other. Always be innovative and come up with new and interesting questions so that you are also learning and growing with every interview.

Start the interview by being a Salesperson
Most of the times, there is no sufficient time, both for the candidate to answer the questions and for the interviewer to complete all the questions. And to avoid it, we try to start the interview directly with the technical questions. While there is no harm in doing that but it is more important to make the candidate feel relaxed and passionate about his new role. This can be easily done by just spending couple of minutes to tell what is your role in the project, what makes you believe in the company and the product, what part of project he would be working on, what will be his responsibilities and why should he join the company if things go well. It is very important for you to be able sell a good story and strong vision to the candidate about the company. Then if timer permits you should try to know little bit about the candidate and letting them ask questions if any. But make sure this conversation doesn’t get overwhelmed and should not consume major chunk of the interview slot.

Diversify the questionnaire
It’s very tricky and risky to test a candidate by asking all the questions only from one domain. He might actually answer all the questions related to that one topic but may not know other important areas. Likewise he may not be familiar with one subject but may know many other important things. Unless there is a requirement, we don’t want to hire a candidate who is good only in one thing and we also don’t want to miss a candidate who is experienced and expert in many things except one. So it is always safe to prepare the questionnaire such that you are covering many and multiple areas and not just one field which is your comfort zone. However make sure all the questions you prepare are relevant to candidate’s experience and matches the job requirements too.

Define the questions clearly
It’s okay if you ask a complex questions but make sure that you make it simple enough for the candidate to understand the requirements. If you see any hint of doubt on candidate’s face, rehash the discussion by repeating the question till you are fully convinced that candidate has completely understood, what you are looking for. A question should be so good and clearly defined that even if the candidate is not able to crack it, he remembers the question even after the interview and his curiosity should not let him rest until he nails it.

Be polite and down to earth
Never ever try to pretend that you know more than the candidate or you are senior and more experienced than the candidate. Even if the candidate is having many doubts while coming up with the solution, still have the patience to answer all his questions. It may be true but never say that “it is a very simple question and you should know the answer”. Don’t interrupt the candidate constantly if you don’t agree with his steps but first let him finish. Never act up or act out by making bad faces or by giving a weird look or even laughing at candidate’s answer. Even if you’re finding the answers uninteresting still remain fully focused and deeply committed to the interview without peeking into your mobile. And finally never climb high horses for your own solution and belittle candidate’s ideas. Stay humble. Stay polite.

Motivate the candidate


If you are finding the candidate promising and if he is consistently giving good answers then let him know about it. Do what ever you can to bring best out of him and nothing but motivation can do that for you. And if the candidate is not doing that great then don’t discourage him further by not showing interest to what he is saying. One thing you should never do is to make fun of his answers.

Never ask personal questions
Are you married? Do you have kids? At what time do you wake up? Have you taken care of your student loan? Where does your husband work? And many more. You should be never required to ask any personal questions nor should you try to find personal answers by digging candidate’s life on social media.

Don’t cherry-pick words from the resume
What ever research you want to do on the resume, do it before the interview and accordingly prepare your questions but never try to insult the candidate during the interview by telling him that he is not being able to answer the stuff mentioned on his own resume. If your preparation is sound then you should not even refer the resume during the interview.

Don’t look for the right answer but for the right approach
There is always more than one way to solve a problem. Some approaches are better than the other because of its optimization or simplicity but still don’t be obsessed with the solution which you know and never behave like a spoiled kid who gets upset on not getting his desert. Instead try to observe what questions he is asking to himself or to you while working towards the solution. Does he remain confident, calm and composed throughout the process? Can he pick up if given hints? Can he find the bugs or limitations in his own solution? Is he getting panicked? Can he define unit-tests for his own code? Can he read between the lines? etc. Give more emphasis to the approach and temperament devised to reach the answer and not to the final answer.

Do include hands-on questions
Diversification of questions should not only include core concepts and objective questions but should also thoroughly test candidate’s practical experience and his ability to apply the theoretical concepts. However don’t unnecessarily include super-complex questions. Always ask this question to yourself before you include a particular question: “Can you solve the same question, in same time, with same experience as the candidate, with same educational background and in same environment?”

Don’t pay emphasis on the tools
It’s more important to solve a problem than which tool or the language candidate used to solve it. Good candidate should be able to pick any language or tool very easily. Hence give the candidate complete freedom to use the environment of his own choice. And rather have questions which will test his capability to pick new languages but just don’t reject him because he doesn’t have the required tools experience. However the important things which you should really check are aptitude, passion to learn new things, if he or she is a quick learner and self-motivated.

Wait till the interview is over
Irrespective of whether you liked or you didn’t like the candidate, don’t provide the feedback to anybody especially to the person who is supposed to interview the candidate after you. Wait till all the rounds of the interview process are over. Let all the interviewers view the candidate from different set of glasses and not through the preconceived notions passed on to them by you. Let them take their own decision without any bias. We should all be fair to the candidate like we would be to our kids.

You can also find me on Twitter: @paragkalra

All the images are used under Creative-Commons license

Cover photo courtesy

What Startups can learn from this Soccer World Cup

Startups are like substitutes who can change the game
It is highly unbelievable to see substitutes coming in middle of the game from nowhere and scoring so many goals consistently in this world cup. When Uber got its $11M funding 3 years back, no one ever believed that it will come this far. Today it is valued at $17B close to WhatsApp. Another lesser known fact: Xiaomi, a 3 year old Android startup sells more phones in China than Apple and Samsung. Enterprises not taking startups seriously is not something new. It goes back to the days when Barnes & Noble wrote off Amazon during its Internet early days. History speaks for itself what happens whenever startups are underestimated. In 2000, Blockbuster declined the offer to purchase Netflix for $50M. Fast forward 10 years, Blockbuster filed for bankruptcy in 2010. When it got bankrupt its stock traded below $1 and today $NFLX trades at $450+. Lesson: Never disrespect a startup or say no to an opportunity. If you can’t innovate then either acquire the innovation or be ready to pay the price for not innovating.

Work each day as if it’s a knockout game
It was just astonishing to find that majority of the knockout games of round of 16 went till extra time and some games even had to take the help of the penalty shootout to decide the result. Other thing to note is that teams conceded very less goals and that too only towards the end of the match. They all knew very well the value of a every single goal. But this was not the case in group matches. In group matches, not all teams were aggressive from the push of the button. What do we learn from this observation? How great our performance is when we have to either go really big or go home. Now imagine what we can achieve for our company’s business if we apply the same passion of swim or sink to our everyday work and fire all our cylinders without an error.

Never ever give up.
While watching the USA vs Portugal group match, I thought US will definitely lose the match especially after having conceded a goal within first 5 minutes of the game. But they never gave up. They relentlessly kept on trying and finally their hard work paid off in the 2nd half. Now they were leading by 2-1. At one point it looked as if now Portugal will lose the match. But neither did they gave up. They wetted their shirts till the last minute until they managed to tie the match by scoring a goal in last 30 seconds of the game. Yes, a goal to prevent almost assured defeat just when seconds were left, can you believe it? The lesson of this story is in the word “never”. Never give up and never say never.

It’s never over till it’s over.
As Marilyn Vos Savant says, Being defeated is often a temporary condition, giving up is what makes it permanent. This was exhibited by Holland vs Mexico match which had one of the most dramatic endings. There were 2 minutes left in the game and Mexico was on the verge of their historic world cup win outside their home country. But Holland’s stamina never faded even for a minute and they ended up leveling the match in 88th minute. They kept on trying right till the end of the match and eventually won the game by taking a lead in last minute of the game. In one of the other knockout games, even Greece managed to level the score in stoppage time of 2nd half against Costa Rica. Lesson: Never stop trying till the show is officially stopped or the deadline is actually over.

Experience counts but is not the everything
Some of the top teams like Spain, Portugal, Italy and England, having high FIFA rankings before the world cup were not even able to qualify for the knockout stage. More than poor performance or overconfidence of these teams, it was the self belief and hard work of the underdogs. Established enterprises should not use experience as a statistical motivation to believe that they can win a game or use experience as a bandwagon that will carry them forward more than what they deserve. In a competitive business, customers may prefer an experienced enterprise over a new startup but it is only until you make a mistake. Moment you degrade the quality of the product or disappoint them with your customer service or if you delay a promised feature, you have invited a startup to invade your territory.

Stay aggressive and keep innovating
As I mentioned above, few teams even after gaining the lead in 1st half, lost the match in the dying moments of the game. One of the reason was because of their change in strategy to defend more and attack less. Once you are closer to your mission, it may be very tempting to play a safe game or get complacent. Sometimes this act may backfire giving opponents an opportunity to make inroads. How often it happens that we think we are on top of a release but then we soon realize it was just a mirage and we have to either push the deadline or cut some features. This false belief that we have ample of time to execute often acts as a catalyst to not give our 100%. Similarly never stop innovating even if you have got a good product out to the customer. As said by Dr. Robert Anthony, If you find a good solution and become attached to it, the solution may become you next problem.

Leaders should be like goalkeepers
Be it Tim Howard of USA or Guillermo Ochoa of Mexico or Germany’s Manuel Neuer, there are no two ways about it that this world cup has belong more to golden gloves than to golden boot. Goalkeepers have literally won the matches for many teams in this world cup just by saving goals. Leaders can learn a lot from these goalkeepers. They should know when to come forward especially when the team needs it and when to stay back to show more trust in the team. Like goalkeepers, they should be the strongest spring foundation of the team, designed and developed over the years to sustain maximum pressure. Like goalkeeper, stakes of our leaders are also high. One bad decision can slip the deadline or one small mistake can even crush the startup. In any game, leader should alway stand up and save the team first, motivate the team, trust them, grow them but never blame them.

Control your anger and never repeat the same mistake.
Eleanor Roosevelt has said it very brilliantly: Anger is one letter away from danger. When you are doing good, it is very easy to develop pride and be angry to those who are not as good as you. Benjamin Franklin has said, Whatever is begun in anger ends in shame. And fame of shame is the last thing startups want to chase. Whenever in moment of anger, the best thing you can do is to do nothing. The worst thing about the Saurez biting incident of this world cup was that it was for the 3rd time, he was doing such a shameful and inhuman act. It is okay to make mistakes but never okay to keep on repeating it. Experience comes from making new mistakes and accepting it. Expertise comes from learning not to repeat old mistakes.

Soccer is a dangerous yet beautiful game and so is the startup like attitude.
You don’t necessarily have to work at a startup to innovate or to work in a startup mode. All you need to have is startup like attitude to do things differently and never taking a yes for doing just “fine” things. Remember, always stay away from being just “fine”. Rather you have to be exceedingly great and do things extraordinarily different. As long as you have this attitude, it really doesn’t matter whether you are a startup or a public company. Google is still known to have that startup like thingy in their culture. Although many people think that Apple has lost its mojo but they literally crushed startups with their each announcement at this year’s WWDC. Tesla is another example which has just changed the future of EVs and today it is one of the most promising automaker. Startups should always be beware of these companies who are not startups any longer but still have the startup like mindset. No company is more dangerously competitive than the one having the cash, experience, established customer base, branding and still manage to keep startup traits alive.

How to make Test Automation code-reviews faster

Test your test
Test automation is no less than software development but the reason it doesn’t receives equal importance is because it is of less use if the automated code is not valid because of the new features introduced with every release. It becomes more costly if automating the tests takes lot of time due to unstable or complex application. Under such dynamic conditions when the automation is always under the cloud, it becomes very important to make sure that code-review process is blazing fast. Many valuable cycles of engineers can be saved if an automated test is thoroughly tested before it is even sent for code-review.

Send code in small chunks
On an average, a test automation code-review (one test with few helper functions) should not take more than 20 minutes (give and take few minutes). But if it takes more than that then either the code is overwhelming or the reviewer is new to the code base. Latter issue will eventually melt with reviewer spending more time on the automation turf. But the first problem can be simply avoided by following a basic rule of automation code-review called 1-2-3. As a good practice, never send more than 1 test out for review, always send the code to at least 2reviewers and lines of code should never exceed more than 3 digit figure. Biggest advantage of sending few tests at a time is that you can apply the same comments to subsequent tests which are similar to ones already in review, thereby reducing the review cycles drastically. And if one reviewer is busy then at least other reviewer can keep the ball rolling.

Make it a pleasure and not a punishment for the reviewers
Difficult to understand or poorly designed automation code can also slow down the reviewers which in turn impacts the overall automation deliverables. Good design is something you learn from experience but simple things like code abstraction, avoiding code duplication, pushing common code to helper functions, proper indentation, spacing around operators, adding comments etc can make the review process very smooth. If during the code-review process, as a reviewer you don’t enjoy the code like a melodious song or an interesting story then something is busted.

Learn and share with different reviewers
Always sending the code to like minded or same code reviewers may slow down your learning curve. A. You don’t get to learn new things from other reviewers, B. You develop a comfort zone. Diversifying your code reviewers not only gives you an opportunity to learn from different school of thoughts but also it distributes equal code-review work load on all the engineers making the automation code-review fair and faster for the entire project. It also allows other reviewers to gain familiarity with new components.

Follow up with reviewers
Don’t cool your heels assuming code reviewers are busy doing code-review for you. If you don’t hear back anything after 24 hours, just casually stop by their office and walk them through the code steps in case they have any questions. Or you can just make a friendly phone call to seek an informal feedback or to do a quick status check. Sometimes code reviewers may just miss the review request in the storm of other emails. A gentle reminder is always better and safer than a lazy assumption.

Give all comments at once
Not only the code reviewers should return the comments as soon as they can but it is also beneficial for everyone if all the comments are given in one shot instead of bits and pieces. And if a particular comment is not getting addressed in a manner you want then it is always best to just have a quick face to face conversation and probably using a whiteboard to clarify the comment. It is okay to give more valid comments on the newly made changes but giving more comments on the code already reviewed by you can be very annoying and nagging for the implementer.

Implement all comments at once
As an automation developer, you should make sure that there are minimum back and forth code-review rounds. Once you receive the code feedback on review board, don’t publish the new code before addressing all the concerns. If you are unsure about any comment then it is advisable to have a direct conversation. Always show urgency in not only getting the feedback but also in making the changes for the received the comments.

How Testers should react to errors

Never ignore it.
It is very easy to get annoyed by an error specially if you are in middle of something very important. More easy it is actually to ignore it and move ahead. The bad thing about an error is that it stops your progress but the good thing is that as a Tester you have an opportunity to prevent that error from reaching customer. So neither should you panic nor should you ignore it.

Read the error message
It is often said that error messages are your best friends. A well coded application will always give a detailed and meaningful error message. As it turns out, many of us often don’t read the error message completely or don’t put enough efforts to understand it. 9 out 10 times, you can resolve an issue on your own by just reading and understanding the error message.

Check the usage
Most of the times, application yields errors because of incorrect use of the feature or a command. Whenever you are greeted by an error, go back and read the help or the man page. At the same time you have an opportunity to review the documentation. It is also very important to check if the use case which you are trying to test is a valid and a supported feature.

Refer your notes
It is always a good idea to refer your notes to check if you have encountered the same or related issue before. Over the period of time, we may forget about an old issue, treating it as a new one. Worst thing to happen is to debug a same old problem which you have solved before. And in case you don’t have any notes, this is the opportunity to get started and start maintaining your own cheat sheet or a FAQ document.

Check the bug database
It is quite likely that someone has already logged the same issue which you are seeing currently. Searching the existing database will not only save lot of time but will also reveal similar and related bugs in addition to providing the current bug status and sometimes a possible solution.

Consult peers and developers
It goes without saying that self help is always great but not at the cost of any assumption or laziness. Whenever in doubt it is always a good thing to discuss the issue with colleagues rather than jumping to any false conclusions. Let them know what you are seeing and if they have seen this error before or if this is a new issue. Create a new bug once confirmed as a valid new issue without wasting any further time.

Stay away from hacks
Its very tempting to find hacks to unblock and get around the problem like creating a fresh configuration or using a different system. Nothing is more shameful and painful for a tester but to find that customer has found a bug which he or she once knowingly avoided. To drive the point home, every time you shy away from an error, you are allowing an issue to slip through the crack which is very likely to fall in customers plate.

The 7 Habits of Great Testers

Loves to find bugs
It is one thing to define a processes and it is another thing to follow the process. But process is of no use if it makes it difficult for the testers to find bugs. However great testers are never disturbed by any process. Their passion is to find defects. Nothing except finding bugs brings smile to their face. Good testers walk to work with just one mission – Break the product and uncover issues.

Automate the work
Good testers don’t wait for someone else to automate but they automate their own work. Automation not only includes automating the tests but automating each and every monotonous and repeated work which they are required to to.

Troubleshoot issues
Talented testers are good troubleshooters too. The can not only troubleshoot the new bugs but are also good in troubleshooting the automation failures. Good troubleshooting testers can answer: What the issue is, where and when is it happening and sometimes even, why is it happening.

Document everything
A very important trait of a good tester is that they document everything they do, right from steps to reproduce the bug to adding comments in the automation code. And from test steps to adding FAQs to providing matrix to management, they document everything thoroughly. Good testers don’t like peeling the same onion again and hence they document every trick of the trade with the hope to save someone else with the same grief.

Keep the testbed up to date.
Good testers always keep the testbed in healthy condition making sure that they are always working on the latest build, latest tools and correct configuration. And returning the system in more cleaner state than it was found is their mantra.

Test more, say less
They believe in doing more and demanding less. Only thing they like to demand is top notch product quality. If they are asked to test A, B & C then they go beyond and rather test A to Z. Exploring and testing more than required is in their DNA.

Show don’t tell.
Neither do they complain nor do they throw rotten apples at someone. They stay away from any kind of politics. They don’t sweat the small stuff. Instead they are always available and ready to help. They believe in motivating colleagues by setting examples and leading from front. They are engineers first and then any kind of lead.