[Repost from my personal blog.]
I'm surprised at how often it comes up, the issue of creating a "culture of awesome" where you work. And honestly, as much as I think of it in terms of the software profession, the path to getting there likely applies to most any business. I've been fortunate to be a part of some awesome teams, and they don't happen by accident. Some would argue you can't create it, but I disagree.
1. Lead by listening
Yes, you probably reach a certain career band because you're good at managing people, process or product. That's awesome, and that's why you get paid the big bucks. Your wisdom is what makes you stand out. Still, my hope is that the wisdom comes with the acknowledgment that you do not in fact have all of the answers. It took me awhile to realize this.
A lot of things motivate us to not listen to people (which when you think about it, doesn't inspire a lot of confidence in our own staffing decisions). We often want to demonstrate control, we fear failure, or we just don't trust other people. But if we insist on having a hierarchy, then the one thing we can be sure of is that we don't have all of the answers because there aren't enough hours in the day to take all of the input. A lot of the time, others know better than we do. Strong leadership involves listening, and acting, on the information and opinions of others.
2. Challenge, and be challenged
There is some feeling in our line of work that toxic conflict helps us arrive at a better place. I don't agree with this at all. That doesn't mean that there isn't a whole lot of room for people to challenge each other. This has the nice side effect that egos are kept in check.
Leaders create a framework that fosters these challenges. You have to make sure that people are free to express their concerns and different views without the threat of negative repercussions. It doesn't matter if someone is new or bordering on retirement. Good ideas come from all over. The worst thing that can happen is that someone takes a ridiculous position, and learns why it's ridiculous. The best thing that can happen is you save time and money, and deliver something better.
3. Remember that you get what you pay for
While some organizations will scrutinize the strangest little expenses, many never think much about the money they spend on humans. This is a catastrophic error. In software circles, many believe that people are interchangeable, ignoring the very wide range of capability and domain knowledge that travels with the person. As it turns out, people like to be recognized for their ability to do good work, but they also want to be paid for that work.
Know your market. In most places in the US right now, software is a sellers market. The good people will chase the money not because they're greedy, but because the basics of supply and demand drive them there. Hiring "C" players won't get you the results that "A" players will.
4. Never be afraid to experiment and make radical changes
"We've always done it this way" is the innovation equivalent of ebola. It attacks quickly and turns you into a pile of goo in short order. It's not uncommon to be in a situation where everyone knows something isn't working, but no one does anything to change the outcome. What's that cliché about doing the same thing over and over and expecting a different result?
Sometimes things aren't working, and you need to make a serious change to right the ship. It might mean tossing aside a process, reorganizing people, a totally new approach, and sometimes even letting go of people. Aside from the letting go of people part, there's a good chance that the big changes you need to make aren't that risky if you're already in the midst of a tragedy. The worst thing that can happen is you continue to be tragic, but more than likely, you'll end up a little more awesome.
5. Find the awesomesauce that's already there
I've been fortunate (or not, if you consider the layoffs and flameouts I've been in) to have worked in a really diverse set of companies, large and small. There isn't one that I can name that didn't have little hints and glimmers of greatness just begging to get out.
We often focus a great deal on roles and responsibilities, and try to put everyone in a neat little box with a clear and well defined label. This breeds a lot of "not my job" precedent, and it hides that fact that some people are really good at a lot of different things. Enable those people. Not everyone is a born leader, but almost everyone does have something meaningful to contribute. Find it! Figure out how to make it fit into what you need.