Of housemate and cats

Categories: rants



I was told by my housemate (a friend of a friend), the cats or him, if I want to keep my cats, he’d leave. He says he can’t stand the cat’s shit in the bathroom, the stench was unbearable that he felt like puking. Without even blinking, I said, “when are you leaving?”. BURN!

First of all, he stays in his room all day long. In a month, he only talks to me once, when he’s paying the rent, “Here’s this month rent”. Cats 1, Him 0. He’s also one of the laziest person I’ve ever met. When I was away, living in other places for a few months temporarily, I often come back and check how stuffs are going. I was shocked to see my room is used as a store, he leaves this huge bundles of DVD in plastic bags in my room. The sink was clogged, the toilet was disgusting. The trash was not thrown. Total nightmare. I have to post a note to the door to inform him to keep the house clean. Every time I came back I have to throw out trash. Cats 2, Him 0.

When I moved back in. I clean up the house, incrementally (or in agile terms, ITERATIONS), doing it all at once would’ve taken a huge toll on my back. I tore apart the sink’s trap and let it be. NO ONE USES THE FUCKING SINK UNTIL IT IS CLEANED! 3 Months have passed, no one cleans it up. There is no sense of guilt or responsibility whatever inside him. As long as his room is habitable, he is fine. The sink is dried up, with layers of disgusting crust of dirt. Cats 3, Him 0.

I didn’t complain about all his blunders to him. Oh, did I mentioned everytime I come to check on the house, I’d have to mop the floor. There were footprints leading from the bathroom and there were no slippers. I’d have to buy slippers for everyone to use. So when he starts to complain about my cats, I just thought, “Heh, how dare you brought this up, when I haven’t mentioned all the shit that I have to clean up because of you”. There are many more, but I let it slide.

Oh, before he brought the thing about the cat, he told me that he doesn’t want to leave before telling me this (he thought it was some kind of responsible thing to do, heh). Which means he had thought about it (leaving without telling me). This is a reminder for me, I have to take deposits for any new housemates, to lighten the burden in case anyone wants to leave stealthily.

So, it would be quite tight for this month on my budget to pay for the house all on my own.

February’s 2009 Cloud

Categories: blog

Development tips!
February 2009 Cloud

Managing Programmers

Categories: Troubleshoot, blog

I think How to Manage Geeks falls in the category of Job Relationship in the TWI (Training Within Industry) program.

Here’s what I would like to emphasize.
Recognize the outcomes of not treating geeks with respect.

Low Motivation ☑ CHECKED!
High Employee Turnover ☑ CHECKED!
Nowadays, good developers tend to contact other developers in the company before they join the company and what happens when there’s nothing good to hear about the company? They look elsewhere. High turnover but nobody to replace the vacancies will have a big impact on existing employees. They feel like they’re underpaid, while the foreigners and ‘consultants’ get paid alot.
Increased absenteeism ☑ CHECKED!
I too don’t feel like going to work but I can’t stand being bored at home.
Lower productivity☑ CHECKED!
I don’t know about this, but it seems the productivity is becoming low. Everyone do not want to give an extra effort at work.
Lower Quality
Currently the quality is quite high (thanks to DDD?). Everyone have pride in their work. I have a theory, when all the good programmers have left and the CTO doesn’t recognize good programmer. The newly hired will be so confused of the current system and when its time to fix a bug, they’d probably vote for a rewrite and everything will go down the drain.
Bad Service
Good service. Change requests are entertained.

The current situation is very dim.

Numbers are nice, interesting and important and can be used to run a company but we shouldn’t use it to run our people. When it comes to people things that matter are skill, pride, appreciation, confidence and cooperation.

A Leader is needed to brave the storm

Categories: rants

What we need right now is a leader. The one who can inspire us. The one who can motivate us. The one who can give us a vision, to push us forward, to say that everything is alright (in a very convincing manner), to keep us preoccupied to go through this storm. This is a very hard task. The boss have to be very perceptive to what their employees are doing, read their body language, anticipate the surrounding, is it gloomy or is it rainbows and sunshine? The boss can’t just simply say, “Just keep on working, won’t effect us” because it will, whether they like it or not.

It is like a bar (like health bar), but for morale. Every time you hear something, you must expect that the morale bar of your employees will decrease and every time it decreases, the boss have to be there and raise it up again. It is a continuous process and a tedious one. Ignoring it will be very costly. When the bar have gone red, usually it is a point of no return, NOTHING the boss can do to cheer their employees up. By the time the boss realize it, there’s an envelope with a letter inside that reads, “.. I hereby resign my position as .. “.

When an employee resigns, it usually resonates through the team. Maybe some can ignore it, but most can’t. They will start to see it as the best option for them, they start to see that the grass is greener on the other side of the fence. Good developers will start looking for other prospects and will soon leave.

An aura of negativity, an employee who leaves which leads to a big chain reaction and soon others would follow.

I hope this will be a reminder to the boss, to me, and others that when they have people under them, they have to be able to be more perceptive. Read the flow, read the surroundings and act before its too late, before the morale bar have gone to red.

But how can a boss, becomes a leader who can raise their team’s morale up? What kind of activities that will boost their morale? Annual dinners, team-buildings, speeches? My thoughts on how the current situation can be improved here will be in another post.

Yearly personal update

Categories: blog

There’s a memo going around. Everyone have to fill up their personal info in a form attached to an email or something and send it back. From what I see is that, they’re just too lazy to look up at all the files (hardcopy) that have been filled up previously (or maybe they’ve lost it in some cabinet somewhere but wouldn’t admit it) and used an easy way (requesting everyone to fill it up again). I’d be delighted to email back the sender and asked why? Can’t they use the one that we have already filled? I’d probably get shunned or ignored and even if they reply, the most obvious answer that I can think of is: I don’t know, I was ordered to send this memo.

Lean Principle No. 1: Eliminate Waste.

We could all discuss what went wrong and try to improve, we could play the blame game or just force everyone to do it without explaining and lose all respect from the employees (what the fuck is this? primary school?). Either way, they’re not interested to discuss about it.

The need for Solution Notes (or Manuals) and Processes

Categories: blog

Recently, the need for technical process (or manual) document was raised. The only thing that I could do is hide my grin.

smile: a facial expression characterized by turning up the corners of the mouth; usually shows pleasure or amusement

I have been advocating the writing of problems that were faced and the way it was solved so that the knowledge doesn’t go to the grave with those who first encountered it. Empowering others with their knowledge by cumulatively over time writing it in some written form (preferably wiki). As far as I can recall, it was 6 or 7 months ago that I actively preach to my previous teammates about it for about 5 months until I was burned-out from the resistance and excuses that was given.

It would be a blessing if all of the problems 6-7 months ago were written (and rewritten) down for reference because this kind of things requires time to pile it up into a wealth of knowledge. Any kind of delay risks the problems being forgotten.

Trying to come up with all the documents, manuals and processes now is kind of useless. No one can remember the problems that were faced through the year and write it down in a short time. The only thing that can be done, is to start implementing it, now.

The “we don’t have enough people (or time)” excuse can still be used like before, but now, we’re really short on people. The wish from the excuses have been granted. Heh.

Implementation

So how to start implementing this notes, processes and docs?

  1. Everyone must log all their problems (preferably using an issue tracking system)
  2. Have a meeting to review all of the problems. Depends on the amount of the problem, maybe once or twice every week while the solutions is still fresh
  3. Identify repeatable problems that can be documented and write it down

Thats a start. It can be refine as time goes by. Sounds like a scrum doesn’t it?

Critical Hit to the Team

Categories: blog

It felt like we have lost one of our soldiers in a war (a colleague is leaving). The team’s morale going down and there’s no one that can cheer us up. I can feel it. I understand his decision. I too would like to leave, but I’m eager to see what would happen in the next 2-3 months.

Some people think that our current micromanaging inexperienced CTO will not affect us, but I beg to differ. I’ve been hanging out with a lot of people and hear all kind of stories (from sources which I find reputable). He is holding multiple position and unfocused in doing it. His tasks are stacking up and waiting to bury us all under it. Drunk with power.

I’ve been on a sinking ship before (metaphorically), and this time, I’m ready and watching so that I can learn why, what, how and know when to jump off the ship!

Form Validation, numeric, for array inputs

Categories: Development, code, codeigniter, php

I got an error while doing some work with CI 1.7.0

A PHP Error was encountered
Severity: Warning
Message: preg_match() expects parameter 2 to be string, array given
Filename: libraries/Form_validation.php
Line Number: 1091

Extend the core library so that it will validate array input (i.e. name=”student[]“).

class My_Form_validation extends CI_Form_validation
{
    function My_Form_validation()
    {
        parent::CI_Form_validation();
    }

    function numeric($str)
	{
        if(is_array($str))
        {
            foreach($str as $item)
            {
                if(!(bool)preg_match( '/^[\-+]?[0-9]*\.?[0-9]+$/', $item))
                {
                    return FALSE;
                }
            }
            return TRUE;
        }
        else
        {
            return (bool)preg_match( '/^[\-+]?[0-9]*\.?[0-9]+$/', $str);
        }
	}
}

EDIT: Added return TRUE after looping through the array.

Encouraging Communication

Categories: blog

Sometimes I wonder on the methods and techniques to improve a team’s communication apart from sending to courses, team-buildings, etc (which requires top management approval that might be resisted with excuses). One of the interesting points that I’ve discovered is the need for technical lead. Which is supposed to be the answer for solving my frustration with the team I’m previously in. If I had been given a chance and higher authority, I would have surely enforce lots of stuffs.

But the rice have become a porridge (nasi dah jadi bubur, lol), I have moved to another unit and tried to get into yet another unit’s development and saw some flaws and escalated a few issues through emailing but didn’t get any feedback. Verbal feedback is ok, but lacks the thought and structure of a written feedback.

Apart from having a technical lead, a team that lacks exposure to real world development, I’m thinking of getting them to pick an open source project and contribute to it. Ask them to take note on the difficulties on contributing to it and obstacles that they face. The bigger the project, the better it is. Every month of so, have a discussion about it within the unit or department. By getting involved in an open source project:

  • a person realizes the importance of a good documentation and how to write one
  • learns how roles plays their part and how an issue is handled
  • learns to communicate through email, usergroups, issue tracking system, wiki

The list could go on and on but I can’t think of much else right now.

Software versioning

Categories: blog

My email about the software versioning have not been replied except through verbal means and I feel like it goes into /dev/null, every single email (well, not every single email, but most of them). As soon as the email was sent, I got a verbal explanation on the other unit’s software versioning (which I have forgotten most of it today). I asked a few questions about the current practice and I don’t think I get my points across to him very well but verbal explanations of development practice from my experience is useless, it must be written down. Nobody can remember about this stuffs from memory, they have better stuffs to remember.

Why did this issue arise? When I wanted to deploy my Reply Form System (RPS), I ask around what should be put inside the application release form, and was told to put in the version as 1. Why? If there’s a product, I must put in 1 (or 1.0), Why? Throughout the years and from numerous open source projects that I’ve seen, that is not the case. If a project meets its initial requirements, it should be 0.1 (we’re using the decimal system, first number is always 0), 0.0 is the idea, 0.1 is the materialization of the idea into a working program. If its going to be commercially released (RPS is for department use), after 0.1, it can be jumped to 1.0 for marketing purposes. I realized no one is taking my email seriously about this issue and I’m curious on the repercussions on taking Version Numbering for granted in the long run.

I think everyone regards my email as a rant and is automatically ignored. I just wanted to know the development versioning scheme so that we can standardized it as a guideline for every other project and I don’t think those who have the information are eager to write it down.

Fuck this shit! I’m gonna do my own way if no one is interested in discussing about this issue. At least all my applications are standardized and follows the same guideline.

References

GimpStyle Theme design by Horacio Bella.