Wednesday, August 15, 2012

Opening Up The EMX Development System

Any idea what this is?  I had no idea. I won it during a session on open source hardware at That Conference.


Turns out it's called an EMX Development System (it does say that right on the bottom, see?)  It's a programmable board.  It's a really nice one apparently.  

I've always wanted a little board, thinking maybe it would be nice to try out an arduino, or maybe a netduino.  This thing is a monster compared to those.  It's got five onboard directional buttons (lower right) giant touch screen display, compatible with XBee, USB port, SD card, and a whole lot of things I don't even understand.  

So yay for me.  

To be honest, I'm a little intimidated, but I'm going to tackle this board.  Time to get reading... 


Commit to Something Crazy

I just returned home from an awesome inaugural ThatConference.  What a complete gas!  Incredible speakers, incredible community, incredible energy.

Full disclosure, I helped organize ThatConference.  I did a lot of the communications to the community, the speakers, the volunteers, etc.  I worked with a group of amazing people who put together an amazing event.

And I do mean amazing.  I was talking to one of the other organizers after it was all over and I was on my way home.  It was always my assumption that events of this magnitude were put on by professional event planners, not by a team of (admittedly smart and talented) software developers like me.  

What we turned out was a world-class event.  It was a first year conference that ran very smoothly, like we'd been doing it for years.  We had help and inspiration from other conferences (Codemash, from Sandusky, Ohio, for example).  Everyone appeared engaged.  They were connecting, and I heard many say that they would be coming back next year.  ThatConference is something that's been needed by this portion of the Midwest for years, and I think we really opened some eyes to how awesome a conference can be.

So how did we do this?  On the long drive home, I was thinking about it.  It was crazy to me to think that we could do it.  But what if we could pull it off?  It would be a great thing.  Actually, I realized, it happened because Clark Sell and Scott Seely committed to doing this two years ago.  They committed to doing something crazy.

I like that idea.  Great things happen when we commit to something crazy.

I never really thought of it much.  But everything that someone has created, no matter how great or small, has been done because someone was committed to that idea.  I used to believe that those big crazy things were done by other people.  People that knew what they were doing.  People who had experience in... I don't know...  doing big things?

With That Conference, I realized that a relatively small group of people, surrounded and motivated by an awesome community, put all this on.  I realized that the people who build things could be anyone.

Someone like me.

Better still, someone like you.  

I met Hersh Ajgaonkar at ThatConference.  He told me that he made the commitment to run an ultra marathon.  You know, the kind that's even longer than 26.2 miles?  Like fifty?  To me, that's crazy.  But when he's done it, it will be a great achievement.

Sharon Cichelli gave a really awesome presentation on Crafting Your Career.  She mentioned a technique in which she wrote her New Year's letter for five years from now, talking about all the awesome achievements that year.  She let her imagination soar and came up with lots of great ideas, some of which were pretty ambitious, possibly crazy.  And yet if she commits to something crazy, she will make great things happen, for herself and others.

Could it be that extraordinary people are ordinary people who make great things happen by committing to something crazy?  Possibly.

Do yourself a favor.  Commit to something crazy.  Write it down.  Then write a blog post about it and have the community keep you honest.  And tweet it to me @kevinpdavis.  What crazy thing do you want to do?

(Note: I didn't say commit to someone crazy, though that can make life fun, too.)

Thursday, June 14, 2012

Speak Up, Part 2

I read a lot of management books.  Management books and self help books.  How to get ahead.  How to be more effective.  These books help me see things from the perspective of management.  These books help me to remember to first change myself when I want to see change.  I look to these books for advice on how to effect change effectively.  Some people seem to just know these things, but I love to learn from other people's mistakes.

The most recent book I'm into is Crucial Conversations Tools for Talking When Stakes Are High, Second Edition. This book was recommended to me by a dear friend of mine that is employed in the field of organizational development.  From what I understand, this field  is basically organizational engineering, focused on improving the effectiveness of a corporate structure.  It's at the core of some of the things I enjoy.

One of the tenets of the book is that to have a difficult conversation, a crucial conversation, the kind of conversation that changes the direction of a company or a life, it's important to get everything on the table. All the information has to be available to make the best decision.  Hidden information tends to lead to suboptimal decisions.

So that brings up a really good point.  How many times have you been in a situation where you're talking with a colleague about a new plan, program, or project from upper management, and they list off the reasons why it's not going to work.  These same people, when put on the project however, do what they're told, work on the project as much as they can, and then when things go south, they shrug it off.  They say that they predicted this eons ago.  I've known people like this in every organization I've been in, not just work situations.

Why not say something?  Speak up!

I've written about speaking up before.  That context was about getting involved, especially to learn efficiently.  Here, the context is a little different.  Speak up so that others learn more efficiently, too.  That project might have gone better if those folks brought up their concerns in a positive way.  Get the issues out there.  What obstacles do you see?  What problems have you seen repeat whose sources haven't changed?  Problems that no one hears about rarely get solved.

If you have material insider information, speak up!

Why doesn't everyone speak up?  The answer inevitably seems to be fear.  Fear of reprisal?  Maybe.  Fear of being fired?  Sometimes.  Fear of being told you're wrong?  Sure.  But having hidden information means that whatever organization you're part of means that you believe they're making the wrong decision.  And you're okay with that?  Where's the integrity?  You're willing to spend your time working on something you don't really believe has a chance?

Speak up and let that information flow!

Another book I finished recently was OOPS! 13 Management Practices that Waste Time & Money (and what to do instead).  (Seriously, I'm not pimping these books.  I'm just trying to share what I've read and if any bit of it helps guide anyone else, I'm happy.  I'm not in any way affiliated with these authors, though I wish I were).  One of the mistakes that this book asserts that management makes at some point is that management underestimates just how much impact the enthusiasm of the front line workers have on their initiatives.

We are not cogs.  How we work matters.  Our enthusiasm matters.  Flog us, and some of us will let our morale shrivel up.  Like Office Space taught us, we may work just hard enough not to get fired.  That's sad.  It's not good for the employe, and it's not good for the company.  No one wins.  Those employees sit and wait until the job market picks up and bonuses are paid and then leap to a new company.

Better: if you hear people speaking up, listen!

If you are in management, you need to make sure that everyone has a voice.  That everyone can chime in during a Crucial Conversation and not be shot down.  That you take individual concerns seriously and not just push them aside.  That there is nothing to fear for bringing up concerns, even if they are un- or ill-informed and their concerns have been mitigated.  If your front line workers still care enough and take the time to tell you despite having some fear about speaking up (and many of them do), know that they're really trying to help the company.

Most of all, recognize that fear is poison in the office, and that trust is the lubricant that oils the gears of your business.  Not enough trust and too much fear can grind the mightiest businesses to a halt.

Better still, ask for their feedback.  Get in there and talk to the leaf nodes of your organization.  Find people willing to stand up and say what's on their mind.  Have an honest dialogue with them.  Let the information flow freely - org chart be damned.  Get them to buy in to the programs.  People don't buy in because they're involved.  That's not enough.  People buy in when they understand.  And they need your help to get there.

Bruce Eckel, author of Thinking in Java gave a talk at Codemash 2012 that really hit home for me.  He is currently working on a project about how to make businesses better.  He spends his time thinking about how businesses can be made better.  His blog at http://www.reinventing-business.com/ is full of interesting reads.  His presentation showed me that he really gets it, too.  He talked about companies that breed trust and excitement in their employees, citing Zappos as the canonical example.

I want to work in a company like that.  And I want to be part of what makes that culture happen.

The only way I know how to do that is to Speak Up.

And just one more plug. While I'm not speaking there myself, many of my fellow developers are speaking up at That Conference.  I'm really excited for this event.  it's August 13-15 at the Kalahari resort/water park in the Wisconsin Dells.  If you are thinking about getting out there and becoming more involved in the community, please consider joining me.  Tickets for the three-day conference are only $349, and there are over 150 talks to choose from over web, mobile, and cloud.  All development languages and platforms welcome.  Send me a message and find me to chat, pair up on some code, or to tell me you think I'm totally wrong.  Just come out and speak up.

Monday, May 28, 2012

Get Yourself a Mentor

I have talked to lots of people in Corporate IT shops, and a lot of the concerns people voice are similar.  Times are tough, they're trapped in cost centers, asked to do more with less, don't get the training they way, and so on.  Last time I reminded people that they are in charge of their future.

Note, I'm not advocating that people leave their jobs right now, but I am advocating something that the TechCrunch article points out, that there is no corporate loyalty towards employees.  How old are you right now?  20's?  30's?  40's?  If so, you've still got quite a long while to go before retirement.  What's the likelihood you're going to retire from your current employer?  Pretty close to zero if you're in a tech job and planning to stay in a tech job.  New technology, changing market conditions, need for cheaper, less experienced workers will all work against you.

This time, I want to call out one specific thing you can do to help yourself beyond what I was suggesting earlier.

Find yourself a mentor.

I've been very lucky in my career to have had lots of individuals I can look up to and ask candid questions of without fear for my continued employment, and I urge you to find someone similar in your life.  You need somewhere you can speak freely about job advancement, skills that really matter,

Here are a couple suggestions of where you might look

  • Talk to your boss.  Just like we don't choose our parents, we rarely get to choose our "organizational parents and ancestors".  You sometimes get to have some comment in your boss or grandboss, but rarely.  And because they're not interviewing with you, you frequently end up with someone who wouldn't be your first choice to work with.  But don't write them off.  They may be a great resource, especially if they're an honest and good manager.  Ask them their back story.  If they came from your position in another company, ask them what it took for them to get there.
  • Look in your business units.  It's great to forge a relationship with someone who's not in IT that is in a position above yours in the org chart, but not in your organizational ancestry.  That kind of relationship has some side benefits beyond just being able to ask for career growth advice.  This kind of cross-departmental relationship is often very healthy in an otherwise siloed business.
  • Look to supervisors from old companies.  They know who you are.  They know your skills, probably better than you.  They might be able to suggest career choices that you might find interesting based on other folks who have been through their ranks.  Sometimes the fact that you no longer work for them allows them to talk about your possibilities and capabilities more freely.
  • Look to colleagues from old companies.  We're all in different places in our lives at different times.  That colleague that was a peer in a previous company might have had a little more time and motivation and pushed up a level or changed jobs while you were at a gig where your job or skills weren't highest priority in your life.  Talk to them about what they did, what they've done since. Talk to them about what they found most beneficial in their quest to massage their careers.
  • Look to your heroes in the industry.  Ask what they look for in a colleague.  Ask what they think is most relevant.  With lots of folks on twitter these days, people you look up to are just a few clicks away.  Better yet, if you want to work like those people, offer to work with those people.  On an open source project that they've started, for example.  Or better yet, try to get employed at the same place they are.  
I guess that last one is pretty near and dear to my heart.  I do believe that when you're working in Corporate IT, maybe not feeling appreciated, maybe not feeling connected to your industry, you should at least enjoy the people around you.  Frequently it's the time with them that make it all worthwhile.  Find a place that has people that thinks the way you want to   

We do have openings where I work, for example.  If you like what I have to say, you might consider sending me a message.  We have great openings now for .NET developers and analysts in the west Chicago burbs.  You can contact me via the info at kevinpdavis.com.  If nothing else, I love having the conversation.

Wednesday, May 16, 2012

You Are in Charge of Your Future

Where do you work?  Are you working for a software development company?  Are you working directly on the product that's making your company money?  If so, great!  You may have a rocking development machine.  You may get sent to conferences to network with your peers.  You may get sent to training on the latest technologies.  You may even have lots of dev tools and libraries at your disposal.

This post is not for you.

This post is for the employees in Corporate IT positions.  This post is for all the Dark Matter Developers.  This post is for all the 501 Developers.  This post is for anyone who is working in what they call a "cost center", meaning that they support the business unit they are in but are not directly responsible for making the money that keeps the company going.

Because they are not revenue generators for their business, these corporate IT departments are often not very well understood.  The businesses they work in are not technical companies, and they often see technology more like a utility service than like the strategic partner or business differentiator that it could be.

Sometimes these departments are understaffed, making it hard to produce code the "right" way.  Sometimes the tools they have at their disposal are subpar.  Sometimes the developers, even if they follow and learn good practices, are only there to maintain what the contractors are brought in to build.  And if you're still following along, I'm probably not telling you something you don't know.

But something you do need to consider: your skills will atrophy in this environment.  Too many people leave a great environment where they have business knowledge that matters, just to get involved in some more interesting technology, because they have become subject matter experts that can't be allowed to work on different things.

Just because you're Dark Matter, doesn't mean you Don't Matter.  We very much want to hear what you have to say.

You can be a great developer, even if you're in corporate IT, but you may not get the help and support you need from your management.  This isn't because they're bad people.  They just may not understand exactly what it takes to keep creative people interested.  Or they may not understand that a couple thousand dollars a year for a training budget to keep a good employee is better than paying alarming penalties in restaffing and training costs when they leave.

What I'm saying is that you may have to take responsibility for your own personal development.  You have to work harder to stay up on things, because the technologies you use where you are may not be the latest and greatest.  They may not even be fun to work with.  But you owe it to yourself to stay relevant, and that isn't necessarily your company's goal.

Commit at least some of your time to reading blogs.  Follow some leaders in the industry that you like.  My personal favorites are mentioned in my earlier post The Cult of Do, but I'll take suggestions.  I love hearing about new thinkers out there who have joined the conversation.  It takes very little to set this up in Google reader, and you can dial the content up or down as you need to feel like you're not hitting information overload.

Another way to get some time in with new technologies: attend free community events.  At a minimum, know what is offered around you.  In the Chicago area, it's things like Chicago Code Camp, a free technology conference, or the Chicago .NET Users Group.  These are great ways to network, and have a good time learning about new technologies that you may not be using.

If you crave experience in a new technology, find some way to do it, even for free.  Lots of people will tell you that you need to do open source projects, but that's just one way to code with folks.  What about giving some of your time to code for charity with a project like GiveCamp?  You can code for charity for a weekend?  Sure, it's some of your time, but this experience may be better than the last year you spend maintaining a Visual Basic application from the early 2000's.

Or maybe you're a little competitive?  Try participating in a team in a Hackathon!  Great prizes, and you get to code with new folks in a new environment.

This one may come as a shock. Yes, you may have to part with some cash on your own to invest in yourself as a professional.  Remember, your company doesn't owe you personal growth.  They owe you cash for your talents.  Keeping your talents sharp may be up to you.

Here are some tools that might be within your grasp as someone who wants to keep up.  A personal ReSharper license costs $149.  Learn to use it, and you'll be coding like a Jedi in no time.  An unlimited annual subscription to Tekpub is $300.  It's got all kinds of cutting edge topics, presented by experts in the field.  If you feel like you're behind on some of the latest/greatest, check it out.

Finally, I want to put in a plug for regional conferences.  Smaller regional technical conferences like Codemash in Ohio are a great deal for personal investment, especially when compared against the relatively expensive TechEd.  These are great ways to meet people and companies in your area, be part of the conversation, and to learn lots of great new things from peers.  Regional also means that you won't have to fly to get there, meaning that cost is even less of a factor.

Consider That Conference.  It's a new polyglot conference servicing the Midwest and is focused on the Web, Mobile, and Cloud.  Three days, 150 presentations, and it's only $349.  Compare that to the couple grand that TechEd will set you back.  Throw in a couple nights at the waterpark resort it's attached to, and you only get set back about a grand total.  Compare that to the thrill of what you'll learn.  Compare that to the confidence you'll have with your new skill set, or the next great job opportunity.  It's an investment in yourself, an investment in your future.  As of this writing, registration for That Conference is still open for 2012.  Consider what it can mean to the future you.

You are in charge.  Make it happen.

Saturday, May 12, 2012

Who the Heck Do I Think I Am?

I am so sorry.  Where are my manners?

I have completely neglected to introduce myself.  Here I am asking to be part of the conversation, asking you to come on a mental journey with me, and I haven't even told you why I think I matter, or why I think we should dialogue.

I think I'm just like you.  Or somewhat like you.  Or like you in some ways and unlike you in others.  I guess that's part of what we're here to find out, isn't it?

First and foremost, I'm a family man.  I have a couple beautiful children and a lovely wife that I live with in suburban Chicagoland.

Second, I'm currently working as a technologist.  My official title is Lead Architect, but I consider myself a developer and coder, a team leader and educator, a mentor and a manager.  I really enjoy coding and talking about coding with others, but I sometimes feel these opportunities are somewhat limited.  That's part of reaching out to the community for more discussion.

More specifically than that, I'm a corporate technologist.  That means I work within the boundaries of a formalized IT organization within a business whose main source of income is decidedly not technology.  That means I'm in a cost center, and I typically feel the pinch of those boundaries. This is something that I plan to write about a lot in the future, as I feel that there is not enough discussion about these situation, and my intent is to speak up and to listen to what you have to say, too.

I am an avid student of how businesses work, and making them work better.  I love knowing what motivates people (and am a big fan of Daniel Pink's Drive).  I want to know how to build a better business, and was invigorated to see a talk this year at Codemash by Bruce Eckel, in which he describes his initiative at Reinventing Business.  This kind of work fascinates me.

Being a corporate technologist, I also find myself being a Software Archaeologist.  In fact, I like the title so much I had mugs and business cards made to that effect.  You can also see my shingle up at http://www.kevinpdavis.com.  Refer to the other post for a detailed description of what that means to me.

I'm also a technical book reviewer. Since I have long been a lurker, yet loved reading about technology, I have been reviewing books in the Pearson publishing family for over ten years now.  It provides me with divergent educational little side-topics that keep my interest in things high.  I've been a frequent reviewer for Thomas Erl, for example, especially in the SOA books series.  While I don't consider it part of my persona, I did a stint as a podcaster for the On SOA series (specifically for the Contract/Versioning book).  I love these kind of side gigs, and they really keep my technology hunger up.

I believe in making my community better.  That's why I'm volunteering on the staff for That Conference, a summer camp for geeks in which we'll be having 125 sessions in 3 days about web, mobile, and cloud.  I can't wait for this one.  At this time of this writing, tickets go on sale less than a week from today.

Whether I like to think of myself this way or not, I'm a blogger.  I wrote two blogs years ago detailing some of the early adventures of each of my two children.  Best baby book ever, IMO.  And now this one.  See them all at my home page.  They're all linked there.

On the non-professional, but no less important, side, I'm a home-brewer.  Card carrying member of the American Homebrewer's Association.  I wasn't much of a beer-drinker until I tried to make it.  Now, I brew on a regular basis.  I love to make the darker and heavier beers.  Porters, stouts, belgians, bocks, and any kind of flavored beer.  Orange Creamsicle Ale is what's in my fermenter at the time of this writing.

I never would have believed you if you told me ten years ago that I'd ever run a mile again in my life.  A few short years later, and I've put a few 5K runs to bed, and I'm working up to a 10K.  Since I run about three times a week now, for almost an hour at a pop, I guess I am also a runner.

I'm also a member of the Board of Trustees for the Paramount Theater in Aurora, IL.  This historic theater is a pretty amazing venue in the suburbs, and they are producing four broadway shows a year now, and they are most excellent.  Buy tickets now for next year's season!

I am also currently functioning as the Assistant Cubmaster and Webelos II Assistant Den Leader for Gamble's cub scout pack.  I helped start and very much enjoy our new hiking program, called the Trailblazers, and I enjoy both learning and teaching these valuable life skills.  The scouts is an excellent program of discipline and practical skills.  I recommend it for all boys.

Funny, when I began writing this post, I thought it would be much shorter.  But these are my passions for now.  They will change, and you'll probably hear about them.  Because that's just who the heck I think I am.


Thursday, May 10, 2012

Software Archaeology


What is a Software Archaeologist?

Most of us that work in corporate Information Technology shops are Software Archaeologists. Every organization I’ve seen and many I’ve talked to has a built-up layer of legacy applications that are old and in disrepair. While many of these applications are used daily, it may have been years since they were opened, rebuilt, refactored. The source code may be missing, and the original authors may be long gone from the organization, taking their knowledge of the application with them.

It’s this organizational brain-drain that turns many of us in corporate IT into Software Archaeologists. Every time a developer has to don his leather fedora and dive into an ancient codebase with little to guide him but a few cryptic comments littered in the code tomb, and a document that some long-ago intern put together in a half hour to meet a letter-of-the-law requirement in the then-current SDLC, that developer becomes an archaeologist.

Being an archaeologist means digging through all the various eras of coding.  Being able to parse the Scatter-Gather patterns in Visual FoxPro, say, or to unwind the data calls from the business objects that were once part of the popular CSLA methodology - those become part of your everyday toolkit.  What about that legacy web services architecture that passes around typed data sets everywhere?  What about that .NET 1.1 Remoting service layer you built?  You need to know it all, and to hop back and forth through the disparate layers, gathering golden icons and dodging rolling boulders all the way.

Even those developers who only develop new applications need to be versed in Software Archaeology, because nowadays many internally developed applications are on end-of-life platforms or hardware, being scoped for moving to the cloud, or are being revisited as part of Business Process Reengineering.  These developers need to get back into recently rewritten code and re-envision.  You have to know how to dig.

As a Software Archaeologist it pays to know not only today’s architecture, but those of the past, especially those that were popular in the organization around the time the code was written. But not limited to the standard architectures of the day. Organizations hire people who come in to try their hand at something new, or bring in some flavor-of-the-day architecture, tool, library. As a result, one-off applications are going to be unearthed. As architectures become archeological layers in the binary geological strata of an organization, so do architects become archaeologists.

I have a deep appreciation for all my colleagues who perform software archaeology on a daily basis.  Those whose jobs are just to maintain those applications that time has forgotten.

I respect the dig.