“Before you speak, listen. Before you write, think. Before you spend, earn. Before you invest, investigate. Before you criticize, wait. Before you pray, forgive. Before you quit, try. Before you retire, save. Before you die, give.”

Sunday, January 17, 2010

Project management .. or how do you get 1 baby in a month using 9 women

Since I started doing some kind of mini-project management I worked I realized something shocking. We (the developers) are just resources .. like a car engine or robot. The thing is that we are very expensive resources and we need to deliver code to actually ensure the company has profit.
The way management views us is that simple. And recently I have started to do it myself when using tools such as GanttProject. As you can see below this tool actually runs on Linux which makes it a great tool for new non-corporate project managers.















Ever since I started as a developer I had my conflicts with project managers. They would keep insisting that the task should take 2d because the project would not be on critical path otherwise .. and I would just say : It will not happen I think it takes 4 days (at least).
Now I get to do the estimations and the only way we could do the estimations right in my opinion is by using something called : Evidence Based Scheduling
I do not think you could ever estimate a new task without having it done before. This is not picking apples activity this is a complex endeavour. It is quite hard to say whether I can split a task between 4 people and parallelize it.
So as a team leader I am expected to make the right choice when doing the Gantt Diagram and sending it to management but I always tend to err on the safe side because I happen to know how it feels to be stuck before an error you could not possibly understand or to need something from a fellow developer and that guy is not available. Or to have some other priority taking away one or 2 members off your team.
The result is that I always finish on time and even before that but that is not always good because that time is always too long.
As far as I am concerned I feel obliged to honor my own estimation and that is that.
There are 2 ways of doing task estimating and only one is right in my view
1) We have a project deadline (already specified in contracts and signed for) let's split it between the developers and see how we can deliver it. The developers just have to do it in the specified time (or we will fire them).
2) We need to implement a project. We get together the team. Each developer chooses the features he needs to implement and gives an estimate. The team leader( me ) comes up with a sum of all estimates + some slack and the deadline is specified to the client (upper management might add some more slack).

Fortunately people understand that they need to do it using the 2nd method (at least where I work) but there are still shops doing the first method (been there done that) and these shops do not stay in business for long.
I like to be organized and I did my best to study time management techniques or to be effective in my work so I like to actually create a schedule and respect it (as a true professional) but I just don't like the idea that everything is already planned for you and you the developer don't get to actually say how much a task will take even if it is assigned to you. Developers that can't be trusted with estimates should not be trusted with code .. but (some) project managers seem to miss this point so they do the estimates for the poor guys and ask them to come during Weekends to get the work done.
LE: could not help it 9 women give you 1 baby /month :)



Thursday, December 31, 2009

Happy New Year !

This the time to set a new year's resolution ... well I can think of some of my failures in 2009 and some of my successes.
My failures :
- could not pay my car debt which was scheduled for end of the year
- could not bike all year long(car accident in November) .
- had some lazy periods when I could not be a top performer.
My successes:
- lost 23-24 kg .. I am now officially in the overweight but not obese category and it feels fine
- found a Java developer job and was promoted a team leader .


What I want for 2010 :
- pay my debt - it is so old fashion but I hate debt , being debt free is important for me and my wife
- get organized about my life (already am a lot better at this) and driven the two are interdependent no matter how much will you have you need to be organized and without will
you can't even organize. Professionally it means I should use all the 8-9 our at work(and not another hour more) to deliver working code and deal with the issues no matter how boring or incredibly hard they are.
- finally pass the SCEA certification .. this has been a work in progress since 2007 .. need to do it
- enter the master program - E-bussiness .
- loose weight - another 17kg would be nice
- bike a lot more( commute to work daily) , maybe even buy a road bike

Happy New Year Everyone !



PS : Being organized means I will definitely do a huge upgrade in March to a new computer .. can't wait for that.

Tuesday, December 29, 2009

Developer machine - do you really need a core i7 and 6 GB RAM ?

After a depressing post about Christmas I will try to finish the year on a happy note.
Due to the fact that I want to avoid adding to my already mounting debt (car especially) I gave up buying a new machine. Instead I kept upgrading it to make it faster.
My current machine now is a :
CPU : Amd Sempron 2500+ - 1.4 Ghz (o.c. to 1.626 Ghz)
Motherboard : Biostar K8M800-M7A
RAM : initially 512 Mb PQI - upgraded to 2GB king MAX DDR1 400
Cooler : Amd Stock - replaced with a Zalman 7500 AlCu Led.
HDD : 1 40 GB Seagate + 160 GB WD ATA
PSU : no name initially replaced by a Rasurbo Silent Power 550W

As you may realize this is was a low-end machine even in late 2005 when it was bought.

My machine felt really slow when working with Eclipse , Glassfish and cruisecontrol + svn on Ubuntu Linux 9.04. That was last year about the same time as now (December 2008).
All I wanted then was to buy a new computer on which to develop Java. But I am not Jeff Atwood at least not yet so borrowing 1500$ in this country and in this economy to fund your computer needs is not a good idea.
Well at my new job I got a new generation E2180 Intel Core2Duo computer which was supposed to be lightning fast(for beginning of 2008 anyway). Guess what .. it wasn't . The computer kept reading data from the HDD like crazy. This made me understand that it needed more RAM and required it ...
So if a 1 year old computer can be choked by software development requirement what can you ask from your old 4 years old computer ? While studying hardware used by other people on the internet for software development I found this post by Jeff which really made me think because I just happen to have a processor in the same family(with stripped down cache Celeron style).
So I started identifying bottlenecks and issues on my old Sempron
1) It would not always start
2) It was noisy
3)It was slow and kept reading from HDD
4)Compile times were too long.

Fix for 1 - bought a new PSU (and a silent one to fix 2) - 40$
Fix for 2 - bought a new CPU cooler (also a huge and silent one) - 35 $
Fix for 3 and 4 - bought 2GB of RAM and donated the old RAM to my dad - 75$
Total amount spent 150$ which was spent over 2 months period.

Finally after replacing the parts the computer is fast enough for development (not gaming ) and more important quiet. I can still hold on to it for 6 months and then keep it as a Linux server. Considering a new computer (case , mb,processor, RAM , psu, hdd) could easily cost 1100$ (my local market calculations with a core i7 920 2 GB RAM which would need to be upgraded soon enough to a i7 970 6GB RAM) I think the upgrade was a good idea and I will easily shave the 150$ off the CPU price next year (Intel processors are overpriced in my opinion but are worth it for a non-gaming machine).
Also as the cooler was very big and quiet I thought that I could afford a minor overclock from 1400 Mhz to 1626 Mhz and the system runs fine at this frequency(that was brave considering the fact that I was scared I would burn the CPU when installing it and the heatsink + thermal grease-did not happen).

Glassfish / MySQL and Eclipse run without interruptions and I can even open a PDF ,3 browsers and listen to music at the same time .. huge amounts of RAM can do this to you.
Considering the economy and the jobs in Bucharest it is always better to keep your money for bad days instead of expensive hardware. In Romania a good software developer can rarely get 1/3 rd of the American software developer paycheck .. and guess what costs are higher here .. but this does not mean you should not optimize your hardware .
I cannot understand people that are in this software development jobs and do not know (or care) what is underneath the case. I for one think that we need to know how to get the best of both our minds and our computers in order to deliver quality code.

PS : Because I did not study my computer info I kept thinking I had a socket A sempron until I opened the BIOS and found the information I needed. Before that I spent another 30$ on a Amd Athlon(Barton) 2600+ CPU which I will also give to my father.
I think that for his needs (office,music,movies) an AMD CPU will do (coupled with 1GB RAM).
LE : I did the upgrades on my father's computer now it works at 2600 + (Amd Barton socket A) a bit overclocked to 2700+ (2000 Mhz) and I really like how it works. I used his old processor an AMD 2000+ to power up one very old machine left around the house (carrying an old Duron 900 Mhz). Turns up that the thing I was scared of the most (installing a socket A processor and heatsink) was doable. I always thought I would burn down the damn thing but I didn't .. you just need to pay attention.

Thursday, December 10, 2009

Laid off for Christmas

Long time since I last wrote.
It's been a year since then. I hear Christmas carols .. .people smiling , the typical gifts rush .. but Christmas cannot be as nice for me anymore. The magic is gone .. people still die around the holidays , jobs are lost and a lot of people suffer from depression around this time of the year.

Last year I lost my job on December 5th. Those were some of the worst holidays in my life.
I could not afford to buy Christmas gifts and the only thing I was interested in was getting a job. People went on to their jobs each day .. I went running in the park and returned home just to find no calls, no emails and no comfort .. People were asking me were I would spend my Christmas holiday .. Austria or Romania .. I was thinking about my bank payments.



I luckily found a job in January this year but my holidays were ruined. The weird thing is that I was contacted by the same company that fired me (or laid me off .. not much of a difference for me) to work for one of the first of their customers.. well I can't say I can afford the chance to be fired again so I only agreed to do a part-time gig (which they could not fit into their plans) because a company that fires somebody for Christmas is not a company you want to join for a long-time relationship (even as incompetent /lazy as I was).

Thinking about the pain I went through I will make a note that if I ever found a software company I have to be nice to my employees and never ever fire somebody for Christmas. A 100.000 Euros Christmas budget(bonuses and presents (as in laptops/smart phones/geek toys) will almost guarantee faithful employees for a long time).

The worst case of Fired for Christmas last year ended in a shooting at the company Christmas party .. thinking about it I was pretty upset and was even invited to my ex-company Christmas party .. it is good we do not have shotguns.
On the other hand the experience really changed me yes there won't be any Christmas magic from now on(I still worry every day before Christmas about being made redundant) and I will never have a truly happy Christmas but I will never leave my life in the hands of somebody I do not trust , somebody that with just two words can destroy your holidays.
Here is another guy that went through the same thing. No .. no Merry Christmas for him either. ..

Friday, November 27, 2009

The good side of the real estate bubble and the programmers home

I am finally moving in the suburbs. I will get a one bedroom apartment in a 1 year old flat(+2 parking spots) for the same amount in rent I was paying for a 35 year old ,dirty and unmaintained studio 4 km from the center of the town(350 Euro).

The same place would have been rented for 2 x the amount I am paying in 2007 (700 Euro).. I know it because I was looking for a place to rent then in new buildings.

Renting in my 3rd world country is not usually an option as most of the times is not legal (the owner does not want to pay taxes for the money he/she gains) and you really have no rights.

So the prices for buying went sky high in 2007 (the apartment I will move to costs 60.000 Euro now but 120.000 in 2008).
Guess what : now they do agree to have a contract and pay taxes for it.


The place a programmer lives in is not as important as the place he works at nevertheless there are a lot of programmers that do code at home for side-projects , their business idea or as in my case just fun ... well you need a good environment:
1) Quiet and no interruptions space- yes it does matter
2) Space for computer stuff : a computer book library , a desk with a top of the line(and very quiet) desktop , maybe another place to take the laptop to for a while(a porch/garden in a house is ideal),a router for sharing connections for your home network , a server (for your site) and maybe a printer.
3)Separation from other family members for a small while


I dream about the bionic office but I realize I will just get it at my home , never at work, because really programmers are becoming glorified typists and work conditions won't get better here (in my country I have see only one company using cubicles .. let's not even think about private offices).

My current place just does not cut it anymore .. too little , too old , too dirty , too many scratches from neighbors on my car (Romanian habit on cars parked in crowded places if you happen to find an empty spot(unmarked) expect to have a car key scratch on it when you return).
If you never code at home you can live in a crammed room in a big city and literally live at the office and in the city but for me the place I code in is very important.
So important I thought about buying a house in a small town and starting my own business (software of course) and you know what I would be a happier coder then the typical apartment renter/owner dwelling in a big city , working in a open plan office and in a Dilbert like company.
Maybe .. just maybe I could do it. Food for thought.
For now I can't wait to move ... to a place I thought I would never afford.
PS : I still blame Kyosaki for the real estate bubble .. because nobody could afford to buy a really comfortable place to live in(like a house with a garage and garden) .. without being a drug dealer and now everybody is defaulting on loans they took thinking the houses/flats values would increase infinitely and yes in Romania it was 3X worse than in US .

Monday, November 16, 2009

Technical leader or team leader ?

At last I have been promoted mostly against my will :). I am leading a 3 persons team at work and I am working in a pretty complex project. I am now a team leader writing documents , attending meetings and generally being in charge of things.
Basically I am what I hated 3 years ago .. giving tasks around and checking on people. I try to keep from delegating work I do not understand but I am tempted to skip boring parts and do the interesting parts my self. I can delegate I am a team leader :). I want everybody to be able to work in the team and enjoy their work but I can see that that is not always the case and motivating people is an art I do not master for the moment but is crucial for the job you do (no matter how silly the CRUD app looks like).
One of my former team leaders was able to inspire me and make me learn stuff and I wish I could inspire my team members to be passionate about their work ( I keep failing at this for the moment).
Here is a discussion I like about being a technical leader.

People look at(good) team leaders with respect , I really believe in teams that can coordinate themselves without a central character leading the show because this is a domain where people are smart but that is just me.
As a team leader you need to be interrupted , to answer questions to redirect questions and in general to be in a constant communication mode.
So if you wanna be a team leader you need to forget about long stretches in the zone and learn to handle interruptions and even to be expected to get out of the zone when a team member asks you stuff (coding while listening to music is no longer possible all day long).
Maybe a good alternative to do that would be to have a meeting daily in which you decide tasks , solve questions and prepare the work to be done in "the zone". Would a wiki help ? would a forum ? well I don't know but I need to find out.
What would a technical leader do ? Well mostly the same but the requirements would not be handled , and I guess they get to be left alone and decide what to do by themselves and just advise the (very junior) developers on how to get their things done.

On the other hand at the start of November a crash ended my biking to work odyssey :( and I started jogging on and off 3-4 times a week to replace the effort. My weight is stable around 98-99kg and I am starting to be annoyed because I got used to the 2kg every week loss. This is annoying. I need to get the weight DOWN to 90kg ASAP.So this blog will contain less biking and more running.

Sunday, November 1, 2009

Less than 0.1 tons

Finally the gods of cycling and weight loss have smiled at me.
I have reached less then 100 kg (99.o kg Friday October 30th) and I feel better. The diet went well and the bike commute was always ok.
Yes we are talking about 20 kg weightloss in less then 2 months which is impressive.
I even managed to change my freewheel (a SunRace 14-28 t with a Shimano 14-28t) because the old one on my wife's bike didn't work. I don't think I could have done it without the help of Sheldon Brown's site which keeps being a fantastic resource almost a year after his very regretted death.
If I am lucky this year will be the first I will do the winter cycling thing (that is bike commute regularly after November 4th).
My plans are to reach 90 kg by the end of the year and from then on another 10 kg by March 2010.
Now I really should start focusing on the technology thing because I always seem to be a bit behind and I do hate it. I had all kind of excuses but getting organised about it is more important then pretending the computer is slow or that I am tired.