Search iThink... (Tarun Chandel's thoughts)

Loading...

Saturday, September 30, 2006

Too much of installation, too less of code!!

Why do we need to do a lot of installations?
By the time you are done with installation, the appetite for writing the code fades away. There is a serious need to get into a habit of traveling light and using light weight processes. When you get into a project or into any problem solving team, your adrenalin is high and you are ready to get in to the zone. (Every programmer works best when he is in his own zone). But these time consuming and heavy installations take so much of your time that by the time your environment is setup you no longer feel like working.
If we can work on lightweight tools which solves the purpose we should use them. The reason of going for heavy app is to help programmer work efficiently. If in case the programmer can't work without these softwares, there should be a guy who does all the setup and programmer gets a ready machine. This way he will be able to direct his energy towards solving the problem and keep his enthusiasm up as well rather than focusing on installing various softwares.

I thought while going through :
1. long and boring installations.

Similar Posts:
>>ADD YOUR POST

Tarun Chandel
Life, Learning and Technology

4 comments:

Anonymous said...

Software development in service industry is moving towards "industrialization" and specialization. There are guys who are server admins, clear case admins and tool smiths etc. Then there are designers and architects. Where does that leave a developer? He is like a coolie in whole equation. He is provided tools, enviornments, somebody else designs for him. Architectures and frameworks takes care of complex and critical pieces in software. All he needs to do is fill in the blanks.As a manager I like this. This makes it so managebale. But as as developer I hate it. I want to know how Linux kernle is installed, how LDAP server is installed and configured, how database instances are configured and run and just about everything else. I want to being able to do it if I have to. It makes me whole lot comfortable and I feel in command. Also service industry is moving towards a direction where developers are becoming integrators. You should be able to fix and integrate lots of things to make something work. It can also be quite exciting.

And if you are a good developer you would know a rule "Be Lazy". Lazy people are better developers. Since when you are lazy you dont want to do same thing again and agin. So you write better reusable code. And you know when to automate so that next time you are doing anything which is predictive and repetitive, you can automate it. So If I end up installing lots of software and I find it bloody boring, I will think of a way to automate it. May be write a script or something. I will do it outside my project time and then gift it to the team. Anything which can be better"ed" is a problem waiting for a solution.

Tarun Chandel said...

I think automating the process of installation is a good solution. But I am not just talking about the solution; I am talking about the process here.
If the team is provided with a ready script at the time of start of project, their enthusiasm will not fade away. Alistair Cockburn once said that a team of motivated people can deliver any project. The real challenge in any project is people management.
Let's discuss what is motivation? Rather what is the final result of motivation? The final result of motivation is an enthusiastic person ready to put his/her time and energy towards achieving your goal. So if at the start of the project everyone gets a script that will automate the process of installation, no one will lose their enthusiasm.
An enthusiastic team ready to crack the problem; that's a good situation to start a project with.

Anonymous said...

Whereas I see automating installations as a problem to solve and hence to get motivated, you see it as precondition for people to get motivated. I would say challenges and problems get people motivated and challenges never occur in ideal situations. They occur because things are not ideal and can be improved. Good teams dont need processes (as they create themselves) and bad team can not do anything with best of processes.

Tarun Chandel said...

"Whereas I see automating installations as a problem to solve and hence to get motivated, you see it as precondition for people to get motivated."

No i don't see it as a precondition to get motivated. When does a team get together? A team gets together when there is a problem to solve or a mission to achieve, in Software Development case, when there is a delivery to make. They already have a challenge to take care of. Team's most of energy should be spent on trying to solve the primary problem for which they got together. The primary problem is a good enough to get motivated, but if the team faces problem at every step and keep solving them they will spent that less time on solving the primary problem.
Processes never make a good team. Alistair Cockburn in his book Crystal Clear mentioned that while researching about which team failed or delivered projects successfully. And he found no correlation between processes being followed with project’s success. According to him a team of adequate people with just enough knowledge can deliver highly complex projects successfully without following much or any process. He also coined a small phrase that, “people trump processes”. Which is true, if you have a team which can work together rising above pity differences you don’t need all the processes.
Jim Collins in his book, Good to Great mentioned that put right people on the bus and they will decide where to take the bus. In simple words they will make sure that they achieve the goal for which they are on board. Let’s take a scenario, if the team is ready to board the bus and they realize that the bus is not yet arranged. The team will arrange a bus themselves, they are more than capable to do that, they will test the driver’s skill level and whether the bus will be able to last the journey. They will do all these tasks and then the journey will start. If they would have got a good bus with everything done to start with, they would have already been solving the problem on board. Let’s draw this analogy to the original discussion we were having, it’s up to management whether they want the team to install softwares or directly start working on the problem for which the team is there.
Teams in Software industry does all the installations themselves as a process. It's time to address whether this process is worth following or can a team has it as a prerequisite to the project? Every problem is a challenge and challenges do motivate people ...
(I will leave it open here)

Post a Comment