Article Summary 2015-06-26

“What Is Code? If You Don’t Know, You Need to Read This”

This is probably the best quick summary explaining what software (and computers for that matter) really is. Thank you to Laura Haverkamp for bringing this one to my attention. There is also a good “Behind the Scenes” article. And, I have taken the pages, cleaned them up, and produced an Evernote Summary.

“Electron Microscope Slow-Motion Video of a Vinyl LP”

A great video of a needle reading the grooves of a vinyl record from the guys at Applied Science. Ben Krasnow goes through the process he pursued to be able to make this video. Ben maintains an awesome YouTube channel.

“Killjoys Really is a Most Excellent Space Adventure”

io9 goes on to say that it may (finally) be our next Firefly. I’ll believe it when I see it, but you can bet this one makes my list of shows to binge watch once the first season has concluded. (P.S. If you are a Firefly fan, please vote it up on IMDB.)

Math Puzzle: “The Nine Schoolgirls Challenge”

“Fifteen young ladies in a school walk out three abreast [as a group] for seven days in succession: it is required to arrange them daily, so that no two shall walk twice abreast.”

This problem launched a whole branch of mathematics called combinatorial design theory. A young mathematician, Peter Keevash, has made some breakthroughs with respect to the general case problem within which the above puzzle lives.

“‘EPIC’ fail–how OPM hackers tapped the mother load of espionage data”

An excellent and detailed summary of what is probably the most truly damaging hack of government systems in terms of individual safety.

“Building Prototypes by Dan Gelbart”

Hackaday has pulled together an excellent series of 18 videos of Dan Gelbart demonstrating a whole series of mechanical prototype development techniques. Dan was the co-founder of Creo–a company that developed laser-based products for the printing industry and sold to Kodak (remember them) for $1 billion. Dan has gone on to become an award-winning entrepreneur and inventor. He teaches Mechanical engineering at the University of British Columbia.

“Leading People When They Know More Than You Do”

Truth is that in a knowledge worker career (such as software development) folks who move into management will be managing folks who know more about the task than they do and, in addition, who may be more highly compensated. This is not the “Peter Principle” which is more applicable to the Industrial Revolution as opposed to the Information Age. Instead, it is a natural outgrowth of the realities of knowledge workers. This article is one of the best I’ve read so far providing practical advice for managers and executives who find themselves in this situation.

“Grady Booch on the Future of Software Engineering”

Grady Booch (blog) speaking at the 37th International Conference of Software Engineering (ICSE 2015). This is an excellent discussion about both the history and the future of Software Engineering.

Grady is the guy that developed the Unified Modelling Language (UML). He was also the Chief Scientist for Rational Software Corp and IBM Research. He is both an ACM and IEEE Fellow and he won the Lovelace Medal in 2013. He has also worked for Facebook.


Five Key Leadership Imperatives

I believe there are five key imperatives that excellent team leaders must strive to accomplish. My belief in these five come from the experience, challenges, failures, and successes I have had the honor of experiencing over the past 15 years as I supported, managed, and led multiple individuals and teams through many varied experiences. Through that variation, I found these to be constant contributors to success.

Set Clear Goals

It is critical that a leader set and communicate clear and consistent goals for his or her team. This is true even if the leader finds themselves in an environment that may not have overall clear and consistent goals. Every team needs to know what they are working towards. When they do not, the team moves without purpose. Hopefully you will find yourself in an organization that has clear and consistent goals into which you can design your team’s goals to support. However, if you do not, it is still an imperative that you establish and communicate goals to your team.

Provide Resources

Once the goals are established, you want your team working to accomplish them. They should not be working for you but, instead, should work towards the goals. Have you ever worked under a leader where you found yourself thinking, “Gosh, if I wasn’t doing tasks for him all the time I would be able to get my real work done!” In my opinion, it is less than beneficial if your team feels this way. Instead, they need to know that you are there to provide the resources they need to accomplish the goals you have established. You need to work for them to provide what they need as opposed to them working for you. I use the term “resources” in a broad sense. Resources include staff, budget, training, coaching, guidance, space, time, support, and more. Anything they are lacking in tools you need to work to provide within the constraints of the business situation you are in.

Clear Obstacles

Once your team is working towards accomplishing the established goals using their resources, they are going to encounter obstacles. These come in all forms from conflicts between staff, concerns with goals, conflicts with other teams, roadblocks of all kinds, and even personal life stresses and issues. The third leadership imperative is to clear these obstacles. Your team needs to know you have their back and are working to break through any barriers that are preventing them from accomplishing the goals. The faster these obstacles can be overcome, the sooner they can get back to working towards these goals.


Leaders need to understand the status of their teams progress towards the goals and then make sure this information is communicated to other teams and leaders. A leader gets the word out with respect to the accomplishments of the team and attributing these accomplishments to the team members who did the work. For failures, the reverse applies. You should take full responsibility for a team failure. While you certainly need to take actions to correct situations that led to failures, these failures fall on you as opposed to the team or individual team members. Ultimately, you’re accountable for failures and your team is responsible for success. How do you correct for failures? First you must look at yourself and the three prior imperatives. Did you not make the goals clear and consistent? Did you fail to provide the resources needed to accomplish the goals? Were you not able to recognize and clear obstacles that worked against a successful goal? Most of the time you will find the failure falls in these areas as opposed to a failure of your staff. Of course, sometimes it is a staff failure and this is where the next imperative comes into play.

Develop The Careers Of Your Staff

Your team members need to trust that you are helping them develop their careers. In my experience, there are three primary career growth areas each of your team members will gravitate towards:

  • You may have members of your team who want your job. This is excellent and you should help them get there as it contributes to a responsible succession plan for your position. What skills do they need to accomplish this that they do not have? How do you help them gain these skills. Work with them to develop and execute a plan.
  • You may have team members who simply want to get better within the job that they have. Too many times I believe people think that they need to change jobs to move up when they may just want to see a career path within their position. It is your job to help enable this. Send them to the conferences to speak on behalf of your company about their project. Develop a training or certification program with them. Provide training materials that expand their knowledge into a new area and help them become the expert.
  • Then you will have a third type of team member that really wants, or should be, doing something else. They, literally, may want to own a donut shop. Or, they may want to change careers. Perhaps they want another role on the team. It is my belief that you need to have a trust relationship with your staff that they feel comfortable sharing these aspirations with you knowing that you will support them. If they do not, then they may pursue their alternate desires in secret causing disengagement from their current job and surprise departures. If they know you are helping them, they are more likely to stay engaged in their current responsibilities.

Finally, for multiple reasons, sometimes your environment is not the right environment for a team member. You must be honest with them about your concerns. And, take a hard look to make sure that the problem is not related to a failure on your part of the prior imperatives. Perhaps it is a training problem. Perhaps it is something else. If you must make a change, it is your responsibility to help them move to an environment better suited to their skills, disposition, and desires.