Monday, October 15, 2012

Headphones Help Productivity

It's pretty noisy in my office so I decided to wear headphones while I work. The noise is from:
  • People talking on the phone through their ear piece
  • People on speaker phone
  • People meeting next to me
  • One guy loves to drum on his desk and the floor
  • Co-workers talking in a foreign language
So I went with the Bose Noise Cancelling Headphones. Now this has definitely increased my productivity. First I don't get distracted by others conversations. Second, people don't interrupt me as much as the did before. For some reason when you wear headphones people won't interrupt you as much as they normally do.

The only down side to this is that it may be frowned upon by your boss.  I find that if I listen to music I'm familiar with it allows me to think without being distracted.

What do you think?


Monday, October 8, 2012

Detecting Sheet Change Event in #Excel

One feature I want to build in Time-Creator.com is to change anything in the spreadsheet if a sheet name changes.

I have many places that use the sheet name so I'd like to keep stuff consistent when this occurs.

Excel VBA doesn't have a sheet change event so I coded the following in the ThisWorkbook object:


Option Explicit

Public gsEntrySheetName As String

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ActiveSheet.Name <> gsEntrySheetName Then
    UpdateAllReferences gsEntrySheetName, ActiveSheet.Name ' if user says it's ok?
    gsEntrySheetName = ActiveSheet.Name
End If
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
gsEntrySheetName = ActiveSheet.Name
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If ActiveSheet.Name <> gsEntrySheetName Then
   
    UpdateAllReferences gsEntrySheetName, Sh.Name ' if user says it's ok?
    gsEntrySheetName = ActiveSheet.Name
End If

End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If Sh.Name <> gsEntrySheetName Then
    UpdateAllReferences gsEntrySheetName, Sh.Name ' if user says it's ok?
End If

End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If ActiveSheet.Name <> gsEntrySheetName Then

    UpdateAllReferences gsEntrySheetName, Sh.Name ' if user says it's ok?
   gsEntrySheetName = ActiveSheet.Name
End If

End Sub


Sub UpdateAllReferences(sOld, sNew)
MsgBox "Sheet " & sOld & " chged to " & sNew

End Sub

Now all you have to do is replace the code in UpdateAllReferences with whatever your code should do.

Saturday, October 6, 2012

How to Estimate with the Estimating Formula

If you want to estimate it helps having a formula.

Accurate estimating is a valuable skill. It's the answer to the question "How long will it take?"  If your boss, user or customer asks this question and you answer it incorrectly it could be a problem of
  • Working overtime
  • Not meeting expectations 
  • Not being trusted
  • Receiving a lower hourly rate for your work
If your boss asks for an estimate and you underestimate the work you may be working lots of overtime to meet your commitment. Had you had an accurate estimate you could tell him what that is and hopefully not work the overtime.

If you estimate time to build a website at 10 hours, $100/hour then you'll quote a price of $1,000. But what if your estimate is wrong and it takes 30 hours. It can be hard to charge the $3,000 you worked. Don't plan on getting repeat business. An accurate estimate would allow you to do better to come in on time with the site.

The formula for accurate estimating can be answered with the question of when will you finish this 300 page book? I use the book example, because once you understand it, estimate other things will be a matter of collecting the proper information and applying the formula.

Now if you read a page a minute it will take you 300 minutes or 5 hours (300/60) to complete the book. This is the actual time to read the book but not the elapsed time. If you read an hour a day it will take you 5 days to complete it. If you read 1/2 a day then 10 days to complete it. 

This brings us to the formula 

Estimated Completion Date = 

                                                                  pages to read 
        Today's Date  +       ---------------------------------------------------
                                       Pages per min  x  Time reading each day in minutes


So this is the basics of the Estimating Formula.  This formula will soon be implemented in Time-Creator.com, but it does help you with the variables of Pages/minute and Time reading each day.

You can download as spreadsheet to see this calculation in action.

If want job security, more customers, better employment reviews it does start with simple accurate estimating.

Random is Good or God

I was way into random before the iPod shuffle came along. Years back on my Atari 800 XL I built a program called Random Album Selection. This was a time before the CD or MP3 existed and everything was on vinyl.

Using Atari Basic, I wrote a program that allowed me to enter my albums and it would randomly select an album and side to play. I realized the benefit from this as I realized that Random is Good.

I would buy new albums and play them over and over again until it would sit with my other records never to listened to again. But after developing the program, I would be listening to albums that I wouldn't normally listen to and enjoying it very much. There was something to this random stuff.

Flash forward years later and I'm working on a version of Time-Creator.com. I start to think that if random is good for albums it's probably good for selecting what I should do. If you're in the habit of doing certain things and those things aren't getting you to where you want to be then Random Task Selection might be better than you selecting what to do.

I've built this feature into Time-Creator. You can filter on your "A" or top priority tasks and randomly select one to do. Now like the iPod shuffle, random task selection is good.  Matter a fact I like to think of it as asking God what to do. So Random is Good and Random is God.

You can download the latest version of Time-creator at my website.  Note it's an early alpha version a little buggy but very useful. You do need Excel 2007 or 2010 right now to use it.

Tuesday, October 2, 2012

Rock Climbing and Software Development

The other day I was working on a very complex project at work and had very tight deadlines. It was a bit overwhelming.  I started to think that software development is a little like rock climbing.

When you go rock climbing, you start up the rock pulling yourself up the mountain using your hands and feet. But as you move up you reach a point where you need to grab a rock to keep moving up but none appears to be available.

This is your first hurdle. This happens in software development when you get stuck on a problem with no apparent solution. When you're on the rock it can get scary. But if you don't panic and keep looking you'll find a place to put your foot or grab with your hand to continue up the mountain.

So with software development, stay with the problem keep looking. If you do you'll continue to make progress just like rock climbing.

Sunday, September 30, 2012

The Benefits of Time Tracking

Time tracking is usually a dreaded task by the people who need to do it. Lawyers, accountants, software developers, professionals need to know what they spent their time on.

The reason it's disliked is that it's difficult to do until Time-Creator came along.

There are some subtle advantages to tracking your time:
  • You can identify time wasters
  • You can make better estimates if you know how long similar tasks take
  • A program can check if you're doing the right tasks to help you achieve your goals
  • You can better balance your time by knowing that you're spending too much if it on one project
  • You can be warned if you're taking too long on a task
Now time tracking isn't that easy but Time-Creator has the following features to help you effortlessly track your time:
  • Auto-tracking.- Track based on the Window you are using or Excel sheet you;re on
  • Track from a button press - Track time based on pressing a button that performs a task (Button Bar)
  • Track from an alarm - Track your time when an alarm pops up
  • Track from your to do list - If the task is in your to do list or on any cell just press ctrl+T and you're tracking it.
  • Time Adjustments
These are just a few of the benefits. Try the software at http://Time-Creator.com to see how time tracking can help you.

Should I build an Excel 2000/2003 version?

As I build Time-Creator, I'm wondering if I should make the software work on Excel 2000/2003. The first requirement is that you need a copy of the software and I have one on an old laptop.

The second is will there be enough customers that use this version to make it worthwhile?  I've started on making my program compatible but then realized it's taking away from my main focus.  I could always come back to it.

As I'm working on it I'm finding a number of compatibility issues with the VBA code I'm writing using Excel 2010.  The biggest ones are:

  •  Ribbon isn't available in the previous versions
  • Callbacks don't work 
  • Sort command issues
  • New bugs introduced by changing code to support Excel 2000
I've met my first goal to get out a version of Time-Creator that user's can download. My second goal is a bug free version and third is a version that's easier to use.  The Excel 2000/2003 version will have to wait unless I hear back from lots of users who want it.

Though, it's very tempting as I've spent around 5 hours already on this I may try to get out a version.

What version of Excel do you use? Should I build an Excel 2000 compatible version