Posts tagged lessons

Lessons Learned About Presenting by Being a Presenter

Public speaking was a skill I consider important and continue to struggle with as I do more presenting.  During my mid-twenties working full-time and going to school helped shape how I viewed classroom learned concepts and skills and applying them in the “real-world”.  Throughout my career I have been fortunate enough to present to various audience sizes from internal meetings to national conferences.

Sometimes it is easier for me to learn a better way to do something by talking about how I have it done wrong.  Here’s a few ways I turn “anti-patterns” of presenting on their head.

Target your audience; focus on the masses.  Last year I presented the WCF Quickstart at DODN 2009.  I know a lot about WCF but my weakness is that the context I used WCF in was different than what most people will see.  I was in a SOA/Event-Driven/Data Sharing world.  Most people need web services because someone told them using a web service for data access was more secure.  The SOA people in the audience connected, but I lost others.  Target the masses and call out the smaller communities to ask questions or point out where they might benefit.

Favor simple examples to illustrate concepts over full-blown systems.  When you think about presenting it’s a dream to think you could design a full-functioning app to illustrate concepts.  But it’s just a dream.  The problem with using full-functioning apps is that the concepts can be lost in the details of how the app is constructed.  My biggest gripe about presentations is that the examples aren’t enough, but there’s a reason.  To be really effective the example and your presentation should help people take the concept to a higher level.

Build a portfolio of presentations and tweak them as technology changes.  My favorite speakers all have a portfolio of presentations they deliver.  As tech changes these speakers update their content/examples.  This helps speakers to really own the material and keep it fresh. It also makes it really easy to submit speaker applications because everything is ready to go.

Don’t be afraid to improvise and engage the audience.  At the NIEM NTE I was scheduled for two back-to-back sessions.  The first was a split presentation on .NET & NIEM.  The second was on NIEM, SOA, and EDA.  By the time I got out of the .NET presentation and to the SOA presentation my adrenaline was up and I rushed through the SOA presentation.  There were about 30 minutes left so I hit the floor for questions.  The discussion that ensued was much more interesting than my presentation.  That is not what I planned for but it worked.  Audiences don’t always want to be talked to; sometimes they want a little conversation.

Be you.  When you stand in front of yourself you open yourself up.  People know when your heart is not with it.  Talk about stuff you’re passionate about and let that passion come out.

Lessons Learned About Being a Software Architect By Trying to Be One

For most of my software development career I cared about how software was organized, how I had to work with it; how I had change it.  I never had any formal training or courses on being an architect and, until recently, it seemed like such courses were few and far between.

Over the last few years I learned a lot about being a software architect through trials by fire.  When I left the Library world and transitioned into the Justice world I had to step up my game quite a bit.  During that time I learned what it took to build systems that had to work round-the-clock.  I learned what it took to make disparate systems talk to each other to perform work and remain autonomous.  I even tried my best to do things the way I was learning.  But often times I was learning more than I could apply and at the pace work was coming at me I couldn’t rewrite systems just to apply new things I learned.

The first thing I learned was that you can’t do it alone.  I knew that there was a better way to do things and I couldn’t settle for the status quo.  I also didn’t agree with all my coworkers, so I went outside for help.  Getting outside perspective was huge and hooked me into people who share industry best practices.  Blending that knowledge with inside perspective helped me see where best practices fit into the environment.

The next thing I learned is that people probably won’t like you.  Something about architects being perceived as telling people how to code leaves architects out of popularity contests.  Personality also works against you too.  Learning to control the personality traits that work against you (unwillingness to be flexible, “my way, no highway option”) and helping people discover best practices in the way they need to learn will help.  Both of those take time to do and you can’t reach those goals all at once.  The architects who learned this lesson are some of the best and I am fortunate to know a few of those architects.

You have to be willing to constantly question yourself. Software architects have to make a lot of assumptions.  Part of the key to success is to get good at making good assumptions.  Another part is to know when to question yourself and when to be OK with something.  These two attitudes can work for you and against you.  You’ll know when something is as right as its going to be.

Software architecture is personal and you have to be open to exposing how you think to others.  This is hard.  Especially when someone who you think is not capable of objectively reviewing a solution reviews one and gives you negative feedback.  Dealing with that requires more interpersonal skills than anything.  Be prepared to make mistakes and see lesson #2.

The final lesson I learned is that you will never be done learning and it takes small leaps to make big ones.  I was introduced to OO patterns by a Java programmer.  I was clueless.  As I studied those patterns and the concepts taught, I struggled to apply them in an OO world.  But in the SOA world things started to make sense.  Encapsulation.  Abstraction. Loose-coupling.  Suddenly concepts and patterns made sense at the OO level.  For me to learn I had to see the problems in context.  My context was SOA and the bigger picture.  When it all clicked, that “a-ha” moment helped me make leaps that I never imagined possible.

For a few years now I have considered myself an architect though I have never had that title from an employer.  A good friend and mentor told me that the way I worked and what I did made me an architect.  He had that title once, so I felt ok taking that advice from him.

The truth is, every developer is a little bit of an architect.  Some of us just care a little more than the next guy.

Lessons from being a ‘Dad’

Fatherhood is not something that is covered in many academic courses. The few that attempt to broach parent hood just don’t cut it when it comes to the real-world where personalities and relationships add variables to an already unbalanced equation.

I’ve been a dad for almost 4 years now.  I don’t know that I’m very good at it but I’ve learned a few lessons along the way.

Lesson 1: The call isn’t that important.

Neither is that E-mail. Or that tweet.  Or that blog post.  This was is the hardest one for me.

Lesson 2: Keep a schedule.

This helps you and the kids.  Have quiet time, encourage them to go find something to do and let them go.  Take the time for yourself.  Our kids go to bed around 7.  People think we’re crazy, but for me and my wife that is 3-4 hours of movies or hobby time before bed.  Everyone wins.

Lesson 3: You can’t teach imagination.

For a long time my wife and talked about how to help our kids discover their imaginations.  Then one day the kids pulled out all the pots & pans and had an feast with more imaginary friends than we could keep track of.  It was a mess but it kept the kids busy for hours.  We have parameters for when their imaginations go too far, but as long as the kids don’t cross that line they are free to imagine away.  We’ll even help clean up.

Lesson 4: Dance. 

I’m not talking about some choreographed work of art.  Put on your favorite music and just let loose.  Your kids will join you no matter how goofy you look and you’ll have some of the best moments of your life.

Being a dad taught me something about software development too.

Lesson 1

E-mail can wait.  If it’s really important, come find me.  Learn to know when you can interrupt your teammates and when you can’t. It’s not easy at first.

Lesson 2

We have a customer to deliver to and they have a business to run.  Deliver results at regular intervals.  Work with the customer to make the results what they want.  If it helps them and their business everybody wins.

Lesson 3

Software developers are creative and we need boundaries to keep us in check.  Those boundaries help grow our creativity; not diminish it.

Lesson 4

Life is serious.  So is the impending doom of deadlines, missed features, broken dev environments, and changing requirements.  Have some fun and write software too.

“Lessons Learned from Bruce Lee” – An Architect’s Perspective

Clint Edmonson tweeted about this awesome post from Sources of Insight – "Lessons Learned from Bruce Lee".  This post really resonated with me so I thought I would add some of my thoughts to the original author’s work, giving it a software architect’s perspective.

  • "Be YOUR Best" – Self-explanatory.  The only person you should try to top is yourself. 
  • "Absorb what is useful" – "It’s not about blindly adopting patterns and practices.  It’s about taking the best of the best and tailoring it."  The author’s original words are almost straight out of the mouth of a modern architect or software developer.  There are a lot of technologies, patterns, and options but not all of them are proven, take what is and add your own experience to the mix.  ("Mash-it-up" if you want to be Web 2.0 about it :)
  • "Keep an Open Mind" – Sometimes you will learn something in a specific context and attempt to always apply in that context.  Throw away the context and look at it differently.  You may then see that to apply SOA does not mean it has to be implemented with web services.
  • "Stay Flexible" – If you read the Architect’s Creed then you know I am a big proponent of flexibility in software systems.  That flexibility starts with the architect.
  • "Focus on Growth" – Growth is key for an architect and software developer.  You have to keep pushing yourself to the next level.
  • "Know Thyself" Every leadership manual or class has a section on this.  You are your greatest strength and weakness and your knowledge of those factors will affect your designs and your team.
  • "Make Things Happen" – Don’t stop after a big success, keep going.

Be sure to check out the original post on Sources of Insight to catch all of the authors favorite points and perspective.  It’s a great read and there is something for everyone.

Leadership Lessons From The Ranger Handbook

I have not written about leadership in a little bit so I thought I would post this one.  Studying leadership can take you to all sorts of places where leadership happens each and every day.  There is probably no other place that leadership has the most visible and known impacts than in the United States military.  Each branch of the military has its own unique leadership program that teaches core values and skills for leaders.  Many of these leaders are tested in combat where the results are life or death for the leader and the led.

The leadership lessons taught by the military are simply stated in the most understandable manner possible.  A great place to find solid leadership advice is Chapter 1 of SH 21-76, The Ranger Handbook.  The bullet points tie into FM 22-100 the Army’s 283 page leadership handbook.  SH 21-76 does a very good job of fitting these principles to a nice printable page.

From Chapter 1 of the Ranger Handbook, some of the most applicable leadership advice I have found in my studies.

BE

  • Technically and tactically proficient
  • Able to accomplish to standard all tasks required for the wartime mission.
  • Courageous, committed, and candid.
  • A leader with integrity.

KNOW

  • The four major factors of leadership and how they affect each other are–
    • Led
    • Leader
    • Situation
    • Communications
  • Yourself, and the strengths and weaknesses in your character, knowledge, and skills. Seek continual self-improvement, that is, develop your strengths and work to overcome your weaknesses.
  • Your Rangers, and look out for their well-being by training them for the rigors of combat, taking care of their physical and safety needs, and disciplining and rewarding them.

DO

  • Seek responsibility and take responsibility for your actions; exercise initiative; demonstrate resourcefulness; and take advantage of opportunities on the battlefield that will lead to you to victory; accept fair criticism, and take corrective actions for your mistakes.
  • Assess situations rapidly, make sound and timely decisions, gather essential information, announce decisions in time for Rangers to react, and consider the short- and long-term effects of your decision.
  • Set the example by serving as a role model for your Rangers. Set high but attainable standards; be willing do what you require of your Rangers; and share dangers and hardships with them.
  • Keep your subordinates informed to help them make decisions and execute plans within your intent, encourage initiative, improve teamwork, and enhance morale.
  • Develop a sense of responsibility in subordinates by teaching, challenging, and developing them. Delegate to show you trust them. This makes them want more responsibility.
  • Ensure the Rangers understand the task; supervise them, and ensure they accomplish it. Rangers need to know what you expect: when and what you want them to do, and to what standard.
  • Build the team by training and cross-training your Rangers until they are confident in their technical and tactical abilities. Develop a team spirit that motivates them to go willingly and confidently into combat. Know your unit’s capabilities and limitations, and employ them accordingly.

Simple lessons with direct application to all fields where leadership is needed.  Over the next several weeks as I have time I will take each bullet and provide some simple examples of how each one of these principles can be applied in the day-to-day world of the architect as a leader.

Technorati Tags: ,,

Today’s Lesson

Try to be less easily bothered.  Great advice from Paul Horgen, CEO of Think Mutual Bank during a presentation I was privileged to attend in April.  I've been thinking about it a lot lately.  This small post is my challenge to myself (and you) to give it try.

Go forth and try to be less easily bothered!