Thursday, May 23, 2019

How to Turn Cynicism into Positive Action

You sense that cynicism grows inside you. Instead of trying to push it away and treat it as something to be avoided, you should accept it and see it as opportunities for improvement: of yourself and others. Your levels of cynicism will ebb and flow. When it reaches high tide, you must pay attention to it and be deliberate in using it for good. Of course, you need to bolster your emotional intelligence at those times because you don't want to speak rudely to the wrong people. Choose your words carefully.

Why do you feel cynical? Self reflect to ask yourself why. You might feel unchallenged at work despite your efforts to change this. You could view the people around you as insensitive to your needs. Perhaps your leaders where you work offer one self-served business fad after another. You could have other reasons. Whatever they may be, find them and write them down privately.

Let's suppose you take on a non-technical leadership role. You know you need to develop your soft skills, yet you yearn to invent exciting technologies. Your company's culture infers that employees in leadership roles focus on one project and refrain from spearheading side projects. You feel frustrated and feel your growth stagnates. This feeds your cynicism. 

Who says you can't develop leadership skills while doing technical work? Why must you work on the big projects whose leadership cares only about meeting customer needs instead of trying to combine that with developing new technologies? You might feel like you can't ask these questions at your level within the organization.

How can you flip this upside down to a positive? Find people whom you trust and speak to them. In business, you should speak to your mentor or coach. Their perspectives will help you see things at different angles. You might think narrowly and miss the big picture. For example, a program manager frequently gives you critical feedback. Does this mean you perform poorly? A positive mindset sees these as opportunities for improvement. However, the cynical mind views them as personal attacks. The criticism means the end of the world because poor performance equates to a stagnant career.

How can other's perspectives transform a cynical mind to positive? Cynicism is a sign of a fixed mindset. Mentors point out that other paths to success exist. (Click to Tweet) Do the best you can, and you will develop a reputation as someone who cares about the quality of their work. What about the program manager who gives negative feedback? They strive to meet program goals, so they feel pressure to motivate their team to success. Not everyone knows how to communicate well, and this applies to giving feedback.

If someone gives you negative feedback that causes concern, you will need to confront that person. Be bold and reach out to your network. Your peers can guide you in expressing your concerns respectfully. Trusted advisors can help you figure out how to address this person's concerns. Remember, you focus on the positive, and you take action to help that person succeed.

What if you still yearn for other things you find lacking during your day job? Instead of moping around, take up a side hustle. Even if it starts as a hobby, it will take your mind off work. You might develop skills that you could apply in your current role, or discuss during interviews for alternative positions. Alternatively, give back to your community by volunteering.  Take on a leadership role in your local church, synagogue, temple, or mosque. They need your assistance, and you will find joy in helping others.

Your best answer might be finding work somewhere else. It is one thing to feel cynical. It is another to allow this cynicism from blocking your best work. Take deep breaths. Relax. Do something else and go back to work the following day feeling refreshed. However you feel, you must do your best possible work. Your reputation depends on it. Even if you change jobs, you will tell your story of how you overcame adversity to succeed. Yes, you will hurt during the process, yet you will persevere. You will get through the difficulties. You will succeed.

Look, cynicism can prevent you from taking positive action at times when they matter the most. Nurturing one's tendency for introversion waters cynicism, and it grows in the darkness. Instead, you should practice extroversion to shed light on your cynicism. Positive light allows your growth mindset to flourish and minimizes cynicism.


Tuesday, May 21, 2019

Sometimes leadership means cleaning up the mess you created

Several months ago, my manager put me in charge of organizing a Critical Design Review or CDR. This was not just any CDR. During this CDR, high school students from five robotics teams that my company supports would visit us and present their designs to company managers and their school administrators. As you could imagine, the CDR involved much planning over a period of several months. Some might say it was like organizing five weddings simultaneously.

To give you some background, robotics volunteering is a requirement of a Leadership Development Program (LDP) that I am in. This involved both mentoring high school students and planning the CDR. As the Director of the CDR, you might think I had it together. Quite the opposite: I over relied on email as my preferred means of conversation, and this naturally caused much confusion. To make matters worse, I shied away from delegating tasks to my LDP peers. Don’t get me wrong. I eventually made the CDR a success but not without creating a royal mess of things along the way.
How did I create a mess? After meeting with my LDP manager, she strongly suggested I delegate tasks. On the surface, this presented no difficulties, as I maintained an accurate task list. I even decided how to assign responsibilities. The mess, however, spilled out when I underestimated the effort needed to complete one such task: contact facilities to put them name signs on the auditorium row ends indicating where each robotics team would sit. I thought to myself, “that’s just an email to the facilities manager. I can do that myself.”

Oh, how wrong I was. It turned out that it did not fall under facilities’ roles and responsibilities to place seating markers. By putting out that request, I rubbed the facilities manager the wrong way. Word reached out events coordinator who promptly called me and yelled at me: everyone involved had no clue what they needed to do, I didn’t use services of administrators who offered their help, and the event is a week away.

At her advice, I organized a meeting with all of the people involved. I made a chart of the things that needed to be done and those responsible: lunches ordered, tables and chairs setup, audio visual systems setup, name badges to be ordered and put out, and so forth. By speaking with everyone on the phone, I left no confusion remaining. I double checked we had everything covered. The events coordinator who told me earlier that day later told me I was doing a great job.

In the end, the high school robotics CDR came and went with great success. What did I learn from this experience?
  • Rely on your team and delegate. If you ask them nicely, they will gladly help you. After all, no one wants to fail.
  • Get on the phone! In this age of email and IMs, it’s easy to forget in person communication. Of course, that doesn’t mean to not follow up with email. It means that you should speak to people directly instead of sending mass emails that could cause confusion.
  • Focus on the positive. It was so easy to see all that I did wrong, yet I remembered to focus on what was going right. This prevented me from being too hard on myself when I need to push forward with the project.
What would I do differently if I was asked to organize a similar event in the future? Given that I discussed lessons learned with my team, I would include them all in the first planning meeting for the next event. This way, I would clearly communicate all the tasks required to make the next event successful and not create any messes along the way.


Monday, May 20, 2019

Learn from your mistakes to build on your experiences

One aspect of being an effective leader is the ability to learn from your mistakes. You can think of mistakes as opportunities to improve yourself. The first step to learning from a mistake is to admit that you made a mistake. I’ve made many mistakes throughout my career. For example, I interned at Disney Research while earning my PhD. After completing my PhD, I interviewed for a post doctorate position. Despite doing well on my internship and publishing a conference paper, I did not get the job. What happened? The research scientist I worked with left Disney Research to become a professor, and his replacement decided to take the research group in a different direction. I did not consider this. Lesson learned? When interviewing for a position, you must make sure that your skills and experiences align with the company’s strategy.
Once you admit your errors, you can reflect on what caused you to make it:
  • Did you not listen when receiving a task? I’ve done this myself on many occasions. For example, I’ve allowed my mind to wander instead of listening to the person talking. Here, it’s important to not have any distractions. Take notes. I prefer an old fashioned pen and notebook.
  • Did you misunderstand what was asked of you? It happens to all of us occasionally. Recently, I spoke to a program manager about setting up a peer review meeting. I noted that I should have the meeting in a couple weeks. When I received the meeting notice, he commented that we weren’t ready to have the meeting. Simple mistake made, so I cancelled the meeting.
  • Did you overestimate your own abilities? You thought you had the skills necessary to complete your project, and you soon realized that you did not know what you’re doing. This happened to me when I took a stretch assignment in software engineering. A month into the assignment, I realized that I was over my head in writing a software application.bi spoke to my Agile team, and they gave me advice and assistance I needed to complete it.
  • Did you not care about what you were doing? When you feel unchallenged, it becomes easy to not care for your quality of work. This is a dangerous place to be because you will develop a reputation for shoddy work. You get out of this mindset by proactively speaking to your manager. If you feel uncomfortable, speak to your mentor or someone you trust. I’ve had to complete administrative tasks multiple times. These can be boring, yet they need to be done. In fact, I’ve helped my manager in the past by volunteering to complete project plans.
  • Did you not double-check your work? This is a common mistake whether one writes software, documentation, or designs hardware. In fact, it is different to find your own mistakes in your work because we all become blind to our own endeavors. There are multiple ways to prevent mistakes. Take a break if you get tired. I’ve found myself in situations when I’ve worked long days and returned the following morning to correct the errors I created because I was tired. Alternatively, hand your work over to a colleague to look at it. A fresh pair of eyes can find flaws you missed. In fact, this is the general idea of peer reviews: people unfamiliar with your work will mark your errors to help you improve.
I could list many more examples why people make mistakes. The important things for you to do after admitting errors are to reflect on them and learn. You should ask how you messed up and write ideas on how you can do better next time. Although it can be easy to dwell on your missteps, you should put them aside and not be hard on yourself. As long as you learn your lessons, you will do better next time.


Sunday, May 19, 2019

My First Alexa Skill -- Quiz on the Top 50 Podcasts in the United States

Last year, I took on a rotational assignment in my company in a software engineering role. Although I'm currently in a new rotation as a Product Lead for one of my company's modeling and simulation software products, I've realized that I enjoy writing software. There exist many ways to write your own software and create products that you can sell to customers. I recently discovered the Alexa Skills Kit (ASK). Basically, you can write your own skill for Alexa and link In Skill Purchases to monetize your skill. I started going through Amazon's Skill tutorials, so I can learn how to make Alexa skills. To date, I've created a skill I've titled "US Podcasts Top 50 Quiz" that was based off of the ASK beginners tutorial called the Quiz Game Skill. In this post, I will talk about my impressions of developing my first skill. Click to tweet

To get started with developing Alexa skills, you need to setup two different accounts:

  1. Alexa Skills Developer
  2. Amazon Web Services (AWS)
Don't worry, both of these accounts are free to setup. Obviously, you need to setup an Alexa Skills Developer account to develop your skills. It is not so obvious that you need an AWS account. Unless you have your own business / website account through an Internet Service Provider, you will need to setup a free AWS account to host your skills and any files you need for Alexa displays. The AWS Lamda Free Tier is limited in the sense that you get 1 million requests per year. However, unless your Alexa skills go viral, you will not need to upgrade your AWS free account.

Once I got my ASK developer and AWS free accounts setup, I went through the Quiz Game Skill tutorial / example. The quiz game is simple: You open the skill, and Alexa gives you a prompt telling you that she can quiz you on the 50 States in the USA, or she can give you more information on one of the fifty states. The tutorial gives you multiple options on how you want to develop this skill:
  • Through the ASK Developers Portal
  • Via the ASK Command Line Interface (CLI)
  • Through AWS Hosted Instructions
If this is your first time developing an Alexa skill, you should choose the ASK Developers Portal option. The Developers Portal is a web-based area where you can develop your Alexa Skills. The portal is simple to use. The kicker is that you need to remember to include all of the files that the tutorial says to copy. (If you are an experienced programmer who feels comfortable developing code from scratch, I suggest that you choose the ASK CLI option. You will need to git clone the Quiz Games code and edit it through your own IDE of choice.)

Using the first option, you will need to create a new skill in your Developers Portal. I found this simple to do, as the tutorial gives step-by-step instructions. Once you create your skill named "Quiz Show," you will need to copy three files (via copy and paste) into the portal:
  1. The Interaction Model
  2. index.js: A node.js file containing all of the Javascript code for invoking Alexa and having her run your skill
  3. package.json: A JSON file that includes your skill's name, versioning information, and dependencies
When you go through the tutorial, you will name your skill "Game Show" or something like it. At a later time, you will want to rename your skill to reflect the skill you intend to publish. In my case, I renamed my skill at certification. I'll talk about certification later.

Getting the original skill running through the Developers Portal is simple: Once you copy the files over, you select the "Test" tab and enable Development per the tutorial instructions. When I first got my Game Quiz skill setup, all the simulated Alexa would do was give the help instructions (i.e., tell me about the skill and what she could do with it). After some detailed troubleshooting, I realized I skipped the step to copy the Interaction Model into my own code. I did that, built the model in the Build tab, and deployed my skill in the Code tab.

With the Fifty US States Quiz Show skill working, I decided to re-purpose it into my own quiz show skill. I decided on making a quiz show based off the Top 100 US Podcasts, but I limited it to the Top 50 because I did not see value in quizzing all 100 podcasts. I chose podcasts as a quiz topic because I enjoy listening to podcasts during my commute, and I was curious if any of the podcasts I listen to are on that list. I quickly decided I needed to learn the JavaScript Object Notation (JSON) because the answers to the quiz are included in the interaction model, and the quiz details are included in the node.js formatted index.js file. Luckily, Google Chrome has a JSON extension that makes it easy to understand JSON formatting. In short, modifying the tutorial files to create your own skill involves a few steps:
  1. Rewording the Alexa statements (i.e., how Alexa responds to your voice commands) to be specific to your skill in the index.js file.
  2. Including your quiz data in the index.js file in a JSON like format. (I say like because the data fields are not surrounded by quotation marks as in the standard JSON format).
  3. Writing the Alexa skill invocation in the Interaction Model (i.e., "open podcast top fifty quiz")
  4. Including any JSON custom field definitions in the Interaction Model.
  5. Writing sample Alexa interactions (i.e., "give me a quiz", or "tell me about XYZ") in the Interaction Model
To get your new skill to work with Alexa, it is important that the Interaction Model JSON data agrees with the data set in your index.js file. I copied the Podcast information (title, artist, network, ranking) into a CSV file and used a CSV to JSON converter to format the information for inclusion in my index.js file and Interaction Model. Because I needed to do this for each slot (i.e., data object), I found it easier to save the Interaction Model into its own JSON file that included everything, and I edited the file in Notepad++. Of course, I used the Chrome JSON extension to check my formatting to make sure I did not miss a bracket before pasting the entire Interaction Model in the Developers Portal's built in JSON editor.

Once I finished the five steps above, I tested my new Alexa skill via the Test tab. Testing a skill is fairly simple: You invoke the Alexa skill using the invocation phrase, and you either type in the user responses, or you say your response after holding down the microphone icon. The Test window shows you both the JSON inputs to your skill, and your skill's outputs. I found this advantageous to test my skill by cheating on my quiz. Clearly, I didn't care that I gamed my own quiz because my intent was to see if the skill counted my answer as incorrect if I gave the correct answer. I learned through this exercise to type out numbers (i.e., five instead of 5) because the Test tab does not automatically recognize numeric. After reading Amazon's ASK documentation, it notes that the standard way of testing using numbers is to write out the number if you type to test the skill.

Clearly, the next step after I successfully developed my skill is to publish it. Amazon has skill developers go through a new skill certification process via the Developer portal Distribution tab. This process makes sure that your skill meets Amazon's standards. You first write a description of your skill and sample invocations. This part of the certification process is important because people find your skill by searching keywords found in the description. After you enter information describing the skill, the ASK Developer Portal runs basic tests that your skill must pass. Once your skill passes these steps, it is sent to Amazon for their developers to review and either accept or send back to you with suggested changes. As of this post, my Top 50 US Podcasts Quiz skill is waiting on the Amazon review.

Once you develop skills, you can monetize them by adding In Skill Products (ISPs). ISPs can be skill add-ons, products that you sell through Amazon, or services you sell through your skill. Think of add-ons as gaming additions: You install a game skill that includes just the basics, and your customer can buy additions to this game. For example, if you develop an automobile quiz game, you could make your basic skill to include cars made by Ford. If your customer likes your Ford cars quiz, you could up-sell add-ons that include questions on cars made by Chevrolet, Honda, Toyota, and so-on. I will talk about ISPs in a different post.

In closing, Alexa skills are fairly simple to develop using the ASK Developer Portal. I will keep you posted on the status of my Top 50 US Podcasts Quiz and other skills I develop using the ASK tutorials in future post. If you like this post, and you have an Ad Blocker enabled, please whitelist my page and click through the Amazon links. I am a member of the Amazon Affiliate Program, and get credit only for purchases made through my links.