Archive

Posts Tagged ‘managing’

Distraction free development department.

July 6th, 2009 Paul 2 comments

keybord

One of the things that drove me absolutely nuts when our department was in the same building as the rest of the company was the fact that nobody could quite understand what we were doing. Quite often we would get a data entry person storm into our office and demand that we fix their Outlook or install Unix on their machine (it turned out that he needed Putty, not a true Unix install). Usually these conversation started with “You guys are not doing anything, right?”. So many times I was trying to explain to everyone that it just does not work like this. We are not just sitting here pressing keys at random most of the time. Best and by far most common argument to support their need for our involvement that I heard was something like this: “It is not going to take long, could you just do this for me right now”. One of our duties was writing a variety of Excel macros for people(I should probably post some tutorials on this subject). After all when dealing with massive amounts of data, it is faster to write a macro then do something by hand. We did not mind doing macros at all, what we did not like is when the person was sitting on the project for weeks and then decided to approach us at the last minute. Client expects the project to be completed at 5 PM, so the analyst strolls into our office at 4:45. Never mind that it takes him about 3 hours to explain to us what on earth does he want macro to do. Never mind that it takes me couple of hours to code the macro in some cases(trust me, there were some huge macros). It had to be done and that is it.

Number of times we attempted to find a solution to this annoyances. For instance we created a little internal web site that would, in theory, help users solve many issues like setting their “Away” message on Outlook and server connection through Putty and such. I did this web site in about 3 days when my computer was send away for repair and I was working on an antiquated piece of hardware we found berried in a storage. Was this web site ever used? No, it was not. Office people would still storm into our office saying that they did not read the instructions as they would not understand it anyway.

The worst part of these interruptions was that it would completely break my line of thought. So you are working away on a complex algorithm with close to no documentation on the objects that have to interact together available. You are concentrated on the task 100 percent, not even noticing that that cup of coffee is now cold, and then all of a sudden you have someone storms in and demanding that you fix their radio right away, or else.

The idea that you just had about this nice piece optimized piece you are about to write is gone now. I must admit that couple of times I flipped. It ended up with me yelling at a poor data entry person, calling them names, questioning their intelligence and so on. After I usually worked from home for a day, but at home there was a urgent need for a game of soccer or emergency epic hide-and-seek battle with my kids. I do enjoy those, but working from home was not a big option from the point of getting any work done.

Few years have passed and then our lease was up. I knew that was the moment when inaction would cost me dearly; I begged and pleaded with my boss to get us a separate office. Likely he agreed with me, and for the last two years we are in a different building, about 40 minute drive away from the main office. At first, main office was really concerned with who would be helping them out with daily tasks, but after about a month they learned to do it themselves. That little web site was finally used on the regular basis. We were not bothered with those requests and could finally spent close to a hundred percent of our time on coding and related things. Our productivity sky rocketed, we were producing better code more quickly and everyone was much happier.

The point is – developers can’t be disturbed. It is a process where ideas and thoughts need to be followed and processed carefully to produce what could be considered good code. You must create a barrier between your coders and outside distraction to produce quality software, and after all it is the purpose of any development team.

Optimizing Developer

May 15th, 2009 Paul No comments

man_rain

Have you ever looked at a code that you wrote several years ago? I have to do this all the time, after all I am working on the same application. Not only do I do it to fix bugs, but I do it to optimize the production code. And at times I see my old code and think what was I thinking when I wrote this. You see, with every release our main product grows, new features, core changes, you name it. One can say that we are optimizing the software by adding things our clients ask for and this leads to optimization of code. Optimizing your code is extremely important, normally there are few ways in which a particular problem could be solved, but if you are serious about your work, you do want to pick the most efficient way of doing things. Many books have been written on the subject, simple Google search will produce lots of articles concerning code optimization. Today I am not going to talk about that, instead I will talk about optimizing a developer.

If you are like me – doing coding full time and at times after hours, you want to achieve something which falls beyond simple financial compensation for you work. I want to grow as a developer. I have read somewhere that it takes roughly 10000 hours to master a task – be it musical instrument, a sport or any other activity. I think similar thing is applied to programming. I have been thinking of a way to apply optimization to myself, after all if my code can be optimized, why can’t the writer of the code. Here are some principles that I have came up with. This works for me, might not work for everyone. Once again, just my own opinion. Read more…

Project management made simple.

March 5th, 2009 Paul No comments

As much as I don’t like freelanceswitch.com or other similar sites aimed at converting everyone and their uncle to the holy new way of life – freelance work, there was an excellent article by Leo Babauta of zenhabits.com on simple project management today. I am not going to go into detail on why I think freelanceswitch.com is not on top of my “favorite sites” list, maybe some other day, but the article itself was simply excellent. If you are not familiar with who Leo is, read zenhabits.com, it’s good for you.

Usually when you read about project management, and you should – it is important, it always starts with “Get the software X and do this, this and that, and you shall be managing your projects just like the pros do”. As seen on TV approach that might get you excited, but at the core of it there is a simple sales pitch to move as many units of “software X” as possible. Leo takes completely different approach, no mentions of any software package that would be a silver bullet for your particular situations, just the basic ideas that often gets overlooked when thinking about managing that runaway train that is your project.

Leo’s idea is simple:

  • Define outcome

  • Setup process

  • Focus on the next action

  • Send it to the client

  • Communicate

  • Focus on the next action

  • Repeat until done.

And I would like to go as far as to say that it is not really his idea, it is a universally accepted idea on how to manage most of the projects. What really intrigued me was the fact that there was no fluff in the article, good clear explanation that brings you down to the core concept and let’s you decide how to do this in your particular situation.

I would really recommend Leo and his blog for everyone who is serious about his development not only as a IT pro, but as a human being.

Bad code, we all do it.

January 27th, 2009 Paul No comments

978868_166628661

Bad code we all do it.

Well, I had written my share of bad code. Couple of weeks ago I had to fix up a class that was written about 4 years ago. For a while I could not believe I wrote this, but the comments on top clearly identified me as a suspect. The thing is we all write bad code sometimes. If you never wrote any bad code, please raise the hand with which you did not do it.

So, going back to the story – I was looking at it and my first impulse was to try to hide it far away so nobody would ever have to look at it. My second impulse was to rewrite it. I figured, it would probably take me about 5 hours to redo this. I did not do any of it. Instead I brewed a fresh pot of coffee, put my pride far away, printed out copies of it for all developers in the office and decided to play a game. Read more…

Categories: Coding, Management Tags: , ,

Are changes good for you?

October 30th, 2008 Paul No comments

I have been told many many times that changes are supposed to be good for you (or me, since it’s my situation that we are looking into). I have been a coder for quite some time now. I can’t say that I am absolutely ecstatic about programming. It does not influence my life outside of my office hours and time that I spent at home trying desperately to improve myself. For instance, I don’t watch Star Trek or build some kind of crazy contraptions which could loosely be called a robot in my basement, although come to think of it, that sounds like a good idea; the robot one, not the Star Trek. I don’t wear nerdy t-shirts with BSOD on it. I am not participating in heated discussions like “My IDE is bigger then yours!” and “My OS can kick your OS’s butt” and so on. I can’t say that coding is my passion, it is something I am interested in and it pays my bills. Another factor would be my formal training – I have some in development, but as for the other areas I can’t say that I am properly trained. Lately something had changed in my work – I am doing more managerial things then coding. Read more…