May 072013
 
Me presenting at KCDC 2013

Me presenting at KCDC 2013

Thirty-six hours before the first KCDC precompiler session began, I got a call from Kansas City’s premiere Lean/Agile expert asking if I could fill in for him at the Agile and Lean Workshop precompiler due to an emergency.  Twelve hours before the session began, the United States’ premiere Lean/Agile expert was delayed by snow and told me he couldn’t make it to the session until lunch.  That left me and this guy, or in other words, George and Ringo, and Ringo had a conference to run.

And it went great!  We had a really good group who gave us good questions to work with.  We played some games.  We talked about Scrum.  We talked about Kanban.  We talked about all the hot button Agile topics like estimation, bidding, and ongoing maintenance.  It was a good, energizing talk that reminded me how much I enjoy that sort of thing.

P.S. If you were at that workshop, please take a second and leave a rating for me at SpeakerRate.  Much appreciated.

Friday morning, Dan “Kan-Man” Vacanti gave a terrific keynote about how we serve our customers better with pull systems for doing our software development as opposed to push systems.  He also gave my own session a quick shout-out for which I am grateful, because without context, most people don’t get too fired up about a talk called “Lean Metrics.”

Next, I gave a talk called “Lean Metrics.”  Standing-room only with some people sitting in the aisles.  It was a huge fire hazard and OSHA violation, but it charged me up.

We talked about why estimation fails us and how keeping metrics can overcome some of the weaknesses of estimation, providing a better foundation for our planning and projections.  Then, I demonstrated control charts and cumulative flow diagrams, explaining how each one can help us in not only estimating, but also continuous improvement as well as challenging elements in the organizational culture that dampen agility.

Here are the slides for that presentation, and if you were there, it’d be cool if you left me a rating for that talk at SpeakerRate.

After this was over and I was carried out on the shoulders of screaming fans, I spent a little bit of time catching up with contacts from KCDC’s various sponsors.  This was an especially good KCDC for sponsors.  We had 850ish people there, which meant that, even between sessions, there was a continuous flow of activity to the various booths, unlike previous years where booth visits were pretty bursty in between sessions.

I attended an eye-opening talk on UX from John Alexander, a talk on the enterprise use of HTML5 and various JavaScript libraries from the Keyhole team, and a truly thought-provoking talk on what other languages have to teach us about object-oriented programming by Jessica Kerr.

That night, dinner and drinks with a huge crowd of people I usually only see once a year.  Also, Sugar Ray gave a concert nearby.  Nobody noticed.

I did not get to attend on Saturday, but I hear good things.

I think the venue worked out great, the crowd was numerous and diverse, and the variety of speakers and topics made sure there was at least something for everyone.  It may have been our most valuable KCDC yet in terms of investment.  If you didn’t go this year, dude, go next year.

Enhanced by Zemanta
Apr 182013
 
A look down Downtown Kansas City streets today.

A look down Downtown Kansas City streets today. (Photo credit: Wikipedia)

This is more general than Kansas City, really, but I’m finding that putting “in Kansas City” in the title of my posts tends to create a lot more discussion (and anger, but I’m a big boy).  I’m thinking of it being the new phrase I add to the end of fortune cookie fortunes.  “The dragon of opportunity also breathes fire… in Kansas City.”

I was thinking about this, because I see a lot of effort being expended in Kansas City, but I’m not sure I see all that effort producing many helpful results.  This could possibly be a side effect of startup culture – the assumption that doing something is the same as improving or getting good results.  It doesn’t matter if your business idea is sustainable or marketable, it only matters that you start it.

And I understand to a point.  It’s a necessary corrective in an economy where people are afraid to start, disrupt, do, or finish.  You have to get people past the initial hurdle before you can even talk about anything else, and that initial hurdle is usually starting.  Doing something.

Unfortunately, this is where the conversation usually stops.  If someone is doing something, we laud them for it.  Well, ok, fair enough, but success isn’t defined by expending effort; success is defined by results.  If I bust my butt trying to help developers get jobs, and I don’t get any of them a single job, that might mark me as having an altruistic heart, but it doesn’t mean I’ve been good for Kansas City (or whatever community you happen to be in).  Nobody says, “The Chiefs are such an awesome team; look at how much training they do!”  They want points on the scoreboard.

So, I’ve made a checklist for myself.  It’s not comprehensive, but it does help me continually measure whether I’m actually making an impact in my community or just generating a lot of activity:

  1. Did I help someone get a job or create a job for someone to fill?
  2. Did I help a company increase their profits, lower their expenses, or protect assets that would otherwise have been at risk?
  3. Did I help people, in any line of work, deliver more value?
  4. Did I help a person or an organization who stumbled get back into the race?

That’s my personal scorecard in the Game o’ Improving Kansas City.  This is not my scorecard for all aspects of life, but for measuring my impact in Kansas City’s economy, it’s a decent one.  I put numbers to each of those and, most months or quarters, I can.  And I’m just one person who is a relative nobody.  Just think of what groups with actual money and clout could do.

As Eli Goldratt once said, “Tell me how you measure me, and I’ll tell you how I behave.”  As you can see, a scorecard like mine drives certain behaviors, or at the very least, puts those behaviors in context.  It allows me to identify low value and high value activities.  It allows me to measure success.

So, in terms of impact, here are examples of the things that matter most:

  • Hooking people up with job openings that are good fits or, secondarily, referring people to the extremely small number of recruiters that I trust.
  • Helping an organization identify where their biggest gains would come from in terms of hiring new people.
  • Teaching people skills that make them more marketable and/or enable them to perform better and deliver more value to their organizations.
  • Turning around a struggling business.

Here are examples of the things that don’t have much impact at all:

  • Blogging
  • Creating or hosting “events”
  • Tweeting
  • Meeting with like-minded people so I can continue to agree with myself

Obviously, I enjoy some the things on that second list and get value out of them, and they generate some value in their way, but in terms of measuring actual points on the scoreboard that impact Kansas City economically, they mean almost nothing.

Interestingly, when you look at the various entities trying to do this or that for Kansas City, we tend to be very good at that second group of examples, but not so demonstrably good at the first group.  We’re very good at creating entities and generating interest and energy (and occasionally funding), but we’re not so good at actually delivering valuable contributions.

And lest I be misunderstood on perhaps the most potentially ire-generating point in this post: creating and hosting an event in and of itself is a very low value activity that helps nobody, except maybe the venue you paid to host it, and we create TONS of events.

Did your event create new jobs?  Did it put people in jobs?  Did it save any company any money?  Did it help them make more money?  Did it get capital to someone who needs it?  Did it revive a failing business?  Did it enhance anyone’s job security, marketability, or ability to deliver more value than they had before?  If the answer to one or more of those questions is yes, then your event made a positive impact in the community!  Otherwise, it might have been a fun event, but the net effect of it was nothing.  Lots of effort, no points on the scoreboard.

Like I said, our strength as a city seems to be talking, getting things going, building up buzz, generating motivation… we have a hard time delivering anything that actually changes anything.

So, my challenge to you, whether you are an individual or an organization that is trying to improve business in Kansas City, is this:

Don’t just start things; start the right things.  You don’t need to plan all the details of your endeavor before you begin, but you do need to know what success looks like and how you’ll measure it.  Spend your time on the activities that will generate actual impact as opposed to perceived impact.  Change lives.  Improve the economy.

I’m definitely on your side.

Enhanced by Zemanta
Mar 272013
 
English: Picture taken from the Liberty Memori...

English: Picture taken from the Liberty Memorial in Kansas City, MO. High Resolution. (Photo credit: Wikipedia)

The flip side of the education coin are the employers.

Regardless of the causes or who thinks what about how we got here, the fact is that employers in Kansas City are having a hard time finding and retaining talented IT people.

It’s very easy to say that there aren’t that many talented developers out there or look to some cause external to yourself.  Obviously, per yesterday’s blog, I think there are things that training institutions could be thinking about differently to try to address this shortfall.

However, like I tell my teams, spending your time complaining about external causes has very low value.  Whether you’re right or wrong is irrelevant – you can’t control external causes.  The economy is what it is.  The market is what it is.  Kansas City is what it is.  You’ve been dealt a deck of cards, and that’s the cards you have to play.

The high value activity is looking at yourself – doing the hard, painful work of being self-critical.

Why should I come work for you?

There is no New Economy.  It’s now officially just The Economy.  You probably don’t have the funds to golden handcuff a squad of dream employees to your organization.  You may want Brett Favre, but you have the money for Matt Cassel.

If you do have those funds, then don’t hold back.  Don’t be “competitive” with your salary.  Blow everyone else out of the water.  Be disruptive with your compensation.  You compete in every other area; why not compete in this one?  But, honestly, it’s not usually about vast differences in salary.

It’s usually about what life will be like for your employees.  Do you put your developers in fabric-lined jail cells and saddle them with meaningless deadlines, tedious processes, and a culture that is basically designed around the idea that your employees are lazy and can’t be trusted?  Do you have unclear priorities?  Do you align your development projects and your developers with your company’s objectives?  Are they a part of something bigger than themselves?  Or are they a machine where requests come in and product comes out?  What are employees getting into?

If you have a scenario where no one would want to live in it for more than a year, don’t expect to attract and retain top talent.  Don’t dehumanize your developers and then complain about how hard it is to find people.  Kansas City has lots of exciting things happening, but in terms of its ecosystem, it has a small town dynamic to it.  Everyone knows everyone else.  Every developer has six degrees of separation from Kevin Bacon and someone who left your company.  What stories do they have to tell?

But here’s the other big one.

Are you giving new folks a chance?

Just for the sake of argument (I’m not necessarily granting this point), let’s say that Kansas City’s available hiring pool is light on the experienced hotshots who have mastered a wide array of technologies, and let’s say it’s heavy on recent grads, career-changers, and junior level devs.  Let’s say the perception is reality.  Let’s say, for every twenty resumes you get, only one or two seem really shiny.

What are you going to do about it?  These are your cards.  You can’t change them.  What’s your play?

Well, you can poach heavily, and while you might attract some high-end talent that way, why would you think those same people couldn’t be poached by someone else offering a 10% increase in salary?

Or you can deal with reality.  Instead of trying to fight the trend, why aren’t you harnessing the trend?

  • Do you have an actual plan to turn junior developers into senior developers over time?
  • Do you pair up your superstars with your newbies on projects so they can work on each other’s code and have a true mentoring / apprenticeship relationship?  Or do you silo your developers and just give the junior levels the “easy stuff” or maintenance tasks?
  • Why aren’t you giving new devs a chance, knowing that, sure, it won’t work out for some of them, but some of them will be gold?  Some of them will be the backbone of your efforts for years to come.
  • Why isn’t hiring new grads or career changers part of your strategy to get ahead of your competition instead of something you are trying to avoid at all costs?
  • Why don’t you give recruiters a list of personal characteristics that you want to shape your teams and your culture and draw your line in the sand there instead of pre-packaged technical knowledge or an arbitrary number of years of experience?
  • Why aren’t you open to hiring someone who works outside of your technology stack to see if they can bring innovative ideas or problem solving abilities that your current stack might not foster?  I’d hire a passionate, thoughtful Java developer for a .NET shop over a “this is just my job and I’ve coded the same way for ten years” C# developer any day of the week.
  • When you hire a senior level developer, are you asking about their mentoring abilities?  Are they someone who can help the more junior level developers grow?  Will they build your team into a high performance nightmare for your competition, or will they just crank out your code and take their paycheck?

Now, I’m not suggesting you just randomly hire a pack of people with no experience and no knowledge of your development base, but what I’m saying is this: instead of whining about the lack of experienced developers, why not proactively work with the reality on the ground?  Why not intentionally plan to hire junior level people with a very deliberate plan to grow them into your future team leaders?  Can you imagine how attractive that would be to job seekers?

As a long time developer myself, I’m going to let you in on a little secret.  Being a good or a bad developer has virtually nothing to do with experience, education, or anything else you’d find on a typical resume.  It has everything to do with passion, drive, and a self-generated commitment to learning and continuous improvement.  Isn’t that what you want your company to look like?  Wouldn’t you love a team of people spurring each other on to greater and greater performance?  Hire for that.

If you can plan for that – if you can design your hiring process that way – you might find that it’s not as hard to hire good developers as you thought, and you’ll find yourself looking at a crop of eager new hires ready to show you what they can do and having a vested loyalty in the companies that believed in them.  While your competitors are still behind looking for the next superstar or trying to steal her, you’ll be getting your projects done and growing your own superstars.

Enhanced by Zemanta
Mar 262013
 
The Careers Day poster they rejected

The Careers Day poster they rejected (Photo credit: Alun Salt)

DISCLAIMER: I will use specific examples throughout this post without naming any names.  I want to make it clear that this is not picking on any one particular institution or form of IT training.  I have been a trainer for one of Kansas City’s largest IT training firms.  I have taught college classes.  I have made training DVDs.  I have subcontracted to teach with other training companies who span the globe.  These issues are in lots of places, so please don’t take any specific example and assume I’m trying to come down on a particular institution or practice or favor one over the other.

In doing the research for this post, I started going through the websites of various “career changer” programs.  You know, the programs where someone wants to make a big change and get into an IT career, but they have no real background or experience, so they sign up for a multi-week program to teach them foundational skills that, ideally, is enough to get them an entry-level job to start them down a new career path (incidentally, I totally believe in this model if done well).  I was looking for success stories.

What I discovered was that most success stories were several years old.  In fact, one institution led with a great success story in their marketing materials for their program.  That story was five years old.

Think about that for a second.  All the students that pass into and out of this program, month after month, year after year, and the best results they’ve gotten so far were five years ago.

Despite the current fad of people with no real knowledge of the field inventing statistics to try and prove there’s a developer shortage in Kansas City, the reality is far more complicated.  If there’s any shortage, it’s a shortage of highly qualified developers in Kansas City.  If you post a job opening in IT right now, you’ll have no shortage of applicants.  You’ll still have a hard time finding someone.  In fact, just a couple of months ago, a friend of mine who is responsible for hiring for a very large organization here in Kansas City told me point blank, “We’re getting lots of applicants, but most of them are graduates from Institution X and don’t know s***.”

There’s a disconnect.  Four-year institutions, two-year institutions, and training companies continue to churn people out into the market, but the market doesn’t seem to be buying.

On the other side of the fence are the pundits who just flat out say that colleges and/or career-change programs just don’t work.  This doesn’t seem right either, because there are successes and, quite frankly, it’s hard to think of another model that can accommodate the quantities and speed of the market right now along with the depth of knowledge required to write good software.  If you don’t have organizations dedicated to making this happen, the odds are good it won’t happen at all.

My premise, which of course may be wrong, is this:

Organizations who train IT careers, specifically development, need to ditch their current models and adopt ones that are market-responsive and student-first.

Curriculum

Most IT training organizations are not matching their curriculum to demand.  This is a known issue with two and four year institutions, but it is a staggeringly huge issue with IT training companies and career-change programs in specific, and it has been this way for a very long time.  I’m not talking about the specific manuals they use or whatever; I’m talking about the actual topics covered.

Every so often, I’ll see an update somewhere that looks something like this, “Getting ready to learn design-time data binding to datagrids.  Whole new world!” or “Finally creating DataSets.  This stuff is awesome!” and I die a little inside, because these are the functional equivalents of someone training for the medical field and tweeting about leeches and hacksaws.

Nobody wants that stuff because nobody is doing that stuff.  No company is trying to hire someone for web technologies and methodologies that are now 12 years old (NOTE: Ok, obviously, occasionally people do hire for very old technologies because they need to support old products or simply refuse to change, but I’d say that’s not where most of the technical demand is).

In researching this post, I pored over job openings in Kansas City for .NET web development, and they were asking for MVC, HTML 5 and JavaScript, NoSQL, ORMs, TDD, MVVM, and design patterns.  I found two that asked for ADO.NET (along with the other things on this list).  If the whole purpose of your company is to release people into the field who can perform a trade, why isn’t the taught curriculum aligned with what people are asking for?

Teaching Methodology

PowerPoint slide.  Explanation.  Demo.  Lab.  Not.  Ideal.  For.  Career.  Building.

That way is ok-ish for getting across a specific technical topic to a specific kind of audience and background: namely, the kind of audience who already knows how to build applications and practically apply their knowledge in the field.

But if you want to teach someone how to build applications, then you build applications and instill the requisite knowledge as you go.  And when I say “build applications,” I don’t mean labs that have been specifically designed around a particular concept.  Those are notoriously unrealistic and often actively teach bad practices and bad ways of solving problems, because the focus is on that specific concept and not the other parts of development around that concept.

“But if I’m trying to teach someone data access, I don’t have time to teach things like proper separation of concerns in the class layers or HTML 5.”

Exactly.  That’s exactly the problem right there.  You’re trying to teach someone data access instead of teaching someone how to build an application and talking about data access in the context of building that application.  People leave your training (even if it’s a four year program) knowing a ton of isolated, bad examples of various technologies, but they do not understand how to solve problems with these tools, how these tools interconnect, or when these tools are bad decisions.  And because you are so focused on teaching them a technology, they probably have never even seen a realistic example of it.

This dovetails with another issue, that most IT instructors/professors in Kansas City are not developers or haven’t been for a long, long time.  They are just as incapable of teaching a class driven by actual development as their students, and their knowledge and experience is just as limited by the curriculum as the students.  It’s not impossible, but it’s very hard to learn a trade from someone other than a tradesman.

Economics and Risk

Most IT training programs require the student to pay regardless of the result.  Some companies are thankfully breaking away from this model, but it’s still the most common model.  Students pay tuition to the training institution no matter what.

Two problems here.

On the student side, it puts them at enormous risk.  They have to pony up (or taxpayers have to pony up, in some cases) several thousands of dollars that may ultimately result in nothing.  Although I’m way more concerned about the students than the institutions who train them, this is actually not the biggest problem.

The biggest problem is that, on the institution’s side, their primary motivational force now becomes getting people into their program.  Not preparing them for jobs.  Not getting them jobs.  Getting them in the door.

When the training company I worked for started doing career change programs around late 2000, they made all prospective students take a short test.  It was things like pattern recognition, etc.  Nothing heavy duty, but it did look at their ability to spot patterns, think symbolically, etc.  At the time, a student had to score a 90% or above to be admitted to the program.

Over time, it got lowered to 80%.

Then 9/11 happened and the training market tanked big time.  60%.

Eventually, the test was completely done away with.  We got people in our program who were great people, smart people, and very gifted in many ways, but coding at an in-depth, professional level was just not something well-suited to their way of thinking and gifts.  But we took their money, gave them their diplomas, and sent them out the door.  And I quit.

The thing is, the success of our students only indirectly affected our prosperity (by way of marketing).

How would it transform things if institutions only got paid if and when their students got their first IT job?

Holy crap, right?  Now, I have an interest in helping students find their proper niche here or elsewhere.  I’m only interested in putting the student in a web development program if I think the student has the chops to be a professional web developer instead of the chops to secure a $12000 loan.

I’m motivated to make sure my curriculum reflects what business owners want and need.  I’m motivated to make sure all my students are solid.  I’m motivated to make sure anyone who learns how to develop from me can go into a team of experienced developers and play at or above their level, because if they can’t, I don’t make my money.

Before I close, I just want to say that deep within the chocolatey-good depths of my cynical heart, I am warmed to see some amount of rising to the occasion.  The Disruption Institute, for example, shows a real initiative in looking not only at what the market needs today, but will need in the very near future, and organizes their curriculum around that – curriculum that has been put together by actual developers in the field.

I believe in training companies.  I believe in two year and four year computer science programs.  They all have their place for different people and different goals, and it’s a poorly thought through plan that would advocate getting rid of any of them.  But you have got to step it up.  If you align yourselves with market needs and commit yourselves to the students’ welfare first, the money will follow.

Enhanced by Zemanta
Nov 302012
 
H&R Block's new oblong headquarters in downtow...

H&R Block’s new oblong headquarters in downtown Kansas City (Photo credit: Wikipedia)

Yesterday was another event in Kansas City’s non-stop train of entrepreneurship events – Novel Day. You had speakers, you had entrepreneurs, you had presentations of new ideas, more about Google fiber – you know the drill. These days, you can’t pull out of your driveway in Kansas City without driving into an entrepreneurship event, which is nice because, if you only have, say, three hours of free time between 3AM and 6AM on a Tuesday morning, someone is running InnovoStart 2012 or MidwestDisruptiCon or Hack-a-Build or whatever during that time slot.

In broad strokes, this is a good spirit to have. Innovation and entrepreneurship are how one thrives in the new economy, and inspiring to people to think in this way – wherever they’re at and whatever they’re doing – is key to keeping Kansas City business lifeblood flowing. I sometimes think we take too narrow a view of innovation and entrepreneurship and how that gets applied (i.e. the focus is almost exclusively on people starting new businesses), but overall, it’s a good trend.

One of the potential problems, however, is that we’re also creating a shadow industry with virtually no substance behind it. This is a cyclical path to economic destruction. Remember the .COM bubble? Remember the housing bubble? An economic “bubble” comes from a lot of money flowing into something that doesn’t actually deliver real value. It makes a lot of money initially, and then BOOM! The wheels fall off because everyone liked the money and apparent success, but nobody liked to ask tough questions about the undergirding until this edifice everyone put their hopes and investments into collapsed. I fear we might be creating a startup bubble.

At Novel Day, Ron Green made the comment that Kansas City was “positioned to become the global leader in digital storytelling.”

It was a popular comment, live tweeted by a few different people – a nice quotable soundbite. The only problem is that nobody knew what the hell this even means. I asked around. They don’t.

I mean, we know what digital storytelling is – it’s people making short, multimedia bits that share a slice of their life. Since “life” is a rather large umbrella, these short bits portray all kinds of things from struggle with disease to visiting foreign cultures to local events. Interesting stuff.

Here’s what people didn’t know: What it meant to be the global leader in this, what it meant to be positioned to become the global leader in this, and why anyone would particularly care about being the global leader in this. But, by Thor, with some hard work and a little luck, Kansas City will be… that… thing. Move over, BBQ and jazz – KC is gunning for the ambiguity market! I guess the Chiefs suck so badly this year that we’re just ready to be the global leader in something.

I’m picking on this one comment just because it was recent, but it’s hardly unique. I think it just serves as one of a thousand examples of how excited we’re getting about investing in anything that sounds entrepreneur-y. The point of innovation, entrepreneurship, “disruption,” startups, and all the other buzzwords that are en vogue right now starts and ends with the value these things bring. They are not ends in and of themselves. Hitler was a disruptive entrepreneur. Mustard gas was an innovation. Russian Roulette is taking a risk. But those things all arguably made the world much worse when they came along. What’s the value of all this? What’s the endgame? What are we trying to accomplish for Kansas City?

Being the global leader in anything has no inherent value. We have to ask ourselves, “What are we getting by working toward being the global leader in X? If we become a startup hub, what will that give us? If we become known as disruptors of the tech world, what value does that have?”

Establishing real value is the difference between a bubble and true economic growth. I am genuinely concerned for the city that I love in this regard. I’m not hearing enough questions and (healthy) criticism. I’m hearing a lot of vague terms and statements and declarations. I’m hearing a lot of sexy excitement and not a lot of boring thoughtfulness. I’m worried that, when the smoke clears, we will have poured a lot of time, money, and effort into a project that ultimately delivered very little.

I genuinely hope I’m wrong about that.

Enhanced by Zemanta