Software Design Patterns

Today, I was fortunate enough to have had free time to attend a lecture on software design patters. These software patterns allow certain combination of classes and class relationships to create reusable, well, for lack of a better term, I’ll just say “patterns”. In the same way that fashion and carpentry have different design patterns for creating new clothing or furniture, these software patters are proven approaches to certain types of software problems.

It was a bit heavy for me at first, but I was trying to get the idea behind each pattern introduced. There were three categories, creational, structural and behavioral. The patters that were discussed were the ones that were frequently used in the industry. These were simple factory, prototype, singleton, decorator, strategy, adapter, template and composite.

I haven’t mastered these concepts in a day, but the point was for software developers to try to see solutions to software problems by thinking in terms of patters.

 

Survey Gizmo

Need a quick way to put up a website survey? Check out www.surveygizmo.com. This website offers several types of accounts. And since the best things in life are free, I’ve decided to avail of the free account. So far, I was able to come up with a decent survey and am satisfied with the results.

If I had this kind of tool when I was in school, then asking people to answer surveys should have been a breeze. Now, if only people would take time to answer surveys … that I guess is where the difficulty lies.

Give Survey Gizmo a shot, and tell me about your experience.

Checking Email

Remember to Check Email

A friend emailed this comic strip to me and I wonder if this is true for most work places. People rave about how technology has made lives better and more productive, yet at times it also becomes a burden and a monotonous pain.

Face-to-face contact is still, and should be, the preferred mode of communication. The exceptions would be project teams where stakeholders are spread out throughout the globe, or simply people you don’t want to face due to certain reasons. The comic strip is true in the sense that people often avoid confrontational or akward discussions and the email has become a haven for individuals who are not ready for these.

But to be sure that the message is clear, as much as possible, try to talk directly with the person. The message will come out clearer since the person makes use of more senses and visual cues when observing you while you deliver your message. That person will then have an idea if the message was a joke, or dead serious, was urgent or super urgent (aren’t all messages urgent hehehe), and if you were angry while you gave the message or simply wanted to stress the importance of the message. 

T.A.R. Sheets

One of the responsibilities of an employee in my current company is to fill out a task assignment reporting sheet. He or she simply indicates the amount of hours (can be broken up into quarters and halves) spent on a particular activity for that day.

But I am curious as to what percentage of employees are actually fulfilling this responsibility. They might reason that they are already doing a lot of work, and this is just added load, without any value to a project they are working on.

At first, this was also my initial reaction. But after doing it for several months, I believe it has helped me focus and prioritize on the tasks that I need to get done for that day. If new tasks arise or spring out of nowhere, I put them at the bottom of the queue unless they are really really important. The tasks I have set early in the day will always have top priority otherwise.

This activity has also helped me in estimating the actual hours spent by resources on a project. I now have a more accurate idea on how long a particular task will take compared to when I was starting out in the company. “Having some idea as basis is better than having no idea”

I also had a dilemma regarding the analysis of overutilized and underutilized resources. One resource can be assigned to only one project with gigantic scope while the other resource can be assigned to many projects of miniscule scope. But on paper, the one with many projects being handled might impulsively be seen as “the better man”. A coworker suggested that it might be best to observe the entries in both person’s T.A.R. sheets. If one was working beyond overtime and the tasks seem to support this need for extra hours, then that person might be an overutilized resource. The opposite would indicate a possible underutilized resource. If necessary, feedback from peers can verify if all these activities are a reflection of the effort being put by an employee on his or her projects.

This reminds me of an episode in Star Trek: The Next Generation. The crew of the Enterprise were able to find Mr. Scott, the chief engineer of Kirk’s Enterprise. Geordi and Scott were having a discussion. Scott asks La Forge something like “If the captain asks you how long a task would take, do you tell him the truth“, and La Forge says “Of course”. Scott then exclaims “How in the world will you ever be seen as a Miracle Worker!!?“. It’s too bad humanity has to reach the 24th century before employees work truthfully and efficiently =) The change can start in our generation if we are critical of the ideas passed on by the old.