8th June 2010

5 Tips For Effective Leadership

Unfortunately, most of my previous leaders have led by example of what NOT to do and how NOT to be an effective leader.  Currently I have good leaders which has been a wonderful change.  Below are 5 simple steps for becoming a better leader.

  1. Admit when you are wrong: There is no more sure sign of weakness in a leader than one who cannot admit when they are wrong.  It is a sign of cowardice and foolishness.  Ironically, they believe it is a sign of power and authority; however, since others know they are wrong it ends up proving that they are egotistical and cowardice.  It is very easy to admit when you are wrong.  No one expects you to be perfect and most people prefer a leader who is honest and humble with them so admitting when you are wrong is the first step to being an effective leader.  My previous “leader” taught me this lesson very well by being the opposite of what he should have been.  See here.
  2. Do not lie: One would think this would be obvious but it has amazed me at how many leaders believe lying is good.  There is a difference between not telling the complete story and lying.  It is not always necessary to share every piece of information with employees as sometimes the information may be confidential but there should never be a reason to lie.  My previous “leader” called a company meeting to chew everyone out because a database had been lost.  The network services team had not been doing the backups they were supposed to be doing and the sandbox server crashed.  My “leader” tried to make us all feel bad for screwing up by telling us that we had lost $1200 per person of profit sharing because we would have to give money back to the customer.  To make a long story short it turns out we found an old backup of the database which was exactly what we needed and even funnier was that the backup had been emailed months ago to our “leader” per his request and he had forgotten.  Not only did he never apologize but he never paid out the profit sharing since he did not now have to pay back the customer.  He never had any intention of paying us that profit sharing, he just wanted us to feel bad.  Don’t lie.  Eventually it will bite you.
  3. Provide clear vision of direction: The main function of a leader is to “lead”.  Leaders need to let people know where they are going and then to lead them there.  At my previous job we never had clear direction of where we were going.  We simply worked on project after project and none of them related to each other in any way so we always felt like we were bouncing around.  Leaders need to lead.  Employees will be much more effective if they understand what they are working towards.
  4. Communicate effectivelySee a recent Dilbert strip.  My previous “leader” was terrible at this which is why it has made my top 5 list.  We could rarely understand what he wanted and were always confused by his emails since he very often contradicted himself in the email.  Unlike the Dilbert strip, my previous “leader” was very technical and should have been able to communicate with us well.  He was full of fancy wording but never really said anything.  Often I would send an email that required a one word or one sentence response and would get several paragraphs of “marketing” material back.  In fact, I was supposed to have been given a raise and had not yet so I asked him in email when I would and his response was “we are making minimal adjustments among managers to create additional parity.”  When I asked him to explain he quoted himself and said he had already answered me.  That was an answer?  Wow.  Turns out the answer was yes, I was getting a raise and it would be in the next paycheck but it took many paragraphs and several back and forth emails to finally get to that simple solution.  Too funny.  Even funnier was that he often lectured our team on needing to do a better job of communicating.
  5. Be a team player: You win as a team and you lose as a team.  A former “leader” of mine claimed that “When we win, I give you all credit and when we lose I take all of the blame.”  That is a great statement; however, in this case it was not true.  Years ago when I worked in the grocery business I had the best manager I have ever seen.  He worked right along side of us and truly lead by example.  He was a team player and because of that he was greatly respected.

These 5 steps are easy to implement and should be done.  Effective leaders will self-assess from time to time and make adjustments as necessary.

posted in Management | 1 Comment

3rd June 2010

Just Be Wrong

My favorite Dilbert strip is http://www.dilbert.com/strips/comic/2009-09-04/.  At my previous job this comic strip sums up my old boss perfectly.  He was a great guy but he never could be wrong, even when he was wrong.  He was the type of guy that would change the rules just so he could be right.  I have email after email of proof where he says one thing and then changes it later in the thread and then denies it and then will not even admit he was wrong.  It got to the point to where it was very funny actually.

I think humor really is the “best medicine” for situations like this.  We cannot expect anyone to be perfect but it should not be too hard to admit when you are wrong.  Pride gets in the way but it is even more damaging when you do not admit it because it is clear to everyone else that you are wrong and yet you continue to insist you are right.  At that point, you just look like a fool.

When I first started my previous job there were just 5 of us.  Myself and another developer would often get emails from the boss that would not make any sense or that contradicted himself within the same email.  I used to ask what we were supposed to do and the other developer would just shrug it off.  He was used to nonsense emails from the boss.

2 pieces of advice:

  1. When you are wrong, just admit it.  It is not that hard to do.
  2. If you have to deal with people like this especially if it is your boss I suggest you find humor in it or else you may lose your mind.

posted in General Software Development, Management | 1 Comment

21st May 2010

Employee Ownership

I used to believe that Employee Ownership was a great incentive to work for a company.  In fact, that was the deciding factor of my previous job.  I had three other offers besides the one I took and what really made the decision for me was that I would be a part owner of the company.  I took the job.

I then found out my boss had lied and that I would not have ownership, which is a different story altogether; however, when I found out the details of the ownership I was no longer upset about not getting ownership, I was only upset for ever taking the job.

The deal was you had to pay money to get the ownership.  How is that an employee benefit?  It is not.  I can own a part of any publicly traded company in the world including Microsoft, HP, IBM, etc., if I pay money.  That is referred to as buying stocks.

So, employee ownership can be a great benefit but not when you have to pay for it.   My previous job had supposed “employee benefits” but at the end of the day none of them were designed to benefit the employee.

posted in Management | 2 Comments

9th April 2010

Confrontational And Immature Bosses

What do you do with a confrontational boss?  At my previous job one of the owners always had issues with me.  I believe it was because I held him accountable.  If he said he would do something I expected that he would do it and when he did not do it, I would follow up.  I was polite in my follow up but apparently it was too much for his ego.

In a recent meeting he was upset at me for not being available at 11:00 PM to do a deployment of code to production.  The deployment had not gone well and there were errors with a few components.  I had sent an email that morning at 8:00 AM with some things to try.  I followed up at 11:30 AM with a question as to if my suggestions had been followed yet.  Still no response.  I sent another email at 1:00 PM asking if anyone had done what I suggested.  Still nothing.  Then at 10:30 PM my boss starts sending emails panicking that no one can get a hold of me (they hadn’t even tried.)  They finally tried what I suggested sometime after 11:00 PM but I was no longer available.

In the meeting I kept asking the Director of Network Services, who is an owner, why he would not do what I suggested and why he would not respond to my emails.  He kept trying to put the blame on me for not being available at 11:00 PM but I kept putting the ball back in his court asking why he wouldn’t do what I suggested.  He never did answer me.  The fun part though was that he started to stare me down, literally.  He is a former cop and believes he is tough and since he does not know how to handle conflicts without a gun he stared me down like a 5th grade schoolyard bully.  It was very funny.  I finally stared back at him for about a minute and then looked away and then he finally looked away.

I am glad to be gone from that company.  Childish owners and egos so big there was no room for me.

Unfortunately both owners of the company were very similar like that.  I tried working with them but after 4 1/2 years it was clear there was no room for anyone who was not willing to be subservient to them.  Their egos were just too big.  It’s a shame because they really could do well.

posted in Management | 0 Comments

7th April 2010

When Your Boss Lies

What do you do when your boss lies?  I am not referring to little things where maybe the boss was mistaken but when you have proof of repeated lying and unethical behavior.  What can be done?

I was faced with this scenario at my previous employment.  For the first 2 years I believed that my boss was simply overly-optimistic and that he actually believed the promises that he made to me.  Over time I caught him in other lies that were clearly lies and not just optimism that something would happen.

 When I accepted my position at my previous employment I had 3 other job offers.  The deciding factor was that I would have ownership of the company.  This is what he told me on the phone when he extended the offer to me.  When I received my official offer letter it said that ownership was just a possible benefit.  I then assumed that it would be available very shortly.  After starting at this new job I asked about it and he said the lawyers were working up the papers and should be done in a few weeks.  A few months went by and nothing happened so I asked again.  Same response.  I let some more time go by and every time I asked it was always the same response.  After 2 years I finally gave up asking.  After being employed for 4 1/2 years I still did not have ownership even though I was told I would.

I was speaking with a co-worker a few weeks before I left my previous job and he asked me how much the largest profit sharing I had been given.  I told him $500.  He then told me that when he was negotiating his offer he asked my boss how much the smallest profit sharing amount had been and my boss told him $1,000.  Then, to confirm, my co-worker responded that he should expect at least $4,000 in profit sharing every year since the smallest ever given was $1,000 per quarter.  My boss responded affirmatively which was a blatant lie.

So, what can be done?  In my case I confronted my boss over and over and have the emails to prove him a liar and yet he continued to claim that he was an honest Christian.  He thought that by claiming to be Christian I would believe him.  After 4 1/2 years of his lying and no willingness to change I had to leave.  It literally made me sick to go to work every day.  I could not stand to see the sight of him.  He was the owner of the company so I could not go anywhere else for help.

To top it off, my boss is cheating me out of earned money now that I have left the company and is not paying me everything he owes me.  I will likely have to take him to court.

It is a real shame.  He has so much potential and really could be a great guy but I have come to believe that he is clinically sick and needs help.  Now that I have a new job with a real company all I can think is good riddance.

posted in Management | 1 Comment

10th March 2010

AgilePalooza - Atlanta 2010

AgilePalooza was in Atlanta on February 26, 2010 and it was a great event.  It confirmed a lot of concepts I have been trying to push at work lately and was comforting to know the Agile community supports what myself and a co-worker have been working on.  Here are the top 5 important Agile principles, as I see them.

1. “Make sure everyone understands what they are doing and not just focusing on tasks.”  To be Agile it is important that each individual understands the goals and direction of the company and how each individual’s responsibilities fit into the company’s goals and direction.  When a Software Development company focuses on project to project and the projects are very different it is very challenging to adhere to and enforce processes because things are always changing.  However; in Agile, if everyone has a clear understanding of what goals they are working towards it makes their contributions much more meaningful and helps boost morale.  It gives purpose to the work.

2. “Agility with discipline.”  This is a phrase that was brought up often during AgilePalooza.  You cannot call yourself Agile unless you have enough discipline to stick with the processes as defined by Agile.  Some software companies claim to be Agile but really do not understand what Agile is and do not follow all of the Agile methodologies.  Just because you have a daily “stand-up” meeting does not mean that you are Agile.

3. “Predictive results come from predictive input.”  During AgilePalooza it was reiterated over and over that a continuous, well-groomed, product backlog is essential.  To be able to have predictive velocity you must have consistent and constant input, the backlog.  You need a product owner who can keep the backlog full.

4. ”Need to avoid the seagulls.”  If you are familiar with Agile you understand what chickens and pigs are.  If not, read this article http://en.wikipedia.org/wiki/Scrum_(development).  Seagulls are the people who fly in and poop on things and then fly away.  You need to manage seagulls so that they do not mess up the rhythm and velocity of the team.  The Agile team needs to remain focused.

5. ”Remove impediments.”  You must have someone who can remove impediments or else you will not be able to run an Agile team.  This can be a Scrum Master or another manager or even a Project Manager.  Regardless of who it is, someone has to have the authority to remove impediments from the team’s view.
 

If AgilePalooza is coming to a city near you I would strongly recommend attending.  It is a very small fee and you will walk away with many ideas of how to improve your processes even if you already practice Agile.

posted in General Software Development, Management | 1 Comment

15th April 2009

Rightshore Development

Everyone has heard of offshore development by now.  For better or for worse many jobs have been moved offshore to places such as India or China.  In America we can either be upset by off-shoring or we can take advantage of it. 

Rightshore development is offshore development done right.  I will not recommend any specific offshore development companies; however, I will provide some tips as to what to look for and how to turn offshore into rightshore with respect to software development.

Find a company who practices Scrum- Why is this important?  The foundation of Scrum insists that the development team is self-managing.  Since your offshore team will be in a different country and likely a different continent you need a team that does not need handholding.  You need to feel confident handing over a set of requirements or tasks to your rightshore team that they will complete them successfully and accurately without requiring too much of your own time. 

See the Scrum Alliance for more information on Scrum.

Low Turnover-Select a company who has a low turnover rate of software developers.  You want to have a core group of developers which learn to understand your business and your company culture and if you are having new developers rolled in and out of your rightshore team you will have to continually battle the learning curve.  A rightshore development team should be an extension of your own core team within your company.

Version Control- Version control is critical when transforming an offshore team into a rightshore one.  It is imperative that you always have the latest copy of source code your rightshore team is working on.  You need to review their code and make sure it adheres to your standards and policies.  It does not matter if you have a single source code repository or if you manage 2 different repositories as long as your processes ensure collaboration between both teams.  It can work very well if there is a single source code repository from which both teams checkout their code to work on.  An alternative is to allow the Scrum, self-managing, rightshore team to have their own version control from which they do their own QA and when they send updates you can check them into your own source control and perform your own QA. 

Microsoft Team Foundation Server- It is essential that you have a single location to store your backlog of to-do tasks.  I recommend Microsoft Team Foundation Serverand the Agile project template.  Here you will record your to-do tasks, referred to as sprint backlog items and product backlog items.  You will assign tasks to the appropriate team and even team member if desired.  You will track ETAs, bugs, and progress.  Microsoft TFS provides a central location to store discrete tasks from which developers can work effectively.  You can also have a list of assigned tasks sent to each developer each day.  Go here for more information.

Communication Skills- It is imperative that the company you chose assigns a project manager who can communicate in English and has a lead developer who can effectively communicate in English.  It is not necessary for all team members of your rightshore team to speak or even understand English.  It is critical; however, that the lead developer can effectively communicate, both orally and in written format, to ensure that your business needs and the design goals are being fulfilled.  You should have frequent (daily) phone calls to discuss open issues and allow for a dialogue to resolve questions and concerns.  You will need to make sure information is repeated to ensure both parties understand each other accurately.  Some offshore companies charge more for developers who can speak English and you must be willing to make the investment.  Poor communication between teams will kill any project.

Consistency- For an offshore team to become a rightshore team they must provide consistent and reliable code.  It is important to maintain the same members as is feasible so that you can rely on consistency.  You have to be able to pass on projected completion dates of tasks to your client based on the ETAs the rightshore team provides you.  You need to have confidence that their estimates are accurate so you can accurately estimate to your client or know how much to buffer your estimate.

Identical Environments- You do not want to spend time hunting down bugs after your rightshore team has provided working code only to find out that a difference in your environment is the root cause of the bug.  You need your environment and the environment the rightshore team is developing in to be identical, at least as much as is possible.  The best way to do this is by using virtual machines.  You create a development environment on virtual machines in which you will work and then you send your VMs to the rightshore team.  This way, both teams are working off of essentially the same systems.  If possible, the rightshore team should remote into the same environment which your team uses but often due to geographical distances and locations that may not work well.

Some have tried to go with the cheapest outsourcing companies and doing so will not result in a solid, useful, and successful project.  As the saying goes you have to spend money to make money.  If you follow my suggestions you will find there are companies who can deliver on each of these points and still at a price point which allows you to realize desired profits.

posted in General Software Development, Management | 1 Comment

9th April 2009

Big Trees Fall, Small Trees Prosper - Here Comes The Small Business

In a rain forest, in particular, trees can grow to enormous heights and sizes.  As they become the dominant plant life they shade everything below them which prevents any other vegetation from growing very large.  When a tree dies and falls in the rain forest a hole is left in the canopy which allows the sun to penetrate to the rain forest floor.  When this happens there is a race by various plants and vegetation to become the next biggest item. 

1.jpg

The same analogy can be used to examine one of the great benefits from our current down economy.  We have many “tall trees” that are dying and falling down.  Some people, including our government, believe we cannot let a dead tree fall.  They believe we should spend billions of dollars to keep a dead tree standing.  Unfortunately, there is little we can do with our current government.

What we can do is take advantage of the “holes opening up in the canopy.”  Now is a great time for small business to fine-tune their processes and offerings to the market as there will naturally be a race to fill the large gap that large companies are leaving behind.  America is run by small businesses but little attention is often thrown their way.  Now is a great time for small companies to take advantage of large company failures, to prove to the market that their products and solutions will satisfy market needs.

There is no reason to have a negative attitude during a down economy, for those who move quickly and take advantage of the gaps will reap rewards for many years to come.

posted in Management | 1 Comment

21st March 2009

Top 10 Reasons NOT To Work For A Small Company

As a follow-up to a previous post I wrote, Top 10 Reason To Work For A Small Company , I will make it clear that there are also disadvantages to working for a small company.  These disadvantages are not limited to or unique to small companies.  Small is a relative term and can be thought of as 50 or fewer employees. 

10. Less stability (usually) - It used to be that when you finished college and got a job with a large company you would work there for the rest of your life and then retire with a pension plan.  It was nearly a guarantee.  Those days are long gone; however, large companies still tend to have better stability than small companies.  When you work for a small company your risk of losing a job is greater.

9. On your own - At a small company there is no one to hold your hand while you get up to speed and learn what is necessary to do your job.  Some people thrive in this environment but most workers tend to do better when they are told what to do, how to do it, and when to do it.  At a small company there is no room for hand-holding.

8. Smaller clients - Small companies tend to have small clients.  As such you will not gain experience in highly critical environments.  For example, suppose you are an IT company who builds and designs databases.  Small clients will typically have lower transactions and less complex databases.  There is a substantial difference in a database that serves as the back-end for a website that processes 1000 transactions a day and the databases that process search results for Google.  Working for a larger company exposes you to more complex situations.

7. Too much diversity - When working for a small company you are involved in many more areas and functions of the company than what may be in your job description.  Although this wide array of experience is very valuable it does prohibit you from becoming very great at one particular aspect or function.  You have to be good at many things.  You do not have the time to focus and specialize.

6. One bad apple can ruin everyone - Everyone in a small company has an enormous amount of pressure to make the company successful.  One employee who says one wrong thing to one important client can have such a negative impact on the company.  It is too easy for one employee to ruin the company.  As such, it is imperative that you hire appropriately.

5. No hierarchy - To some people this IS a reason to work for a small company; however, because there is very little hierarchy there is very little room for advancement in job title.  If you want to become a manager you have to wait for the current manager to leave, or, if you are lucky enough the company will grow and create new management positions, but at that point, it would not be a small company anymore.

4. All of your eggs are in one basket - Small companies are thrilled to have 1 large client and a large project.  But what happens to the company if that project goes sour or if the client does not pay as expected?  One bad client can have a devastating impact on a small company.

3. No vacation or time-off - For some small companies “no vacation” is an exaggeration but very often there is only one person who knows about a specific process or a specific project and when they go on vacation they must still be checking email and even working because there is no one else who can do their job.

2. Less benefits - Small companies are not able to offer the same health benefits or investment matches that a large company can.  Many small companies offer a 401k investment deduction from your paycheck but do not match any percentage of it.  This can add up significantly.  For example, suppose you earn $50,000 in yearly salary and you contribute 5% to your 401k.  That will result in $2,500 invested per year.  If you worked for a large company they may match the first 3% of your contribution at 100%.  In this example your company would also contribute $1,500 per year to your 401k.  Factor in compound interest over the life of a career and that can total over $400,000 assuming 12% interest in mutual funds over 30 years.  That equates to over $14,000 a year that a large company would pay towards retirement. 

1. Lower salary - Small companies offer their products and services at a discounted rate compared to other larger companies to remain competitive and although a smaller company will have much less overhead costs it still results in lower salaries.  Salaries will generally be on the low end of the range for what the market is paying for a particular position.  This is not to say that the salary is well below market but in certain cases it is significant.

These issues are not unique to small companies and some even apply to large companies.   My preference is to work for a company that is somewhere in-between too small and too big.  What is that number?  No one knows but companies big and small can learn from these points and take the best of them and leave the rest. 

My hope is that during these tough economic times the information I have provided in this post and in Top 10 Reason To Work For A Small Company may help someone decide what they will do with their career. 

posted in Management | 17 Comments

18th March 2009

Top 10 Reasons To Work For A Small Company

I have worked for a huge company, a tiny company, and some in-between and working for a small company has advantages and disadvantages.  We’ll explore 10 advantages for working at a small company.  Small is a relative term and in this case it can be thought of as 50 or fewer employees. 

10. Not just stuck in a cubicle - At a small company you simply cannot show up for work, sit in your cubicle, focus on just your tasks and be very successful.  It requires collaboration and communication with other teams within the company.  Some people are scared of this interaction and would rather camp in their cubicles until the clock strikes 5:00 PM.  If so, do not go to work for a small company.

9. More exposure to various area of the company - Even if you do not have direct input or collaboration to each area of a company you will have the opportunity to learn things from each area including HR, Sales, Marketing, Support, etc.  Often, you will even be able to contribute to some extent to each area of the company.

8. Common goals among team members - In a small company everyone is dedicated to making the company successful.  You are not likely to meet someone who is just trying to skate through to retirement.  Each employee cares about the success of the company and is willing to work hard to keep it successful.

7. Not as much “red tape” (Agile) - When I worked for a large company (125,000+ employees) it never ceased to amaze me how slow we were to respond to requests that were out of the ordinary.  We often lost business as paperwork would get stalled with the Legal department.  A small company is much faster to respond and to adapt to a customer’s need or to the marketplace demands.  A small company has to remain agile to be competitive.

6. Greater trust and freedom - The owners of a small company have to be more careful to hire trustworthy employees and as such managers within small companies tend to take a “hands-off” approach to management as they trust that they have hired a competent employee.  The most important characteristic to look for when hiring someone is character.  Skills can be taught but character is something that cannot be taught by managers.  Small companies need to trust their employees or else they will spend too much time micromanaging their employees.  This gives each employee the ability to make decisions.

5. Ability to influence policy- Many small companies do not have policies laid in stone due to the fact that they must be agile and ever adapting to the market place and as such do not have many policies worked out.  Some small companies do not even have formal PTO policies but rather everyone works as much as they can and when things slow down they may take some time off.  At a small company, you have the privilege of helping to establish policies.  If your small company begins to grow you will need policies in place before you get too big or you will have management nightmares trying to make sure everything and everyone is able to work together using the proper tools and procedures.

4. Greater opportunity to expand skills - When working for a small company you often have to contribute in a variety or roles and areas of the company.  For example, you may be involved with sales in some fashion even if you are a Software Developer.  That may mean that you assist in pre-sales support by facilitating demos of your software to potential clients.  You may have the opportunity to develop your marketing skills somewhat as often times a small company will not have a formal marketing department.  You have the ability to bring your talents to the company and also develop many other abilities and talents.

3. More responsibility for success of company- When I worked for a very large company it was frustrating to realize that no matter how great I did at my job the company was still the same.  On the contrary, I could have done a horrible job and still not had a significant impact on the success of the company.  At a small company a tremendous amount of responsibility rests on each employee for the success or failure of the entire company.  Some people shy away from this pressure and if so, small companies are not for them.  Large companies provide safe havens for people who like to push buttons and not be responsible for anything critical.

2. You matter - Not only do you matter in the sense that you have a tremendous amount of pressure on you for the future of the company but you also matter as an individual.  You are not just an employee ID; you are a person with a name and a face and a family.  The small company culture resembles family.

1. No golden parachutes nor million dollar bonuses from federal bailout money - No need to worry that your fearless leader is going to be given millions of dollars for failing at their job. 

Any company of any size will benefit by implementing these approaches to their environment.  The most important principle is to treat employees as individuals, no matter the size of the company.

For a different point of view, see Top 10 Reasons Not To Work For A Small Company.

posted in Management | 1 Comment

  • Links

  • Calendar

  • September 2010
    S M T W T F S
    « Jun    
     1234
    567891011
    12131415161718
    19202122232425
    2627282930