Posts anteriores: Los proyectos en el “getting things done”, ¿Y mi lista de tareas? Como la gestiono con el método “getting things done”, Como gestiono yo mi revisión diaria del inbox en el “getting things done”, Las siguientes acciones en el “getting things done”, Como escoger el inbox en el “getting things done”, El flujo de trabajo del método “getting things done”, Método “Getting Things Done, the art of stress-free productivity” para el control de tus tareas.

Ya os comenté en otro post que uno de los principales criterios que seguía para escoger que era lo siguiente que iba a hacer de mi lista de siguientes acciones era, además del contexto, el tiempo que tenía disponible. La verdad es que con la forma que yo gestionaba las tareas, el encontrar cual era la tarea que podía hacer en el tiempo disponible era algo tedioso, ya que muchos de mis contextos son inclusivos, quiero decir por ejemplo, que el !PC se puede realizar tanto en casa como en el trabajo, igual que el !Web… Esto hacía que cada vez me tuviera que recorrer una parte importante de la lista. Quizas el problema es que no tengo bien definidos los contextos, pero yo creo más bien que es un fallo del método.

Entonces pensé que lo mejor sería añadir en la tarea el tiempo que yo creía que se tardaría en realizar. Por suerte, las tareas de Outlook permiten añadir esta información. Y entonces con una vista ordenada por este tiempo sería muchísimo más eficiente. Dicho y hecho, ahora uso el campo “Trabajo total” que se encuentra en la sección de detalles de las tareas. Por supuesto solo añado esta información en las acciones que tengo claro que se pueden realizar en un tiempo reducido, como máximo 1 día laborable (8 horas), ya que no pretendo hacer un GANTT de proyecto ni nada por el estilo.

¿Y que pasa con la macro del post anterior? La he adaptado para añadir esta información. Ahora el formato de cada una de las acciones es el siguiente:

[acciones]
-Acción a realizar|Contexto,tiempo
[fin]

Los dos primeros campos funcionan como antes, y el tiempo nos indica la duración estimada de la tarea. El formato es un número seguido de las letras “m”, “h”, o “d”, que indican minutos, horas o días. Ya que estaba programando, he aprovechado para hacer que cuando se ejecute, además ponga a sus valores originales los campos de prioridad, fecha de inicio y fecha de final. Aquí tenéis la macro modificada:

Sub Sig_Accion()
On Error GoTo SigAccionError
Dim myOldTaskItem As Outlook.TaskItem
Set myOldTaskItem = Application.ActiveInspector.CurrentItem
myOldTaskItem.Save
cuerpo = myOldTaskItem.Body
If Len(cuerpo) > 0 Then
idx = InStr(1, LCase(Trim(cuerpo)), "[acciones]", 1)
If idx > 0 Then
i = idx
j = InStr(i, cuerpo, Chr(13) & Chr(10), 1)
i = j + 2
j = InStr(i, cuerpo, Chr(13) & Chr(10), 1)
Do While j > 0 And LCase(Trim(linea)) <> "[fin]"
linea = Mid(cuerpo, i, j - i)
If Left(linea, 1) = "-" Then
k = InStr(1, linea, "|", 1)
l = InStr(k, linea, ",", 1)
If l = 0 Then
l = Len(linea) + 1
End If
myOldTaskItem.Subject = Mid(linea, 2, k - 2)
myOldTaskItem.Categories = Mid(linea, k + 1, l - k - 1)
myOldTaskItem.TotalWork = NumeroHoras(Mid(linea, l + 1))
myOldTaskItem.Importance = olImportanceNormal
myOldTaskItem.StartDate = "01/01/4501"
myOldTaskItem.DueDate = "01/01/4501"
myOldTaskItem.Status = olTaskNotStarted
myOldTaskItem.Body = Mid(cuerpo, 1, i - 1) & "+" & Mid(linea, 2) & Mid(cuerpo, j + 1)
myOldTaskItem.Close olSave
Exit Do
End If
i = j + 2
j = InStr(i, cuerpo, Chr(13) & Chr(10), 1)
Loop
If j = 0 Or LCase(Trim(linea)) = "[fin]" Then
myOldTaskItem.Complete = True
myOldTaskItem.Close olSave
End If
Else
myOldTaskItem.Complete = True
myOldTaskItem.Close olSave
End If
End If
Exit Sub
SigAccionError:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") en procedure SigAccion"
End Sub

Function NumeroHoras(texto)
On Error GoTo NumeroHorasError
NumeroHoras = 0
If Len(texto) > 0 Then
unidad = Right(texto, 1)
valor = Left(texto, Len(texto) – 1)
Select Case unidad
Case “m”
NumeroHoras = valor
Case “h”
NumeroHoras = valor * 60
Case “d”
NumeroHoras = valor * 60 * 8
End Select
End If
Exit Function
NumeroHorasError:
MsgBox “Error ” & Err.Number & ” (” & Err.Description & “) en procedure NumeroHoras”
End Function

Si quereis el código SQL de la vista que me he creado en Outlook, aqui lo teneis:

("http://schemas.microsoft.com/mapi/proptag/0x10910040" IS NULL AND
(("http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/810f0040" is null and "http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81050040" <= 'hoy') or (("http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81050040" >= 'hoy' and
"http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81040040" <= 'hoy') or "http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81050040" IS NULL)) and
("http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81010003" = 0 OR "http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81010003" = 1 OR "http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81010003" = 3) and ("http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81110003" > 0 OR ("http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81110003" IS NULL)) and not("http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81110003" IS NULL))

Algo que voy a empezar a hacer a partir de ahora es marcarme algunas tareas, las que yo crea más importantes o urgentes, con importancia alta, para hacerlas las primeras cada día. No muchas tareas, una o dos como máximo. Sin fecha, solo prioridad alta, para que si no las puedo acabar en un día, al siguiente tengan mi atención. Ya os contaré como me funciona este cambio.

Anuncios