What Yoda taught me about being a mentor

Like I mentioned in my blog post, What I’ve Learned from Mr. Miyagi, the elderly, wise, green alien creature from the Star Wars saga, Yoda, was another model for how I learned to be a great mentor. I didn’t know it at the time, but while I watched The Empire Strikes Back when I was a young boy, I was learning many life skills while I dreamed of being Luke Skywalker flying an X-Wing, commanding the force, taking on the bag guys, and learning to overcome the dark side, and in particular, Darth Vader.

Yoda was introduced into the story when Luke Skywalker crash lands into Dagobah, a swampy forest planet. After a moment trying to gather his surroundings, Yoda arrives in scene as a quirky, curious, alien creature who speaks in broken english, but still shows some sarcastic and quippy wisdom when he speaks. For instance, when Yoda asks Luke why he is there, after some banter, Luke states, “I’m looking for a great warrior.” Yoda immediately in his broken english language states, “Great warrior? War’s not make one great.”

You can watch the entire dialog above, but the truth of the introduction is that Luke is overconfident, and almost cocky. He has many thoughts about how everything works, how he is supposed to become a Jedi Knight, how his destiny is supposed to pan out, and in reality, he has much growing up to do. Luke is like many of us when we start out on our career paths. We have a small education and maybe some bits and pieces of real world experience, but in practice, we don’t have much experience at all.

Many of us, when seeking mentorship, are ready to receive it. Luke, on the other hand, was not. He argues with Yoda and Obi Wan Kenobi’s force ghost about whether he is ready to be a Jedi Knight or not. Eventually, they all agree he will finish what he starts and become the Jedi Knight he is meant to become. This submission of will is important, because being a good mentee is about submitting to the process, knowing that in the future you’ll be able to expand your wings and fly on your own.

Yoda trained Luke on calming his mind and approaching challenges in a clear frame of mind and to stay focused. He also taught Luke small concepts and allowed him to build upon them later, even though he didn’t know why he was doing them in the first place. This idea of foundational building was something I explored with how Mr. Miyagi trained Daniel in The Karate Kid. This was the same with Yoda. He started by having Luke move small objects with the force. Later in the training scenes, he had Luke try and move his X-Wing from the swamp as it began to sink. He utters some of his best lines during this scene, “No. Try not. Do or do not, there is no try.” or Luke saying, “I don’t believe it,” when Yoda uses the force to move his X-Wing from the swamp and Yoda replies, “That is why you fail.”

I use these same techniques when I mentor. I often only give out bite size pieces of information which are enough to get the job at hand completed. This allows my mentees to become masters of that technique faster, and later one we can connect the dots. Keeping things simple is a core value of mine. Not only is it the best way to keep things progressing, but there are many times I learn new techniques as well. As I have explored in many of my previous posts, including Teach a Man To Fish, I point out that the best leaders and mentors surround themselves with smart people, and allow them permission to fail. Everyone gets an opportunity for growth this way.

In conclusion, Yoda and many other wise sages in many movies taught me much about how I mentor today. Lessons such as keeping things simple, staying focused and submitting to the process are all key to growth. We will explore this more in the future, but for now, venture out and try these things out for your teams.  May the force be with you.

Advertisement

What I’ve Learned From Mr. Miyagi

Like many kids who grew up in the 1980’s, I learned a lot about life from two wise sages. First, was Yoda, the green, grumpy, 900 year old Jedi master, who trained Luke Skywalker to reach his potential and overcome against all odds to destroy the dark side forever (Well, at least until Episode VII came out in 2015, because the dark side somehow came back again). I often quote Yoda to my wife’s dismay with, “No. Try not. Do or do not. There is no try.”

We’ll tackle Yoda in a future post, but in the interest of staying more grounded in reality, I’d like to focus on my second choice, and that is Mr. Kesuke Miyagi or Mr. Nariyoshi Miyagi, as he went by both names in the movie series. For the purposes of how I knew him, Daniel Laruso, his student in most of the movies, called him Mr. Miyagi, so that is how I knew him as well.

Mr. Miyagi was a fictional character, but the things he did and said in the three Karate Kid movies (I know there was a fourth one much later and then a remake after Pat Morita died featuring Jackie Chan as the Karate mentor) were very much things that shaped who I am and how I live my own life, even today. I constantly find myself quoting Mr. Miyagi as well. “Walk on the road? Walk right side safe. Walk left side safe. Walk middle, sooner or later get squished just like grape.”

Mr. Miyagi seemed to always have a solution, but I think it was just a confidence in his response, even if he didn’t know how the outcome might play out. In the first movie, there was a scene on the beach where some racist drunk guys didn’t want to move from their spot so Mr. Miyagi and Daniel could leave. They had taken up shop on Mr. Miyagi’s truck and had placed several empty beer bottles there. Mr. Miyagi asks them to remove the bottles so they can leave and they refuse. He then proceeds to Karate chop the beer bottles in half, and the guys remove them and scurry off. Daniel asks Mr. Miyagi how he did that, and he simply replies, “I don’t know. First time.” You can watch below, skip ahead to about 2:36 for the scene.

This scene is perfect Mr. Miyagi with a little humor and humility, simplicity and yet in complete control. This is a theme with Mr. Miyagi throughout the entire series. Another scene that demonstrates this is when he takes Daniel to the Cobra Kai dojo to talk to the bully kids and their sensei in hopes that they might leave Daniel alone. When Mr. Miyagi realizes this won’t happen he volunteers Daniel to fight in the All Valley Karate Tournament in return for no more bullying. The sensei agrees. After leaving Daniel is furious that he has to fight, and Mr. Miyagi says something to the effect of, “I just saved you two months beatings!”

Mr. Miyagi taught Daniel lessons using cryptic methods, but it all came back to simplicity. I’m sure nearly everyone knows “Wax on. Wax off.” or “Sand the floor.” or “Paint the fence.” or “Side to side”. These being his way of instructing Daniel in the basics of self defense. He also had him do manual labor to build strength and endurance.

Mr. Miyagi understood how to live a rewarding life, even though you knew throughout the films that he struggled with this himself. He was an immigrant and veteran of World War II. He lost his wife and unborn child during the time he was away at war and never really let go of this, and while they never stated it directly in the movie, they definitely implied he probably battled some sort of alcohol abuse grieving these losses. He at least commemorates the anniversary each year by dressing up in his military uniform and by getting hammered to the point he passes out. Daniel finds him during an anniversary and sees a side of his friend and mentor to show he is just a man with flaws who is doing the best he can.

In the second movie, we discover that Mr. Miyagi also had a relationship before he left Okinawa. He and his best friend were going to fight to the death over a woman, and Mr. Miyagi knew he couldn’t kill his friend, so he gave up his love and left the island. When he returns he finds that he still loves her and she never married and never stopped loving him either. Of course, as these things go, he leaves to go back home at the end, but he and his friend patch up their relationship before he leaves, and all is well (I guess?).

Mr. Miyagi, while a man with flaws, also shows great wisdom in the entirety of the series (even the fourth film I suppose). He says statements of simplicity and devises simple challenges to get his points across and be the best mentor and friend to Daniel he can be. As a leader, there is much to be learned from Mr. Miyagi’s approach to leadership. Keeping things simple is often the best way to empower those you lead to take ownership themselves and become the best they can be while you nudge them in the right direction from time to time.

One Play at a Time

Today brings sad news that former NFL head coach, Marty Schottenheimer, is suffering from early onset Alzheimer’s Disease. There are plenty of news sources reporting that he has been suffering from this terrible disease now for about five years.

Legendary NFL Coach Marty Schottenheimer Selling Carolina Mansion ...

As a Kansas Citian who is still in his 30’s (barely), my formative years were spent watching Marty lead the Kansas City Chiefs using awe inspiring quotes about getting the gleam, igniting the rocket ship, or taking it one play at a time. His voice was familiar to me, as every time I turned on the radio or television, I couldn’t escape his voice saying, “Nothing stops a Trane”, as the spokesperson of Trane HVAC systems. His voice was so familiar he seemed like someone I knew, like a long lost uncle.

Marty was an iconic figure in my mind and to me was the epitome of a head coach. He was known for Martyball, with his run dominated offense and outstanding defenses. He even got a polka song written for him! He led talented and not so talented teams to really good records. He only had two losing seasons in his career, his final one in Kansas City in 1998, where the promising season derailed and finished at 7-9 and his second season in San Diego in 2003, where they went 4-12, but followed that record in 2004 with a 12-4 record and first place finish in the AFC West.

Schottenheimer smitten with Thomas from the start - News - The ...

With all of his success, he still kept things very simple. He was very focused on the task at hand and didn’t get caught up in looking backwards or forwards. This is something I try and do in my career and life. In any situation, you only have control over your next action. You can’t hit the undo button and get another shot at what you already did and you can’t skip forward and change the future.

Marty Schottenheimer's congratulatory message for Andy Reid | The ...

This is the lesson that I learned by watching Marty Schottenheimer coach the Kansas City Chiefs in the 90’s. His teams were so good at moving onto the next play and not dwelling on the past. I can recall countless times I watched defensive stands, last second field goals, blocked kicks or kick returns for a win. If you think of all of the times you have failed before, you’ll never be prepared to succeed when called upon. This is what Marty represents to me. He now has an incredible fight ahead of him as he undergoes experimental treatments and continuing loss of his faculties as this disease progresses. Knowing Marty from being the fanatic observer I was, I know he will continue to live his life one day at a time and appreciate every moment, because that is all he can do.

Go get ’em coach!

Build Your Team With Character First

So much can be said about character. To me, it is the number one thing I look for in another person in any walk of life, not just professionally. Character is our moral fiber. It is what makes us who we are and it provides us what we need when we are at our whit’s end.

Mark Twain said, “It is curious that physical courage should be so common in the world and moral courage so rare.” I don’t know if it is so rare or it is just not advertised. Doing the right thing, being paitent and kind, being strong when the chips are on the line, these are things that just aren’t talked about. They are exactly the types of things I look for in those around me.

I am a huge football fan. My team I root for is the Kansas City Chiefs. In 1998, after a very good run in 1997 and a 13-3 regular season record and a disappointing loss to the division rival Denver Broncos in the divisional round of the playoffs, Marty Schottenheimer was going all-in to try and win a Super Bowl. He brought in several players of questionable character, but with above average talent. This move backfired and Marty experienced his first and only losing season in his coaching career, going 7-9. Marty went against his moral fiber and brought in players purely on talent. He never did this again in his other coaching stops. He only had one other losing season.

In my own career, I have spent much of the interview process talking with the candidate. I’ve been known to take a candidate to Starbucks and buy them a coffee and just try and get to know them. During nice weather, I might take them on a walk through the trails by our offices if their shoes are up for it. This approach tells me more about the person and I also get a feel for their qualifications. I can always coach them up or teach the person a skill, but I can’t teach them to be a person I trust with the operation and execution of my future and the futures of those I work with.

In short, when looking to who to surround yourself with, look to character before talent and you’ll do much better in the long run. I’ve mentioned George Washington as one historical person I’ve looked up to as a leader. He was quoted as saying, “It is better to be alone than in bad company.” There is so much truth in this short statement.

Teach A Man To Fish

Everyone has heard the expression, “Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime,” or some variation of this. In fact, it’s been quoted, paraphrased, blogged, memed and parodied so many times, it hardly seems blog post worthy anymore. The phrase itself is a fairly novel concept. The real reward in life is learning to be self sufficient and to not be dependent on others. This is truly where happiness comes from. A new penny loses it’s shine eventually and is just a penny, but if you know how to make that one penny into many pennies, the reward is so much greater. Blah, blah, blah, etcetera, etcetera, etcetera. We all know this, right?

When I got started in IT leadership, I was so obsessed with making sure things were handled to my standard that I hoarded much of the work. I would tell myself that I was protecting my employees from having to deal with such things, but in actuality I was hindering their development. There was the occasional employee I felt so comfortable with that I would hand one particular project to them and let them own it, but for the most part I felt like I had to have my hands on everything that was going on. I felt if I didn’t do this, we would fail. I felt such ownership over every piece of software, hardware, process, or procedure that I couldn’t let it go.

I can still remember having several conversations with my boss about delegation. We talked on the subject often, and I understood that it was something I needed to get better at, but I sure didn’t know how. How do you own something, and be responsible for it’s success and yet let other people do it? This concept was hard to grasp. It was hard to grasp for him too, but we both vowed to get better at it.

washington-meeting-his-generals-war-is-hell-store

I remember seeing a program about George Washington once, and on the program they talked about his leadership style. George would gather those whose opinions he valued, hear them out and make a call. I visualize them in a circle around some old 1700’s wood table made from a tree trunk, standing of course, in full dress for the period. I picture them with their wigs and hats. George would address the group with the issue, and then he would back off and let them all talk about it. He would observe and in the end I picture him clearing his throat to a silence of the crowd and just telling them how it is. George took the opinions and ideas and formulated his own idea and then that is what happened. That is my image of a good leader. The thing was, George had those around him that he trusted to provide value. How did he get to that point? Sure you could say it was because he served in the trenches with them. You could say it was because George always had the absolute best around him at all times. The truth probably is that George did his best to teach them all to fish. He made them better, so in the end he was better at his job.

fish

To come full circle, I think we can learn something from George Washington. For us to be the absolute best version of ourselves, it is our responsibility to teach everyone around us to fish. In business, now, I think I do a much better job of this. I give everyone who works for me the permission to fail. In fact, I encourage it. I want them to try to solve problems on their own. I tell them that my door is always open to talk through what they are working on, but in the end, they are the ones working on it. I will not do it for them, even at the expense of the project or a deadline. In my early days, I had no problem sitting down at my employee’s workstation and running through the solution to whatever problem they were working on and not thinking twice about it. Each time I did this, I was setting them back days, weeks, or months in their development and maturation as a technology professional. To be the best leader I can be, it is up to me to make those around me the absolute best they can be. If I do this, in the end, we will all reap the rewards of learning to fish.

Celebrate Every Win

In the fast paced world we live in it can be very easy to skip from one thing to the next and expect for things to work out or just flat out expect to win. I do this. I expect to win, no matter the situation. I can be teaching someone a skill, building something, playing a game, having an argument or even driving to work, I expect to win. I would argue, this isn’t a bad quality at all, except when you don’t recognize your accomplishments. Learning to celebrate success is truly what winning is about at any level.

It took me years to realize that sometimes winning can happen in losing too. No one celebrates losing. Losing imagery usually looks something like this:

losing

The truth about losing is sometimes things don’t go as planned. Sometimes you can win and still not reach the pinnacle. I think back to the 2014 Kansas City Royals coming 90 feet from tying the game in the 9th inning of Game 7 of the World Series against Madison Bumgarner and the Giants. They didn’t win the game or the series, but they proved to everyone in Kansas City that they were a force to be reckoned with. They eventually won the whole thing in 2015 against the Mets and are off to a promising start in 2016 despite the projections of regression.

Winning has become second nature to the Royals. How did they get to that after decades of losing? It’s my belief that winning for the Royals started while they were still losing ball games. The players they brought in and the players they had developed knew what winning was. It was something they lived and breathed everyday in their work ethic and execution. They knew, in order to be successful, winning is sacrifice, determination and hard work. It’s believing in yourself and your team.

I listen to many podcasts about leadership and I recall an interview with Joel Manby, who is the new CEO of SeaWorld Parks & Entertainment and former President and Chief Executive Officer of Herschend Family Entertainment. He says, “The enthusiasm of the guest experience can never rise higher than the enthusiasm of your own employees.” This is 100% true!  The Royals displayed that when they were drawing 8,000 fans to a game on a Tuesday night in mid July because they were 15 games out of first. They would show so much enthusiasm that it was making opposing teams angry. They would celebrate every little victory in a game, even though they might lose the game. They took much heat over signing hand gestures back to the dugout when getting a big hit or stealing a base. They still do them!

giphy (1)
giphy (2)

Through all of these acts of showmanship, they were demonstrating and building a belief in themselves as players and the organization. They were playing with enthusiasm for their job, team, city, and fan base that had not been seen before. It paid off as the club set attendance records in 2015. The fans bought into that enthusiasm. The increased winning on the field also helped that cause, but before the wins came they were creating a mindset for success. They were building a foundation, and this my friends, is winning even though you are losing. These are the building blocks to greatness.

How does all of that relate back to being a better leader, team member, partner, or employee? It is up to you to find it in yourself to show unbridled enthusiasm about what you are doing. You must outwork your competition. You must have more focus and better execution. It is your choice to believe that you will achieve in whatever you are doing. Even when you fall, you must get back up again, because each step forward is a win, even if you get knocked back a few times along the way. You too can be like the 2015 Kansas City Royals and have the greatest success in your business or chosen profession, but first you must commit on the deepest of levels to being a success even before being a success. Most importantly, celebrate every single step towards your goal, and don’t take any of them for granted.

Carrots and Sticks

The subject of motivation came up several years ago in reference to some employee turnover as well as increasing salary costs for IT professionals. What truly motivates us as individuals and teams to accomplish goals beyond carrots and sticks? If you aren’t familiar with the term carrots and sticks, it refers to the idea of providing rewards for results, carrots, or punishment for lack of results, sticks.

In reference to the workplace, at some point it cannot just be about dollars and cents. If this were the case, as employees, we would continually move from place to place accepting offers from the highest bidder and never care about the work we were doing. Some people make a career out of this I suppose, but I am not one of those types. I’ve been at my place of work for 15 years and while every day isn’t always roses, I have enjoyed my time there and have never really given much consideration to leaving, ever.

What are the things that add intrinsic value and not just compensational value to a person like myself? I know in my own case, I have turned down many opportunities over the years. I have been offered total package compensation as much as three to four times what I was making at the time. Was I a fool for letting that go or are there aspects about my job that are worth more to me than money? How do I convince or recruit other like-minded individuals so we get long term employees and work towards a common goal without having to stop and restart as people come and go?

Daniel H. Pink is an accomplished author and speaker on topics of business and in particular gained much notoriety on the topic of motivation with his book, Drive: The Surprising Truth About What Motivates Us. This seemed like just what we were looking for to help answer some of these questions.

I have a long commute in the morning, so I opted for the audiobook.  Either way, it’s a short read or listen and can be digested in just a few days. The book itself is only 288 pages and many are filled with worksheets and other tools for analysis. I can’t say I agree with every word that streams from Daniel H. Pink, but I do think his core ideas are solid in their foundation. As someone who has found intrinsic value in my place of work, I was able to look at my own situation and see what made me happy in my career and try and work with the company I work for to help others feel those same things.

Daniel H. Pink also did a TED Talk on the topic of motivation and if you really want to be entertained, the RSA did a cartoon animation of the talk. I highly recommend at least listening to the TED Talk or watching the video. The ideas of giving employees the ability to have autonomy, the ability to have mastery over their skills and a sense of purpose in their career are intrinsic values which, as long as the employee is compensated well with their peers, creating an environment where they can flourish will reward an organization well. Daniel H. Pink mentions in both the book and the TED Talk about the software company, Atlassian, and the idea of FedEx Friday’s as well as the open source movement as examples of getting value back without a carrot or a stick.

Once I digested the information, it was time for action. How do we turn a workplace into a place where others feel the same levels of autonomy, mastery and purpose that I have felt. This is a lot harder question to answer than it is to ask. We started with efforts around the office like free soda and lunches or company outings. We switched to agile methodologies for the entire IT department. We had been operating in small, dedicated teams, so we tried one big team. We then tried smaller teams once again. We tried giving ownership of design, or ownership of process. We even tried the FedEx Friday idea. We changed the structure of teams and how they functioned over and over. There were small improvements, but nothing terribly lasting or exciting.

At some point it dawned on me that in order to have those things, we needed to retain the right people and hire the right people to make it happen. We needed folks that weren’t just here to do a day’s work and go home. We needed people who had what I referred to at the time as entrepreneurial spirit. These are people who are invested and have the spirit of innovation and risk-taking that all great entrepreneurs share. At this point I realized that I was not just an employee of a company, but rather the CEO of my own personal company and that is how my role had formed inside of the organization. We needed people that, while they may not see it in themselves, we saw that they were the CEO of their own self. This is the magic straw that mixes the Daniel H. Pink drink.

If you give someone autonomy who doesn’t have the right spirit, they become scared that they aren’t doing their job well. They become lost without direction. They are constantly looking over their shoulder and wondering if they are doing the right thing. They don’t know how to be a self starter. That same person doesn’t have the burning desire to master their skills. They might try an online course or a night class, but it’s money and time wasted. The content will go in one ear and out the other, because they don’t really want to learn it. They have no desire to become a master. That same person will feel lost and without purpose, and finally, that person will quit and go work somewhere else. I know this sounds very harsh, but it is the reality of the importance of finding the right mix of individuals to work together towards a common goal. Daniel H. Pink was right in his attributes of where motivation comes from, but he was definitely missing one important element. This is the root of the why.

Simon Sinek had a great TED Talk called Start With Why which talked about this very topic. I enjoyed his talk, however, I’d be lying if I said I bought into his entire talk, but I do agree with his core message. The why is just as important as the what, if not more important. Like I said before, this is the missing driver in making the motivation operating system work in the first place. You must recruit the best talent that also is wired with the burning desire to be motivated in the first place. I cannot make you motivated. This is something that exists within you. As a leader, it is my job to give you the tools to become a master, the reasoning or the why to give you purpose, and freedom or autonomy to do your job to the best of your ability and then it is my job to get out of the way and let you do your thing. If you fail or succeed, you did it on your terms, and this is ultimately what is best for the organization as a whole. If I did my part in recruiting the right people, we will all work together in accomplishing the goals we set out to do without having to use carrots and sticks to drive results .

Singular Purpose

I’ve written before about keeping things simple in software design. One such way to do this that I preach nearly daily is to give things a singular purpose. The moment you introduce multiple purposes is the moment you introduce complexity and most likely the need for a refactoring session in the very near future.

When I started professionally in software, our budget wasn’t large. Mostly, I had to figure things out on my own. I can recall a function we introduced called Search. At first, this function took about four parameters and returned a single output type, but after several software revisions the function took about twenty parameters and could return several different output types depending on an output parameter that told the developer which form was being returned. Why strongly type output?  That’s too easy. As you can imagine, this was where the idea of singular purpose started to make sense to me. Making my programs call a SearchThis function or a SearchThat function rather than all programs calling a single Search function.

How do we achieve singular purpose in design? This question can start a great session of paralysis by analysis if you let it. Most programming I do nowadays is object oriented, but this principle applies to any programming style or framework. Singular purpose starts at the application level, then goes to the class level, then to the method level, and even in the variables you declare and how you name them. It exists throughout the design.

SOA (Service Oriented Architecture) was our first attempt, organizationally, to bring singular purpose to the forefront of our designs from the ground up. This was a new way to think about programming, and building applications that provide single services and building a pipeline of navigation through the single service apps to solve a problem. This paradigm changed the way we build applications. In fact, most of our application design today follows the SOA pattern.

We started by chaining Windows services together with MSMQ (Microsoft Message Queue) and pushing a state object through different services that performed actions and appended data to our state object. We have experimented with other queues such as RabbitMQ and we have added caching servers into play such as Redis. We have even migrated these services to the cloud and used both AWS and Microsoft Azure native services to help drive these systems.

SOA is not the silver bullet when it comes to singular purpose. An example from our experience was that we wanted to build a pipeline that was only dependent on the database at the beginning and end of the journey. At some point in the build, one of the developers realized we needed to append information to our state object that came from the database from other processes that kicked off after the state object started on the pipeline. Rather than change when the pipeline started, we eventually caved, and added a service to append the necessary fields of information. This was still keeping with singular purpose, so no harm, no foul. However, because of code reuse, and maybe some impatience by some of the development staff, the database code that was added to a single service was also added to a second service, and then a third. At this point, I was no longer running this group, but from afar it became clear to me that singular purpose and SOA aren’t necessarily equal. The team was still following SOA, but they introduced complexity by having services that did one function and appended information from a database, as well as logged information to a database.

The lesson learned from the above story is that singular purpose has to be as important in your architecture as the problem you are solving. As I mentioned before, if not, you will be in for refactoring sessions sooner rather than later. The team that introduced the database into the several steps in our SOA design, also had to refactor the database out of the equation. They were contaminating their data from all directions and had to only pick specific points in which to allow new data into the model. This was the original design, and the correct solution to the problem at hand. Because we did not account for all scenarios up front, it became the easy way out to add a function to a single service rather than add a single service to the pipeline. It took a while for me to understand why, but I think I have figured it out. We need a system for SOA that makes it just as easy to add a service to the pipeline as it is to introduce a function to a service.

Recently, I have discovered Microsoft Azure WebJobs. I am so new to working with them, I can’t say they are the silver bullet to both SOA and singular purpose, but in my small experience with them, things are looking promising.  Expect an entire blog post dedicated to them very soon, but look them up.  They provide a framework to do very singular purposed design by exposing just a single function and allowing it to be called on a schedule or have it run continuously and even be triggered by events like messages in queues or files being uploaded. Very cool stuff! I am currently building my first SOA style system with them and I will provide a complete review very soon. The best part about them, is that they run in the space you have dedicated to an App Service in Azure, which is where you run your websites. These jobs can run either across the farm for your site, or as a singleton.

Singular purpose in software architecture is a key component to simple software design. It has to be as important as the problem you are solving to build long lasting, scalable, maintainable software systems. SOA is a good pattern to help reinforce singular purpose, but it is still up to you, as the developer, to make sure singular purpose is at the forefront of your thoughts and your actions. There are many tools, services, and frameworks available to help you in your quest for singular purpose. I am encouraged by WebJobs and I will provide an update as to my thoughts on them in the near future. Ultimately, it is on your shoulders to build specific apps, classes, and methods that tell a single story, rather than every story that needs to be told.  When we launched the Search method with twenty parameters, we found many years of headaches maintaining a poorly designed function that found itself interwoven into much of our infrastructure instead of the many hours or days of pain it would have been to refactor it out, or even better yet, the hours of contemplation about keeping things simple that could have saved us that complexity in the first place. Learn from this and happy coding! 🙂

SPOILER FREE: A Lesson We Should Take From Captain America: Civil War

As of writing this post, I have not seen the upcoming Marvel Studios movie, Captain America: Civil War. I will, however, be seeing it very soon.

I love what Marvel has done with the MCU (Marvel Cinematic Universe). This continuing storyline of movies over the past 8 years or so has been quite a fantastic ride and it is also a ride that doesn’t seem to be coming to an end any time soon. It has been very exciting seeing the characters grow, and I am super excited about Spider-Man joining the fray.

My excitement for the upcoming movie got me thinking about, as a leader in an organization, what lessons should I take from Captain America: Civil War based on what I know about the movie today?  The short synopsis for the movie is that the superheroes are divided against each other on whether to accept government regulation or should they continue to act as vigilantes. In a movie twist, Team Captain America is against government regulation and Team Iron Man is in favor of regulation. This is kind of the opposite of how the characters have acted up until now in the MCU. Iron Man/Tony Stark has been a symbol for flipping the bird against the government and acting however he pleases. In Iron Man 2 he claims to have privatised world peace and in The Avengers: Age of Ultron he creates the robot Ultron using alien technology, who ends up terrorizing the world. Captain America is a product of the military and has always put his nation above his own relationships, desires and existence and would never seem to be someone who would stand in the way of a governmental regulation.  However, maybe this isn’t that farfetched as Cap has seen government organizations corrupt all around him in his dealings with both S.H.I.E.L.D. and Hydra.

In some ways, being a leader in an organization is akin to Team Iron Man and accepting regulation. This could come in the form of a boss’s directives, company rules, government regulations, board decisions, stockholder decisions, or your peers thoughts. Rules and regulations protect us in many ways. I guess you could say, in some ways being a good leader is being a good follower. The first thing that comes to mind is information security. We can’t be reckless with information security. It’s not the right thing to do. Our corporations and their partners and clients depend on us to make sure we have things under lock and key and are following industry standards to make sure of it. This is a prime example where paving your way just doesn’t make sense. Another way might be with spending. When operating under a budget, it is our responsibility to make that budget work because the rest of the organization is counting on us to do so. Sometimes we need to check our ego at the door and realize that everything we do is not always going to be about coming in with guns a blazing.

As fun as being a follower is, being a leader is also a lot like Team Cap and continuing to be a vigilante, and fighting for truth, justice and the American way, right? Part of being a leader is most definitely being a pioneer, and paving new roads. Innovation is a huge part of being a technology leader. We need to think and rethink what it means to do whatever it is we do, and constantly reinvent ourselves from a technological standpoint. Technology is moving at such a rapid pace, if we become content with a certain pattern, practice, or technology, we already are behind our competition.

I have always related my role as a leader as someone who walks a tightrope between the sides of chaos and order. Perhaps, this tightrope is not only where I belong as a technology leader, but ultimately where we find both Team Cap and Team Iron Man at the end of their movie? Those of us heading out to the theaters this week will find out soon enough, but until then, can we agree that both Team Captain America and Team Iron Man are quite possibly both correct? There is a time and a place for everything. Sometimes it is best to follow in line and follow your marching orders to a tee, and other times it’s best to stand on your own even if that means there might be consequences. After all, you can’t make an omelette without breaking a couple of eggs, right?

Just for the record, going into the movie, I’m #TeamIronMan

*********** UPDATE – 5/6/2016 ***********

I saw the movie last night, and I think my take on the movie before watching it was a good one, but there are so many more lessons to take from the movie. I’ll have to write about more of these in the future, but I’m keeping it spoiler free for now. Go out and see the movie!  It’s a really good movie with really good character usage and I enjoyed the villain and his master plan. All of the new characters are great! I’m a huge Spider-Man fan, and the new one is excellent. I am so excited to see Spider-Man Homecoming next year!

Keep it Simple

When writing software, one of the things I preach to developers is to keep things simple. As engineers and architects we sometimes turn off our common sense in favor of trying to solve all business problems at once. We forget that the first problem we have to solve is the one at hand and not the rest of this project, next project, the bugs from those projects that could arise and the thing that might be cool or catastrophic if we go down some road in three years.

An example might be that a client asks for a modification to an existing form measuring satisfaction. Your client wants to capture a checkbox of whether the person submitting the form wants to be contacted in the future. The checkbox being checked means they do want to be contacted and unchecked means they do not.

This is a simple request and should require a simple solution. However, something as simple as this can and is often overdone. Instead of piggybacking the existing form we could post back the state of the checkbox using AJAX as soon as it changes to have the most accurate state possible. Is the default value checked or unchecked? What if we disabled the checkbox via CSS and JavaScript until we had other fields filled out? What if we only displayed the checkbox once that portion of the screen is visible? What about how this checkbox will work in multiple browsers or devices? What do we do after we capture the state? Should we notify the person submitting the form? Should we notify our client that someone submitted the form? Don’t even bring up unit tests, integration tests and acceptance tests. The questions and scenarios are endless.

In this moment, it’s best to go back to what was originally requested. Add a checkbox to a form. That’s it. Keep it simple. Start with simple.

Our job is challenging. We have to understand the best way to deliver value and yet not under or over deliver. Take the example of the checkbox, what if the client did want more from the checkbox and didn’t know to ask? It is also our job to ask the right questions. Often, our clients know only a narrow view of what they want because they don’t understand what is possible or don’t understand the scenarios that can occur from the development they are requesting. It is our job to keep ourselves in check to keep it simple as well as keep our clients on the path they truly want to go down.

We are not tasked with an easy job, but when we truly focus on keeping it simple and delivering value we will keep projects running smoothly and delivering bang for our client’s buck. Remember to start with simple, ask the right questions, and deliver time and time again.