Sunday, January 11, 2015

Strive To Fix What You Can

I will admit to sometimes getting frustrated at work when someone doesn't want to work in a specific codebase because they think it has too many problems. George Bernard Shaw said, "If there were nothing wrong in the world, there wouldn't be anything for us to do." The systems that need the most work don't just validate the need for developers but are an opportunity to make major improvements.

I had a friend in grad school who went to work fixing and upgrading Cobol applications at a large financial company. Much of the software had no major maintenance in years. He loved it. He said that everywhere he looked he found things to improve that made him look like a rock star.

When you find yourself in that legacy application that is out-of-date and has little to no documentation. Strive to make it better and people will notice. You might even change people's perceptions of the application.

Tuesday, January 06, 2015

Quality is #1

A product with poor quality should not be tolerated. Delivering a product at the cost of quality should only be accepted in the short-term. If you are using Agile Methodologies, in the span of a sprint, it is acceptable to deliver what you have at the end of the sprint. This will allow for continued progress and enable the gathering of valuable feedback. However, it is political suicide to continue to deliver a product with poor quality. If there is a quality issue then change your roadmap and milestones to address the quality issue.

Wednesday, December 31, 2014

Brute Neighbors

One of my more cherished and private possessions is a book - American Prose. It was printed in 1892, and is filled with short stories by American authors. Every so often, usually in late fall or early winter I'll pick a story at random to read. Today was "Brute Neighbors" by Henry Thoreau.

I think it wonderful that a book over a hundred and twenty-two years old is perfectly functional and enjoyable to read. Though I do dread the day when the book becomes damaged from use and age; I think that I'll continue to read from it each year. It has more value to me as a book then a collector's item.

Tuesday, December 30, 2014

Not Even In The Same Ballpark

Not so long ago, a new Product Manager told me that she also is a programmer... a software engineer. She implied that if she wanted she could be part of the development team. She had just started and I had no reason not to believe her and accepted it as an interesting side note and went on. As time has gone by it has become increasingly apparent that this individual was never a software engineer in the way that my peers are. The comparison is almost offensive in the stark difference and extreme lack of understanding of what a software engineer does.

To anyone reading this:
Please do not say that you are part of someone else's group unless you truly know about that person's group. I've brewed beer and cider a handful of times. I've even had the lucky experience of brewing some stuff that is better than some store bought stuff. But I would never call myself a brewer in the presence of someone like Sam Calagione or Jamil Zainasheff. I've never brewed commercially and have no concept of the constraints involved, and I don't have near the same range of experiences. Notice the difference in tone the following two statements have:
  • I'm a brewer like you.
  • I've brewed at home.
If they both seem innocuous then here are some example responses, respectively:
  • Oh yeah, what bars are serving your beer?
    • Since I have never brewed commercially, I do not grok the need for high efficiency sparging, dealing with distribution laws, etc.
  • That's cool. What is your favorite style.
    • I love Bock beer. And Belgium style. And Kolsch. And Scotch ale. And, oh man, Southern Tier's Creme Brulee stout is just epic. But I mostly make cider because I'm decent at it.
Of course, those responses could go any number of ways but the point is that you can share that you have some shared experience without implying your of the same level. Especially, when you have no idea. Heck, you might be better but you just met so you have no idea.

In short, just be genuine. If you were hired to do a job, focus on that. Don't worry about trying to "fit in" with people in other roles.

Monday, December 22, 2014

How To Make Meetings Better

1.

Improve collaboration in meetings by removing the chairs from the conference room. Researchers at the Olin Business School at Washington University in St. Louis used body sensors on two groups of participants and found that team members who stood were more engaged, less territorial about their ideas, and generated more creative results.

http://news.wustl.edu/news/Pages/27031.aspx

2.

Start your longer meetings by giving everyone a chance to share what they need to do or to say to be fully attentive. One person might have a specific question. If they have more than one then they should have asked their set of questions beforehand. Another person might need to leave at a specific time. Yet another person might just want to vent about being in meetings all day. If the same person makes this complaint often then they might not be ready to be included in these meetings.

3.

Make more meetings more engaging by making them voluntary. I find it pretty satisfying if one of my meetings finishes and no one leaves. The meeting has developed a life of it's own.

Tuesday, December 16, 2014

How To Make Email Better

1.

Don't open an email unless you are prepared to deal with it right away. If you only open email when you have time to respond, archive, delete, or turn emails into tasks.

2.

Create a filter that searches for "unsubscribe" and put those emails in a separate folder. That way your newsletters and/or deal alerts don't get mixed with your work email.

Wednesday, December 10, 2014

How To Have A Successful Off-Site

Off-site meetings are a great way to break free from the tunnel vision that can develop in the workplace. They can inspire your team to think big and in creative, new directions. Off-sites can resonate for years.

Before

Set realistic goals. The senior person at the off-site should determine what the off-site is meant to accomplish then create an agenda that guides everyone toward that goal. To ensure that everyone can make an intelligent contribution you must make sure that everyone attending has the relevant data ahead of time.

During

Set ground rules. Consider setting specific times where phones and laptops are not allowed. Any topics that are raised that take away from the off-site goal should be written down - "parked" for later discussion. If questions are asked of your attendees then make them open-ended questions to encourage more participation.

After

End with a plan of action. One way of doing this is to assign a champion to each action item that comes out of the off-site. The champion doesn't have to do the work but they are responsible for getting the right people started on it.

Monday, December 08, 2014

Four Points For a Better Team

  1. Promote The Team
    • Teamwork is powerful. Reward it. Also, make the effort to stop selfish and egocentric behavior.
  2. Get Visual
    • Everyone understands a good image. Instead of a paragraph that starts with tl;dr make a graphic that captures the point.
  3. Tell The Company Story
    • A company story enables deeper understanding than a vision statement. This understanding will help your employees focus on the company mission.
  4. Be Present
    • Get out and mingle with your employees and coworkers. Your team is watching you so strike up conversations and inspire unity and foster some goodwill.

Saturday, December 06, 2014

From Sensing An Opportunity To Implementing An Idea

That's when you know -- you can't sleep because you're thinking about this idea incessantly. -Mona Bijoor, Founder of Joor
The above quote was listed under the heading "On Sensing An Opportunity" in the November 2014 issue of Inc. magazine. I completely agree that always thinking about an idea is an indicator that you are sensing an opportunity. Great! You have sensed an opportunity now what should you do about it?

Write down your idea. It is time to stop just day-dreaming and get to work turning the idea into a reality. Writing down your idea will make it easier to improve, share, and implement. Before trying to improve, share, or implement your idea you need to start thinking about it with purpose.

What is needed to make the idea a reality? How much would it cost? Be sure to break down the costs. One grand sum may be useful for a bottom line but everyone who is serious about your idea will want the details. How will the idea either make money (business venture) or pay for itself (charitable effort)? What percentage of people really want this? Etc.

I can't list out all the questions because many will be specific to your idea. The point is that once you sense an opportunity it is time to stop thinking about how great the idea is and start thinking about how to get it implemented.

Saturday, May 17, 2014

Managing Technical Debt

Technical debt is all the shortcuts that save money or speed up progress today at the risk of costing money or slowing down progress in the future. It is inevitable, and can even be a good thing1 as long as it is managed properly, but this can be difficult. The difficultly comes from many causes, usually has hard-to-predict effects, and almost always involves a gamble about what will happen in the future. Managing technical debt is similar to risk management, and similar techniques can be applied. If technical debt is not managed then it will tend to build up over time until a crisis results. It can be the catalyst to system failure, or a multiplier of failures.

Technical debt can be viewed in multiple ways and can be caused by all levels of a company. It can be managed properly only with the understanding and assistance from all levels. It is extremely important to help nontechnical parties understand the costs that can arise from mismanaging that debt.
  1. Releasing code early to get feedback sooner rather than later can save a company from investing heavily in something that is not desired. Fast feedback helps development stay on track with the customer's desires.