Monday, August 25, 2014

Focus and Flow

Success requires focus
The biggest challenge I have had as an entrepreneur is staying focused on what needs to be done and ignoring the issues which might get in the way.  This has been a bigger problem as I spend more time at home thanks to a hoteling scheme for all the software developers and project managers at my day job.  That is why this week I wanted to provide a bit of a meditation on one of the most important agile values I know: focus.

Working as a software developer is a very creative pursuit.  You take a few rough sketches on the back of a napkin, the nebulous promises of a sales person, and the direction from your architect and transform it into living breathing code.  It is not easy and requires a tremendous amount of skill and concentration.  This is why software developers crave solitude so much when doing their work because they need to get into a state of flow.  By being able to focus, a developer wants to get into a state of flow.  By being able to be in a state of flow a developer feels more productive and capable of getting work done.  This is why you see developers warring headphones and trying to block out the outside world when they are doing their work.  It is not because they are trying to be anti-social but rather block out distractions so they can get into a state of flow.

Unfortunately, there are many things in a contemporary office which discourage focus.  First, open office plans set up to encourage collaboration usually lead to distractions as people get involved in ancillary discussions, overhear personal conversations, and distracted by colleagues.  Next, demands from upper management and sales forces for reports and status updates means that instead of focusing on the tasks at hand they have to be managing correspondence with others.  Finally, social media and the web provide constant hours of distraction when someone should be focused on their work.

I think the biggest obstacle to focus is other individuals who cannot focus.  Usually these good folks wind up in leadership roles.  The inability of these people to set priorities or focus on one task then trickles down to their subordinates and you are left with a situation where people are juggling multiple tasks and getting none of them done with the quality and speed the business requires.  Often when confronted with the question, “What is the top priority?” these people will answer with “All of them.” This in my estimation is a recipe for mental illness and failure.

So what is a person supposed to do?  I have tried as best I can as I focus on my home business to set priorities and get them done.  First things first and last things never, as the old project management slogan says.  Next when confronted with an individual who can’t set priorities, I attempt to teach them how to set priorities.  This may explain why I have been rolled off so many projects over the years because people who hire consultants don’t like to be told they are managing projects incorrectly.  I also tell people who can’t set priorities that they abdicate their responsibility to me.  So I will do tasks in the order which I see fit.

Focus is not easy to achieve in a modern work place.  The physical conditions make it hard to focus.  The interference of e-mail and instant messages get in the way of concentration.  Finally, leaders who cannot set priorities make it impossible to focus.  This is why it is important for people like myself to create the conditions necessary to allow people to focus.  If we don’t then flow is impossible and high performance is a fantasy.

Until next time.

Monday, August 18, 2014

The Agile Dentist

You can learn a lot about agile
while you are at the dentists office.
I cannot think of a more helpless feeling than being in the dentist’s chair while getting a major procedure done.  You are medicated, filled with nitrous oxide but you are still conscious and feel pain; you just can’t do anything about it.  It was during this time of profound discomfort that something dawned on me.  Software developers can learn a lot from dentists.  This week I would like to expound on that topic.

I was receiving a root canal and feeling like I was in the middle of fifteen rounds with Mike Tyson.  My regular dentist was not in the office and so another was spending time using endodontic files on my mouth.  This is when it dawned on me.  My dental practice is a highly functioning team with each dentist able to do the same procedure on any other patient in the practice.  There were no specialists and it wasn't necessary for my dentist to be called in on her day off to get my root canal done.  Talk about cross functional.

Next, I had a hygienist numb my mouth and my doctor to the work.  I also noticed another person in the room that I never recognized before. This was a dental resident who held the suction tube and watched and learned while my dentist worked on my bad tooth.  This was pair programming because I could overhear the resident asking questions and providing instruments to the dentist while they worked on me.  It is one thing to pass tests in dental school. I am sure it is completely another thing when you are fiddling around with a real person’s mouth so this is how knowledge is passed from one generation to the next.

Finally, when my root canal was finished and when the dentist ground my tooth for a crown the resident took charge and finished the job.  I watched her as she weaned me from the nitrous oxide.  Then using a dental drill and resin she fashioned a crown to ware until the permanent version is put into place.  What I witnessed was a textbook example of how software developers should work together and I saw it at the dentist office.  Everyone was cross functional.  Senior team members were teamed up with junior members to mentor them and show them the ropes in the real world.  Finally, the junior members were trusted to do work without supervision.  It was a revelation.

So what I can take away from this experience is that software development does not have to be unpleasant like a root canal.  By using pair programming in the correct fashion, trusting junior developers to do the right thing and making sure there are plenty of opportunities to mentor you have the makings of a fantastic cross functional team.  This is good to know as I work toward building my own business that I have a good working model for an agile team.  Who knew that the dentist can be agile?

Until next time.

Wednesday, August 13, 2014

About That New Logo

The E3 Logo
I wanted to take some time to reveal the branding of my new company.  I am like many people with a background in operations and technology; any time there is discussion of marketing it is greeted with sarcasm and ridicule.  This is understandable because we are more interested in making cool things than selling them.  However, as the time draws closer to the launch of the company, I had to start seriously thinking about what kind of image I was going to project to the public. 

I believe that the best kind of branding a company can have is its products and service to its customers.  I also know that a good company needs a logo that easily identifiable.  Facebook has a particular look and feel that gives a very different vibe from other social networking sites like Friendster.  The color of Coca Cola is red and is universally recognized. People have been poking the Pillsbury Dough Boy for decades.  If I am going to compete, then I need something to identify my company from the other software companies in the market. 
I asked a friend of mine who is a college undergraduate with aspirations of being a graphic designer to help.  After several rounds of revisions, my friend gave up and I was stuck with a bunch of half formed ideas.  This setback, made me realize that I had to take what I had to professional graphic arts firm recommended by a friend. After about three weeks of work and some revisions, we came up with the logo you see here.  I am pretty pleased with the work and think that it needs a little explanation. 

E3 represents three major traits of the firm: Excellence, Expertise, and Energy.  My company will never be a perfect company or solution for every technology problem in the trucking or logistics industry but my company is committed to excellence in everything we do; from how we answer the phone to how we provide software to your company.  In terms of expertise, as president of this company I am a software engineer with over twelve years of experience building web based solutions for small and medium sized businesses.  I also have a Master’s of Science in Management.  Combined, I have the academic and professional credentials to help you solve your technology problems.  Finally, my company is about energy.  Logistics requires energy and stamina to be competitive and my company will be able to keep pace with the demands of the industry. 

The three is a subscript because it borrows from the syntax of chemistry.  Just as O2 represents a molecule of oxygen and ammonia is NH3; E3 represents the merging of excellence, expertise and energy into a new compound which I hope will change the world.  The E is in a Serif type representing the traditions of trucking and logistics.  The three is san-serif to represent the modern 21st century world of technology.

This symbol is superimposed on an oval of the Western Hemisphere because the world of technology and globalization is moving so quickly that globe is no longer round but distorted.  My company is a global company. With the expansion of NAFTA and other free trade agreements I feel the Western Hemisphere is going to become a giant market as North and South America combine to take on China and Europe. 
So, that is my company.  It is a mixture of excellence, expertise, and energy hoping to provide answers to your software questions. E3 combines the traditions and practices of the past with the newest solutions for the future.  My goal is to become the dominant player in the Western Hemisphere for freight and logistics companies who wish to move their goods from Rio to Montreal.

You are welcome to come along for the ride, I look forward to showing you more in the next three weeks before E3 launches. 

Tuesday, August 12, 2014

The Power of No

Sometimes it just needs to be said.
This week I wanted to discuss something which is pretty important to every business person and entrepreneur I know.  For years we have been taught the importance of yes, getting other people to say yes, saying yes to the deal, and making sure you say yes to any reasonable request.  People who say no are not team players or willing to succeed.  The reality is that saying no is as just as important to success as saying yes.

Daily we read stories about work life balance and what it takes to be successful.  A common theme in many of these articles is the ability to say yes.  It is easy to see why coaches and mentors say this.  Saying yes is easy; doing what you promised when you say yes is hard.  This way it is easier to make a promise and break it because you can always ask for forgiveness.  Business is filled with plenty of people who can make promises but cannot fulfill them.  This situation means that as a business person or leader you spend a majority of your time in a constant state of distrust because you do not know who is telling the truth and who is just saying what you want to hear.  It is madness.

This is why “no” is so powerful.  Because it cuts through the phoniness of typical business interactions and lets people know what is really going on.  The word “no” builds trust because they can honestly engage in pragmatic discussions about what can and can’t be done. I am not advocating being negative or reflexively saying no all the time but the judicious use of the word no can make your life much easier.

Let me give you a few examples:

  • Can you stay late tonight – “No, my daughter is playing softball tonight.  Can I come in early tomorrow or work on this after the game”
  • I need this software by X – “No we do not have enough developers or time to build all those features.”
  • Can you build this software for a fixed bid – “No, this does not compensate properly for the work we do.  Feel free to take your chances with someone else”
  • Can you take an extra project – “No, I am flattered but I want to devote my attention to these other projects and make them successful.  I might not give this new project the attention it deserves”

In each of those examples, saying no sets limits.  You are not being negative or hostile you are just setting limits to prevent others from exploiting your desire to help them.  There are plenty of people in business who don’t respect limits and those are people who have high turn-over and bad work environments.  By outlining limits you act as a warning sign to people in authority.  They have to hire more people or redo budgets rather than taking undo advantage of people working for them.  It also prevents vendors or clients from making demands which might cost you money.

So the next time you are tempted to say yes, take a deep breath and remember the power of no.  It may just save you time, money and aggravation.

Until next time.

Monday, August 4, 2014

Three reasons why I love Agile

Agile is like dance for geeky people.
It has been a challenging week but I wanted to take some time to update the blog this week. I have spent over fifteen years of my career as a software developer and project manager.  I have spent the last five years working in the growing field of Agile Software development.  I have been an eager convert to Agile and Scrum for the last five years for a reason.  Agile is the best way to build software.

Unlike many things that are currently manufactured in the 21st century, software is made by hand by creative, highly trained, and eccentric individuals known as software developers.  Ask them to build swing with a tire and a stretch of rope and they will argue about what knots to use and what kind of rope is acceptable.  This means that simple tasks like saving address information into a database or asking a person to log on to a web page becomes a colossal debate.  Agile eliminates this because it forces a software development team to focus on what needs to be done to complete the sprint.  Debate is curtailed when confronted with a deadline.

Next, the people who pay for software often don’t know what they want so developers spend countless months of toil working on software only to be told their labor is worthless because they did not build what the customer wanted.  Agile stops that from happening because the iterative process means the people paying for the software get to see it every step of its production so they get way they want.

Finally, Agile exposes who is doing the work and who is wasting everyone’s time and money.  Engineers and developers have to produce results and hiding in plain sight behind jargon and techno babble will not work.  Either the team succeeds or it fails to meet sprint goals and no amount of excuses will change that result.  It is that environment of honesty which makes going into the office more pleasurable.

So because agile is a more honest environment, gets the customer involved in the development process, and keeps software developers focused, it is the superior method of building software.  This is why I am a big proponent of it and why I will continue to promote it like a zealous Jesuit.  That is my story and I am sticking to it.

Until next time.