Sunday, September 29, 2013 0 b*tchin

6 Months of TIM

Hello bloggie my old fren,

I come to talk to you again...

Another page in my life has been flipped, and here I am again jobless and goalless. The last 6 months felt like a VERY LONG ride down the most rushed project I ever done... Not to mention the most responsibilities I was ever given and forced to bear project.

There were more cons in this project then pros which was why I decided to tap out instead of enduring the submission lock I was in. Let's talk about the pros 1st since I feel after I b*tch on the cons, I will get emotional and have a less detached rant  on the pros.

Pros:
  • Experienced senior. I learn a lot from this senior. Database design, logging, maven built, concurrency control...
  • Primefaces & JSF. Yes, I now will be able to add this 2 buzz word into my resume. Didn't even knew what Primefaces was 6 month ago.
  • Opportunity.  I was given a lot of opportunity ranging from development, documentation, troubleshooting to preparing built. More opportunity = more learning
  • 1st built from scratch application. My very 1st web application that I built from an empty project. Get to learn a lot of thing that one never get to learn by customizing an existing solution. Felt like I sort of level up in terms of web developing by experiencing this.
And now for the cons...

Cons:
  •  Worst ever team management. Unrealistic dateline, impromptu tasks, lack of direction...
  •  Worst ever team mates. Ranging from lack of skilled to egoistic senior, I'd would choose to work lone ranger in this project anytime. Sadly, my team lead enjoy to lump me with this colleagues as he think I can ying-yang these colleague problem. One of them is 5 years experienced Java Developer that from my rating could hardly make the "Fresh Java Graduate" rating. As a 5 years developer, I expect one to be able to at least use the common convention when naming their Java classes. Over abused use of sessions, inconsistent placement of classes in packages, 1 class do everything design pattern, abnormal java coding convention, lack of problem solving ability are everyday problem I faced when working with this colleague. As for the other colleague, I find myself having to come out of my common habit of no conflict to clash blade with him as I couldn't accept his way of designing solutions. Often I find myself in the scenario where he would reject my proposed way due to his lack of understanding of the technology in work (which he thinks he already knows very well). Then after I demonstrate that my proposed way works, I would have to deal with his constant "I do it my way" attitude which later he would blame on me. For instance, I once told him to add variable x in node a and variable y in node b, which he would end up doing add variable y in node a and variable x, z in node b and when I raise this issue to him, he would blame me saying this is the spec I gave to him. I almost blew my top when I advise him to remove a bunch of unused variables in his workflow which he again blame me for not telling him earlier (which I had and repeated times as well). And not to mention the way he talks, feels very condescending.
  • Lack of responsibility. You break something, you fix it. A common programming practice which I learned and practice. Sadly suffice to say, you break something here, I have to fix it. This is mainly due to the lack to work tracking of my team lead and team senior whom often forget I'm not the only one that write codes in this application. Most of the time when the system has a problem, I become the b*tch to fix it. To make matters worst, I get schooled on common coding practices that resulted in the problem which really isn't my code. While the class name has my name as author on it, a quick check in svn can easily yield which god like developer that copy and paste my class and modified it without changing the author name.
  • Team sync. There seriously is a lack of team sync within the team. No team camaraderie. The only one I could work with is a team senior. I often find this senior crossing blades with the other egoistic senior quite often. The egoistic also seems to take a liking to "complaint" to the higher ups whenever there's a problem the team is facing. I also got tangled in this when I was ordered to reply a email to our PM (and a bunch of higher ups) regarding a access denied problem we were facing with a 3rd party vendor file upload system. I wrote in the email the credential provided by the 3rd party was insufficient only to get a rather messy tangle when this senior decided to chip in and gave a load of bullshit on how inaccurate my description on the problem was due to credential but rather it was a problem of wrong profile. On a personal note, I don't care if it's due to a credential or profile problem, all I want is the 3rd party to gimme all the relevant information to make the webservice call
  • Opportunity. I know I stated this as a pros but when TOO much opportunity is thrown in your plate, it becomes a con. Imagine merging the branch to trunk, debugging other people bug due to a bugfix in other people (shitty) code, thinking of a fix for that (not to mention a fix that works in the shitty code), performing a sanity test (QA), releasing the built, and sending email to relevant party to inform the built been release in a single Saturday.
  • Burnt out. While we human works for  hours a day, the reality is we can only work efficiently for a good 5 hours a day. After that our brain is less pristine and performance goes down. And personally, I feel we can't push our self 100% every day, every week, every month or we will experience burnt out... However that is the scenario here. Throughout this whole 6 months project, I been going 90-100% with exception of a week where I decided to slow things down by not reporting I completed the task so I won't be assigned a new task ASAP. Every time without fail, when I reported I completed a task I would be immediately assigned a task let it be documentation or simple POC, there won't be like take a day to relax since you finish you task ahead the schedule here (Which makes it a norm here that the ones that finish their work are rewarded with more work while those that don't finish their work are punished by having their work finish by another person). And I would like to share how my last week in this project went: OT on my last Saturday and client side test deployment on my last day... Unbeliavable
  • QA. I seriously have a BIG problem with how QA was done in this project. We developer's responsibility is to write software, while the QA are responsible to test them. So the question I raise is who then is responsible to setup the environment for QA to test. Since the QA is getting paid to test the code, logically they should be the one responsible to setup the environment to test noes? Sadly developers are sorta the lowest rank in the food chain here, imagine shit like preparing script for QA to do their testing to fixing god knows what is wrong with QA's server bug (without access to their bloody servers).
  • Reporting. I'm come into this project as an outsource contractor. Hence I have to report to 2 superiors, my team lead and my company coordinator.  Every month I have to prepare a timesheet for my company coordinator so the can charge this project's owner kau kau for my hardwork and give me a small portion of that money. To make thing more difficult for me, the project owner also requested a task list of things I done that require a sign off by my team lead. But perhaps the thing that pisses me off is the "prove" they want to indicate I done my work. It isn't sufficient that the team lead signs the task list as this are just task the team lead assign to you but you may not have completed it. Hence the need for stupid "prove" such a screenshot of parts of module you worked on. So here's my problems, what if I'm doing a module with no screenshot? Say refactoring code? How do I "prove" I refactor my code? And screenshots... aren't those thing Photoshop able?
Retrospectively looking back, I learned a whole lot of things in this 6 months. But I'm glad as hell, I outta the project. I want the experience but the whole project is just simply too rushed and f*cked up. Anyway plan to take 1-2 month off to recover from this ordeal.
Monday, September 16, 2013 0 b*tchin

Love

Dear bloggie,

"It's not the love of one person that matters, it's the love of life. - Patrick, Before Midnight"