Thursday, March 29, 2012

Is Your Project Schedule Slipping? - Practical Tips on How to Control It

"Ironically, the only true constant in this universe is change" – Juan Trejo

Things will never go exactly as planned, and the best time to make an accurate estimate on a work schedule is by the project’s end.

I want to share some basic, practical tips and considerations on how to handle schedule slippage. These tips should be particularly useful if you don't currently use a proven methodology or have a mature process in place for your project development. I strongly suggest you consider learning about Agile Methodology and read through the PMBOK's "Planning" and "Monitoring and Controlling" process areas.

- No matter how much time you assign for a task, people will always take as much as you give them to complete it.

If a task can be done within an hour, and you give people 4 hours for it, they’ll take 4 hours. And if something goes wrong, they’ll take 5 or 6. So keep that time flexibility outside of people’s roster when assigning them tasks. Keep that extra time for the overall project plan instead, and give people that flexibility if required; i.e. if a task can fairly be completed within 2 hours you can plan for 3, but give people 2 hours to complete it, and grant them that extra hour only if required.

- Know your critical path.

A critical path is the set of chained tasks in a project plan that take the most time to complete. Any other tasks that are not part of the critical path can be extended if required, as long as they don’t risk to become the new critical path.

The longest time you can take to complete a milestone will be the time of the critical path, and at any given time, a new critical path can come up.

So monitor your critical path, as that will be your priority to keep on track; that’s the one that can make your schedule slip.

Also, knowing your critical path helps you prioritize your tasks: sometimes we closely tackle on completing tasks that have no effect on our schedule and leave behing the ones that do affect us.

Criticality of tasks should be objective, based on the effect it’d have on the project progress rather than subjective, where we give importance based solely on our perceptions.

- Create milestones, and place tight dates for them.

Schedule does not slip at once, it’s the result of a snowball effect in which small delays on early stages cause bigger delays later. We should have control points in which we can stop fairly big "snowballs" in order to avoid them becoming bigger and harder to control.

A milestone is a mid-term goal in the middle of the whole project. Some of them are clearly defined by the project’s lifecycle, i.e. Analysis, Design, Execution and so forth, but we can tailor our milestones according to the nature of the project itself. We should aim to keep close to the deadlines of each milestone rather than shortening the next one by stealing time from it. It is very common that people are very relaxed at the early stages of a project and very stressed at the end. By setting closer deadlines through milestones you set people’s sense of urgency in the right place; it’s better to be fairly busy during the project and maybe work an extra hour or two a week rather than working 12+ hrs a day for 1 month by the end of the project. Snowball effect is exponential.

- 9 women can’t make a baby in 1 month: don’t abuse on extra hours to get things done.

There’s a breaking point in which the amount of defects people inject to a project significantly increases when they work more than 8 hrs a day, meaning having people consistently working that extra time is counterproductive, as they will just inject more defects, hence requiring more time to complete a task and so forth.

No wonder why so many managers ask for exceptions to get final approval for a project. When they burn-out people to get it done project would certainly be very defective.

- Consider splitting tasks that take more than 16 hrs / 2 days to complete.

Tasks that take a whole week or more than 2 days seem more like milestones than actual tasks: they’re good for high-level tracking but not for project progress tracking and task assignment.

If your tasks take more than 16 hrs or 2 days to complete they’re most likely not detailed nor clear enough to execute. For example, let’s say I plan for 5 days, 2 FTE’s (80 hrs) of database design. I may consider modularizing that design as in: 2 days / 32 hours to get the admin module DB design, 2 days / 32 hrs for the products module, 1 day / 16 hrs for the catalogs.

Planning tasks on a more detailed level helps you spot activities that can run in parallel. In the above example, maybe the first two designs can be done in parallel (1 resource to each module), hence taking 3 days instead of 5 to complete the DB design.

Also, by keeping tasks within 16 hrs / 2 days, you get a closer tracking on progress and providing people with constant short-term goals to keep them focused and busy. This also builds momentum into getting things done.

People tend to get distracted during the day and some constantly leave late, not because they have a lot of work, but because they didn’t get organized for it (they have a week to finish it, so where’s the hurry?). When people know they have a goal due by the next day, they will get the most out of their time.

It’s psychology, you help people get disciplined to arrive and leave at their proper hours, hence improving their life quality. Keep the goals short-term.

- Use absolute, measurable values to track progress.

Percentages are way too relative and provide a subjective, unrealistic insight on the project’s progress. They tend to be more of a hunch feeling rather than an actual picture of how the project is going.

Have you ever seen projects reach 95% progress and then take forever to complete? It’s ridiculous and unfortunate.

The best measure of tasks progress is hours (not time/date).

Get used to estimate based on hours, not dates. If a task takes 10 hours, go with 10 hours, not 2 days.

When tracking progress don’t ask what % of progress people have, ask how many hours they have dedicated to it, and how many hours they estimate to complete it. This build actual commitment in completing tangible goals.

Doing this also helps you build very useful metrics that can help you better plan on next project, and be able to forecast the project and spot any schedule slippage risk earlier.

So we’ll have:
– Estimated/planned hours.
– Actual work hours.
– Estimated remaining hours.

Maybe we planned for 16-hr task, and the progress is 14 hrs. Then I won’t ask how many days or just plainly how much more it will take. I will ask: how many hours do you estimate you need to complete it? Again this makes people get into an objective mindset, and sets a tangible goal for them.

Maybe later you can say you estimated 80 hours to complete the design phase, and it actually took 100. That’s a 25% increase vs estimate. You can use that as a reference when estimating a similar project in the future.

Similarly, let’s say you planned for 80 hrs, 2 FTE’s to complete the Design milestone. Progress is now at 70 hours and team estimates 20 more to complete. You know in advance project has slipped by 10 hrs, possibly 1 day, and you can plan to get back in track just that early.

Also, when reporting progress, people would have an objective feeling on where we stand, and that would help better address any risk and get timely support to get back on track.

I hope these tips have been useful. What do you think about these tips? Do you have any to share? Comment! :)

Friday, October 8, 2010

How to Make a JTextPane / StyledDocument TRULY Transparent

It's been a long time since my last update; I wanted to share with you a solution that took me weeks to get:

Q: How can I make a Java Swing JTextPane component (including text background) transparent?

A: textPane.setBackground(new Color(255, 255, 255, 0)) ; <- Set a background Color with a 0 alpha value (a 100% transparent color).

In my case, using textPane.setOpaque(false) didn't work, and I tried EVERYTHING trying to understand why, and get around it. I blamed the StyledDocument believing the text or paragraph included a background color, I blamed the component layers and their blending, I browsed over a lot of forums and pages; no one gave me a working solution.

I tried overriding paintComponent and setting an Icon property for the text but both draw the image above the text.

I hope this is useful for people who, just like me, can't understand WHY IN THE WORLD the setOpaque method does not always work on a JTextPane with a styled text. I still don't know why.

If someone out there is as wise as to have the answer, it would be nice to know, for know there's the solution to make it work. ;-)

See you later!

Wednesday, September 15, 2010

Credo Mexican (Mexican Creed)

by Ricardo López Mendez

Just as the last year, I post this from 1940 that I think still reflects the essence and feelings of our Mexican culture. It makes me cry sometimes.

The essence of it is the patriotism expressed as FAITH; México, CREO EN TÍ (Mexico, I BELIEVE - IN YOU -):

¡QUE VIVA MÉXICO, CABRONEEES!

México, creo en ti,
como en el vértice de un juramento.
Tú hueles a tragedia, tierra mía,
y sin embargo ríes demasiado,
acaso porque sabes que la risa
es la envoltura de un dolor callado.

México, creo en ti,
sin que te represente en una forma
porque te llevo dentro, sin que sepa
lo que tú eres en mí; pero presiento
que mucho te pareces a mi alma,
que sé que existe, pero no la veo.

México, creo en ti,
en el vuelo sutil de tus canciones
que nacen porque sí, en la plegaria
que yo aprendí para llamarte Patria:
algo que es mío en mí como tu sombra,
que se tiende con vida sobre el mapa.

México, creo en ti,
en forma tal que tienes de mi amada
la promesa y el beso que son míos,
sin que sepa por qué se me entregaron:
no sé si por ser bueno o por ser malo
o porque del perdón nazca el milagro.

México, creo en ti
sin preocuparme el oro de tu entraña:
es bastante la vida de tu barro
que refresca lo claro de las aguas
en el jarro que llora por los poros
la opresión de la carne de tu raza.

México, creo en ti,
porque creyendo te me vuelves ansia
y castidad y celo y esperanza.
Si yo conozco el cielo, es por tu cielo,
si conozco el dolor, es por tus lágrimas
que están en mí aprendiendo a ser lloradas.

México, creo en ti,
en tus cosechas de milagrerías
que sólo son deseo en las palabras.
Te consagras de auroras que te cantan
¡y todo el bosque se te vuelve carne!,
¡y todo el hombre se te vuelve selva!

México, creo en ti,
porque nací de ti, como la flama
es compendio del fuego y de la brasa;
porque me puse a meditar que existes
en el sueño y materia que me forman
y en el delirio de escalar montañas.

México, creo en ti,
porque escribes tu nombre con la equis,
que algo tiene de cruz y de calvario;
porque el águila brava de tu escudo
se divierte jugando a los volados
con la vida y, a veces, con la muerte.

México, creo en ti,
como creo en los clavos que te sangran,
en las espinas que hay en tu corona,
y en el mar que te aprieta la cintura
para que tomes en la forma humana
hechura de sirena en las espumas.

México, creo en ti,
porque si no creyera que eres mío
el propio corazón me lo gritara
y te arrebataría con mis brazos
a todo intento de volverte ajeno
sintiendo que a mí mismo me salvava.

México, creo en ti,
porque eres el alto de mi marcha
y el punto de partida de mi impulso.
¡Mi credo, Patria, tiene que ser tuyo,
como la voz que salva y como el ancla...!

Wednesday, January 13, 2010

We Have To Improve Communication - Part II

So last time I talked about the use of the "I" pronoun instead of "one" or "they" when talking about opinions or feelings. It seems simple but is deeply rooted in the notion of taking ownership of my own feelings and thoughts.

It is hard to get used to it because it implies a deep transformation within myself: I am no longer justifying my actions in advance by deflecting my responsibilities on others.

But most importantly, it implies I acknowledge my own thoughts and feelings are as valid as others', and they can disagree with me; I'm starting to LISTEN. Because when I acknowledge my own feelings and thoughts are not the rest of the world's, I automatically open myself to different ideas.

Now let's talk about something that may sound rather trivial at first:

How to ask for things.

"Aaw come on, Juan! Are you saying I don't know how to ask for things? That's intuitive!"

Let's make a very simple exercise: take a piece of paper and something to write with. (a pen, pencil, etc...)

Ready?

Ok, now write down on that piece of paper how would you ask for someone to pick you up in the morning to drive you to the airport.

Now keep that piece of paper for later.

I as said on my previous post, communication has an structure, and that structure has a purpose.

The structure of a request.

A request has to contain the following:

- What needs to be done.
- What need will it satisfy? / Why should it be done? (objective, purpose of the request)
- How should it be done. (acceptance criteria)
- When should it be done. (timeline, deadline)

Now let's see: How would I write a request for John to pick me up in order to drive me to the airport?

"Hi John, could you please pick me up tomorrow at 7 am at my home and drive me to the Monterrey International Airport? I need to be there at 8 am as I have to take the 10 am flight to NYC, and am advised to be 2 hours in advance. I have an important meeting with a potential client at 14:00 hrs EST and can't miss it.

I will be waiting for you outside, please ring my cell if I'm not there: 555-555-5555

Thank you!"

A rather large e-mail for a simple request don't you think so? Well, let's see some common scenarios:

- "Hi John, please pick me up tomorrow morning at home. I need you to drive me to the airport. I have to be there at 8 am."

The next day John arrived to my home... at 7:15 am, as he thought that was a good time. John didn't know traffic from home is jammed at that time. I arrived at 8:30 am and was not admitted to the flight. I had to cancel the meeting as I couldn't reschedule it.

Is it John's fault? No! I missed the when it should be done, and why it should be done parts. If John knew how important this meeting was, maybe even if I didn't indicate the time for him to pick me up, he'd certainly have arrived the earliest.

- "Hi John, please pick me up tomorrow morning at 7 am. I have to take a flight at 8 am and can't miss it".

John arrived sharp... to the office! And he had no way to call me. I waited for John until 7:20 and had to take a cab. I arrived late.

Is it John's fault? No! I didn't tell him to pick me up at home, nor I gave him any contact number in case of emergency.

- "Hi John, tommorrow 7 am at home. You'll drive me to the airport."

"Clear enough" John thought. And he went into a party with some friends. "How important can it be? I do this almost every week." He arrived hungover at 7:10 am. He was driving so fast we crashed. I took a cab but I missed the flight.

Is it John's fault? Well, I didn't tell him to get drunk, but I certainly didn't tell him how important this meeting was. Had he known, he might not have gone to that party. I missed the why it should be done part.

The ideal scenario.

Enough tragedy, let's see what happened after I asked John properly:

John left his home at 6:00 to go pick me up, but he had a car accident at 6:45 am. He called my cellphone and I asked for a taxi cab. I called my office admin and told her about the situation to see what she could do. I informed my colleagues at NYC about the risk of me not arriving on time or not arriving at all.

Taxi arrived at 7:10 am and I roughly made it to the flight at 8:15 am, where the airline had been notified of my delay and security inspectors were waiting for me. I made it! I informed my colleagues and called John to see how he was doing: he was alright.

The importance of properly asking for things.

We have to remember we take decisions based on the information we have. Providing the proper information to people is then crucial if I want to rely on others to achieve a goal; it's not just about them doing it right, it's about me asking it right.

I bet you can think of several examples now, I bet you're thinking in your head about how you ask for things, and how not having asked them properly affected the results. This applies to both our professional and personal lives.

When I went through this course, at this point I realized why people kept failing me: I was asking others to fix in themselves something I had to fix in myself!

If after requesting things properly people still don't comply, well, that's another story. I accomplished my responsibility of making a proper request.

So now go back to the piece of paper where you wrote a request as an exercise. Take a deeper look at it.

Is it really that easy to ask for things? Is it really that trivial?

Hope this helps you somehow. I'd like to read your thoughts at the comments section.

Regards!

Tuesday, January 12, 2010

It May be Happening to You

What is happenning to me? All is right in my life: I have a great job which I like a lot, my family and friends are ok, my sentimental life is ok, my health is ok.

Why is it I don't feel enthusiastic like before? I am not full of energy like before, I get headaches, bad mood. I'm not able to focus and I get sleepy too soon over the day.

Coffee doesn't work anymore and my attitude is turning all negative.

Why is it I know I have to change my attitude, and I try to do something about it, but I can't? It's frustrating!

I have been to a psychologist before, back when I was overloaded with work, with stress, but I am over it now. This new job has it's challenges, but it's not stressing at all.

I'm not depressed; my doctor said it. Nor I have any health problems.

Exercise! Yes that's the solution, I used to be very active and healthy. I wake up in all disposition to exercise, but my mid-day I loose all energy. I tried it for the first week, but it just got me more tired.

It's a vicious circle! Have I been cursed?

Then I heard comments from the friends I camped with last weekend. Hey man! You snore out loud!

I know, I snore, but only when I lay upside, I replied. Well, not anymore, and it seems it's becoming louder and louder according to my family.

Ok, let's read about it: snoring. A very common thing it seems, and it can be due to physical and fisiological reasons: air can be blocked on the nose, at the throat, it can be due to overweight, drinking...

Then I further read: sleep apnea. Sleep apnea is caused when air is completely blocked during sleep, and heart receives less oxygen. It usually causes a sense of asfixya that wakes up the person in order to breathe harder.

Result: no deep sleep, no real rest, possible cardiac attack, very low quality of life. Wow! May that be it?

I keep reading: this lack of rest causes sleepiness during the day, headaches, tiredness, lack of concentration, bad mood. Bingo!

I never thought something like this can cause so many problems. So many people out there snore, and they joke about it, and they learn to get along with it; their partners and family learn to get along with it.

Most of them suffer sleep apnea, and they don't know about it; they don't realize the health problems it implies.

People get divorced for it! People loose jobs because of it! People relationships get detrimented by it!

It is a serious problem. So I've decided to start doing something about it.

Interestingly, health insurance plans don't cover it: none of the hospitals and clinics and doctors I called are affiliated to any insurance company.

And everyone sells their own miraclous technique: a device with a mask you need to connect every night to your face, the newest laser treatment... it's like a joke, like they're merchandising with such an important disease.

And companies, well, they won't assess how much this tampers their people performance, their productivity. I have just been off my first performance review on December, and results were mediocre for myself. I had no way to explain and no will to excuse myself, I don't like excuses.

Now I know it's a health problem, a health problem few people know about. It changes your mood, your energy, your creativity, your intelligence.

You don't believe me? Try not sleeping for two days. Now imagine not sleeping for months. That's how serious it is. You can have an accident because of it.

It's a dissappointment it is not regarded the importance it should; or maybe it is such a sadly common problem, it will be costly cover it.

Anyway, I made my first trial: I bought myself nasal strips, they're know as "Breathe Right" in US, "Anti-Ronc" in Mexico. These strips attach to your nose and open up more space for air to come in, immediately relieving nasal congestion.

It might work or not, remember snoring has very different causes and so does sleep apnea.

I have been using it for 3 days. So far so good. Let's see what happens after this week; I don't think recovering for years of bad sleep happens in a day. I feel better with time, I feel rested.

Hopefully my problem is nasal. And it makes sense: I broke my nose when I was 5 years, maybe it's time to have a surgery, if I can assess this is the cause of my sleep apnea.

I hope this experience is helpful for anyone out there: beware of snoring, it seriously affects your life quality.

And any company CEO or insurance company boss out there: assess the seriousness of the problem, it is already costing you a lot.

Monday, October 12, 2009

"We Have to Improve Communication" - Part I

Have you ever heard that phrase, upon a team review, a company review, a post-mortem meeting, etc...? I bet you have; When looking at the root cause of a problem or series of problems, (ok areas of opportunity or deltas if you prefer) this phrase features inevitably.

And then a question automatically pops out of my mind. Ok, so "We Have to Improve Communication". But HOW?

I don't have an idea of how. Why? Because I learned to communicate by intuition, by day-to-day social interaction. So for me this is so obvious I did never mind looking deeper at what communication means, nor that it has a structure, and that rules have to be established and shared in order to make it work. I didn't realize that words or letters by themselves mean nothing, that COMMUNICATION = ACTION; the way I communicate is the way things will be executed.

It has a direct effect on the results. Yes, I'm talking about verbal communication.

Even when they say verbal communication weights as little as 7% on delivering a message, the "what we say", knowing how to structure it, becomes the most important part of the "how we say it", the other 93% that goes along with the body language, voice tone, rhythm, tonality, etc...

Bear in mind nowadays in business, technology had made us more practical, more impersonal, and most of our communication occurs first through e-mail or documentation, then by phone, and at last by personal contact.

I didn't realize either that knowing HOW TO COMMUNICATE is the most powerful weapon I have to make things happen, and it provides added value to any team I work along with.

Effective communication is the cornerstone of any task, any project, any human interaction. It is the main driver to success, and to make my way along to get what I want.

I have to thank Softtek for helping me realize it, particularly Emilio Rojas, may he rest in peace, for his valuable two days course "Communication for Action". This is a course in which I learned so much, and it was just so simple.

And also have to thank Infosys for providing me the Business Writing Skills course.

I feel that knowing how to communicate is a MUST for any leader, manager, director to be efficient, yet I don't see many of them applying this knowledge. Why? Because learning how to communicate seems to be a waste of time, and even an offense: I already know how to ask for things, how to praise, how to reprehend, how to inaugurate, how to close, how to feedback, how to express my thoughts...

Give it a second thought. Let me give you a sample of how I realized I didn't know how to communicate effectively. The first thing I learned on Emilio's course was the most important, ask yourself:

Do I take ownership of my thoughts? Do I take responsibility of what I say?

At the course there was this little, inflatable plastic smiley called "One". You may also call it "We" sometimes. Emilio established the rules of the course and said: "I introduce you to One, an inert being made out of plastic and air".

Ok, yeah, so?

Let me ask you my reader your opinion about anything, let's say: Have you ever been so stressed out you treat people so badly that you later regret? Why did you do it?

Think of an answer before continuing, as if I was in front of you.

...

Ready?

Ok now think: How many times did you use the "One" or "We" pronouns? Like in: "Well, you know sometimes One is just so filled up with such pressure One lets it go inadvertently." or "Well, I mean we may be under so much stress sometimes and don't think about what we do, but people understand we are just under stress".

Well, if you said "One", let me introduce you to him: it is an inert being made out of plastic and air. And I don't think One has an opinion, do you?

If you said "We", let me ask you, what do you mean by "We"? Because if you ask me, I may disagree. And maybe someone in Asia won't either. Or any other reader of this post.

It was so annoying to be constantly interrupted by Emilio during the course whenever I said "One", or "We" or "Them". But it made me realize how badly I was used to not taking ownership nor responsibility on my thoughts.

Using "One" as a pronoun may seem not a big deal, but try it. It was so hard for me. If this was not a big deal, why was it so hard for me to avoid being indirect when expressing my thoughts an opinions?

This is deep, this is profound. I see it coming from a rooted thought or assumption that the world as I see it, is the world everyone else sees. That what I think must be what everyone else thinks.

This is automatically blocking my disposition to LISTEN, and puts me as a Proposer, never a Listener.

How can I achieve understanding, or get to an agreement, if I can't even take ownership of my thoughts, hence I am predisposed to reject a different opinion? I'm closed to diversity!

I will be posting about communication, about what I've learned. Next post will be about how to ask for things.

On the meantime, try avoiding "One", see how it works for you.

Tuesday, September 15, 2009

Credo Mexicano (Mexican Creed)

by Ricardo López Mendez

This poem from 1940 still reflects the essence and feelings of our Mexican culture and feeling. It's too deep and I share it with you. I'll try to translate on a later time, for now, let's enjoy the holidays. =) ¡QUE VIVA MÉXICO, CABRONEEES!

México, creo en ti,
como en el vértice de un juramento.
Tú hueles a tragedia, tierra mía,
y sin embargo ríes demasiado,
acaso porque sabes que la risa
es la envoltura de un dolor callado.

México, creo en ti,
sin que te represente en una forma
porque te llevo dentro, sin que sepa
lo que tú eres en mí; pero presiento
que mucho te pareces a mi alma,
que sé que existe, pero no la veo.

México, creo en ti,
en el vuelo sutil de tus canciones
que nacen porque sí, en la plegaria
que yo aprendí para llamarte Patria:
algo que es mío en mí como tu sombra,
que se tiende con vida sobre el mapa.

México, creo en ti,
en forma tal que tienes de mi amada
la promesa y el beso que son míos,
sin que sepa por qué se me entregaron:
no sé si por ser bueno o por ser malo
o porque del perdón nazca el milagro.

México, creo en ti
sin preocuparme el oro de tu entraña:
es bastante la vida de tu barro
que refresca lo claro de las aguas
en el jarro que llora por los poros
la opresión de la carne de tu raza.

México, creo en ti,
porque creyendo te me vuelves ansia
y castidad y celo y esperanza.
Si yo conozco el cielo, es por tu cielo,
si conozco el dolor, es por tus lágrimas
que están en mí aprendiendo a ser lloradas.

México, creo en ti,
en tus cosechas de milagrerías
que sólo son deseo en las palabras.
Te consagras de auroras que te cantan
¡y todo el bosque se te vuelve carne!,
¡y todo el hombre se te vuelve selva!

México, creo en ti,
porque nací de ti, como la flama
es compendio del fuego y de la brasa;
porque me puse a meditar que existes
en el sueño y materia que me forman
y en el delirio de escalar montañas.

México, creo en ti,
porque escribes tu nombre con la equis,
que algo tiene de cruz y de calvario;
porque el águila brava de tu escudo
se divierte jugando a los volados
con la vida y, a veces, con la muerte.

México, creo en ti,
como creo en los clavos que te sangran,
en las espinas que hay en tu corona,
y en el mar que te aprieta la cintura
para que tomes en la forma humana
hechura de sirena en las espumas.

México, creo en ti,
porque si no creyera que eres mío
el propio corazón me lo gritara
y te arrebataría con mis brazos
a todo intento de volverte ajeno
sintiendo que a mí mismo me salvava.

México, creo en ti,
porque eres el alto de mi marcha
y el punto de partida de mi impulso.
¡Mi creo, Patria, tiene que ser tuyo,
como la voz que salva y como el ancla...!