Value Sharing – Calendar Analytics

Calendar Analytics Tool

Mining data in Outlook has always been something I have been interested in. One of my former colleagues pointed me to a just released tool based upon Excel, your Exchange Account, and PowerPivot. The Calendar Analytics Tool provides for very rich UI that can help analyze how your meeting time is being spent.

It will require you to start using the categories feature in Outlook, but it is worth it immediately.

You can download a copy today.

Calendar Analytics Tool Press Release

Calendar Analytics Tool Download

PowerPivot Download

Community Value Shares

Blog Of Note

Alvin Ashcraft’s Morning Dew

This is a great read every day. Alvin puts together high quality blog content links that are categorized, making for an incredibly easy way to start learning something new.

There is Fiction in the Space Between

Telling Stories

Debugging, reviewing, and diagnosing software defects or code is at best a daunting task.  Sometimes the simplest change to an environment, code file or build machine can cause hours or days of frustration. Software developers not only have to write code, but also need to be forensics experts.

Telling Stories

This post is inspired by the first line of this song by Tracy Chapman, “There is Fiction in the Space Between”.  We were fighting a build system configuration issue for several hours.  At the end of the day, it turned out there were parameter differences in “AnyCPU” and “Any CPU”.  What is interesting is that these parameters were generated by default for us initially from two different systems.

On top of this, the system was presenting some false positives to say that the build succeeded.  The head scratching moments were plenty.  Eventually, the problem was caught by a second pair of eyes looking at diagnostic level log files.

Don’t Read Between The Lines

While one could point out that anomalies happen in development and coding environments, the results are pretty predictable and repeatable.  I see many developers struggle with debugging, especially when they have “certified” it works on their machine.  If your program has detailed logs or diagnostics, use them.

Try to isolate the area where the call is failing.  Usually understanding the source code logging messages will be a big help.  One of the things that I would suggest doing is to add additional diagnostics to the code if you can, so the next person may have an easier time if an error arises.

Four Eyes are Really Better Than Two

Don’t bang your head against the desk for hours pouring over the same problem.  Bring in the second or even third set of eyes.  It is not only the eyes, but the insight other developers may have with the problem at hand.  Don’t be intimidated by the “Oh duh” moment that usually happens, we all have them.

Diff Tools Really Make a Difference

Comparing what changed is critical in software development.  I find an increasing number of developers have never used diff tools or don’t use them effectively.  Make sure it is in your toolbox.

Summary

Any developer who hasn’t worked on an issue where it has taken hours or days to fix probably hasn’t been in the software industry long.  This is one reason why estimates can get out of whack quickly and fixes are never as fast as people want them to be.

What is the hardest debugging scenario you ran into with the easiest fix?

ValueShare: Look at your options

imageConsider the tools that you use everyday.  Now, think about how proficient you are with those tools.  If you feel you have mastered your toolset, stop reading now, otherwise follow these tips to get you started:

Browse your options

Most programs have an options / preferences or both in the menu.  There are usually a few tweaks that you can make to enhance the experience with the program.  It may be setting custom document directories, making the font larger, or turning auto save off.

Read the manual

At the very least, peruse the Table of Contents and the Glossary or Index. Trials by error mode can be mitigated by just having an overall understanding on how the product works. Manuals can be dry or boring, but there are usually nuggets to help you on your way.

Know How To Access Help

Whether its the F1 key in Word or /? at the command line, don’t be afraid to use it.  My favorite thing to do with any new program is to find the shortcut keys associated with it.  Usually there is a section in help just for this.  Programs today are getting more sophisticated help also.  Videos are now common for showing how to do complex tasks.  Hands on Labs and walkthroughs are also becoming more prevalent in applications.

Find the Experts

For almost every program out there, you will find a group of “experts” willing to share their opinions.  Pick your program, search on Bing or Google, look for the sites that have tips and tricks. Personally, I add these to my RSS feeds and review any new tips that come out.

Experts just aren’t bloggers.  Find the “expert” in your team / office / company.  Look for experts on Social Networks, such as Twitter.

Teach the program

In my opinion, there is no better way to learn about the program.  Take a topic you are weak on and present it to others, write about it.  By sharing what you have learned, new levels of productivity will be achieved.

 

Summary

It is often an enlightening experience, finding the new feature, shortcut or way of using programs differently.  As a practical example, I looked at help for findstr at the command line.  What a plethora of information.  What ways do you use to become more productive.

When You Need a Break

I can only work on a specific problem for so long before getting mentally fatigued.  I get mental blocks that become hard to push through.  Here are some ways that I have gotten over the mental block challenge, maybe they will help you:

  1. Take a walk or exercise.  This can be a very refreshing way to replenish the energy store and give a clearer perspective on the problem.
  2. Talk with a colleague through the problem.  This sounding board method usually has me answering my own questions.  I have found that many times I couldn’t tell the person exactly what my block was.
  3. Solve a different problem.  Head on over to Project Euler (if you are a developer) and knock out a problem or two, solve a crossword or Sudoku puzzle.
  4. Sleep on it.  Don’t be surprised, if at 2am the answer comes to you.  At that point, I get up and am excited to work on the problem.

What techniques do you use break a mental block?

Quick Hit–Checklists and Code Reviews

I read The Best Kept Secrets of Peer Code Review (Free @  www.CodeReviewBook.com) almost 2 years ago.  It is a fabulous book for anyone wanting to improve the process of code reviews.  SmartBear Software does a fabulous job of backing up Code Reviews with statistical data.  This article 11 Proven Practices For Peer Review is no exception.

“Omissions are the hardest defects to find; after all, it’s hard to review something that’s not there. A checklist is the single best way to combat the problem, because it reminds the reviewer or author to take the time to look for something that might be missing.”

I have blogged about putting a checklist into place for code reviews just earlier this year, see Checking off on Code Reviews.  I just want to reemphasize the importance of these checklists.  I can’t sum it up any better than the quote from the article above.

Painless Code Analysis–The Map

I thought that I use the Simple Map Concept by J.D. Meier to help illustrate the basics of implementing code analysis.  It is amazing when you break down complex structures how easy the individual pieces are to understand.

 

Process Details
Governance
  • Policy In Writing
  • Global Rules Gatekeeper
  • Suppression Reviews
  • Add/Change/Remove Procedures
Development
  • Adding Additional Rules
  • Project / Solution Templating Support
  • Rule Suppression Training
  • Peer Mentorship of Rule existence
Implementation
  • Centralized Storage
  • CI Integration
  • Code Review Management
  • Linked vs. Global Suppressions
  • Documenting Exceptions vs. Rules
Measurement
  • Baselines
  • Build Breaks due to Code Analysis
  • Bug/Defect Reduction
  • Code Maintainability/Consistency
  • Management Reporting

What other areas can you think of in the breakdown of Code Analysis? 

Painless Code Analysis–Management Said So

Previous posts in this series:

Introduction

Your boss just finished reading a great series of posts on Code Analysis.  You have been asked to go implement it in your code base.  Do I need to go on here?  Well maybe just a little bit. Read more…

Follow

Get every new post delivered to your Inbox.