<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>C#, VB.Net, XML and mass consumption of coffee. &#187; Management</title>
	<atom:link href="http://www.paul-zubkov.com/category/management/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.paul-zubkov.com</link>
	<description></description>
	<lastBuildDate>Wed, 03 Feb 2010 18:25:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Freelance work what it should be vs what it is.</title>
		<link>http://www.paul-zubkov.com/2009/12/04/freelance-work-what-it-should-be-vs-what-it-is/</link>
		<comments>http://www.paul-zubkov.com/2009/12/04/freelance-work-what-it-should-be-vs-what-it-is/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 17:23:20 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.paul-zubkov.com/?p=284</guid>
		<description><![CDATA[
I am a busy guy, full time job, wife who recently decided to learn how to code, kids &#8211; hockey practices at 7 am on Saturdays and bed time stories and many other things normally occupy my day.  On top of this, I have to stay up to speed on what is going on [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-285" title="1243018_31569956" src="http://www.paul-zubkov.com/wp-content/uploads/2009/12/1243018_31569956.jpg" alt="1243018_31569956" width="300" height="185" /></p>
<p>I am a busy guy, full time job, wife who recently decided to learn how to code, kids &#8211; hockey practices at 7 am on Saturdays and bed time stories and many other things normally occupy my day.  On top of this, I have to stay up to speed on what is going on with technology, work on my side projects (<a href="http://partypm.com">partypm.com</a> is cool, sorry for the shameless plug) and occasionally I do freelance.&nbsp; However lately I am not that enthusiastic about freelance projects and <a href="http://theoatmeal.com/comics/design_hell" target="_blank">this comic from the Oatmeal</a> perfectly describes the reason why.</p>
<p><span id="more-284"></span></p>
<p>While I have been blessed with complete lack of any talent for working UI, which minimizes the damage described in the comic, the designers I work with are suffering tragically.&nbsp; There were so many instances where the original site was simply horrible, the design we came up with was great and the client loved it, but additions and changes initiated by the client completely ruined the project to the point where you don&#8217;t even want to visit that site later on, forget using this in your portfolio.&nbsp;</p>
<p>I know, I am not saying anything new, most of the developers dealt with this, its a part of our job, but my question should it be the part of our daily life.&nbsp; What happened to Expert Power mystique which surrounded us for quite some time?&nbsp; Do you question your doctor?&nbsp; How about giving suggestions to your dentist or lawyer?&nbsp; You might, no one is saying that you are not allowed to, but mostly you would trust their judgment to do what is right.</p>
<p>The problem begins where you realise that the client is paying for your services, so he has complete right to control how the final product will look and act.&nbsp; You can&#8217;t completely ignore his wishes, and at times it is next to impossible to convince the client that your idea and your design is right, but I think we should try.&nbsp; Surely it will be more time consuming, frastrating and so on, but at the end everyone would benefit.&nbsp; Let me tell you about my boss Dave.&nbsp; Dave is a great guy, he is very smart and reasonable boss, but at the begining of our dealings, I had to spend number of hours trying to convince him that what he wanted was either impossible (when it was really impossible.&nbsp; ie &#8211; can we just create a button that will do all the work) or unreasonable (create a feature for one particular client while the application is distributed to many clients).&nbsp; I did not really fight his ideas and suggestions, but rather modify them to make sure the features are reasonable and fucntioning.&nbsp; After a while, we both learned that we could trust each other to do the best we can with what we have &#8211; suggestions from our existing clients and demands from potential clients.&nbsp;</p>
<p>I am happy with this setup.&nbsp; He calls me as says company X wants feature Y implemented.&nbsp; I take feature Y and make sure that we can do something that could be useful for everyone, not just X.&nbsp; Then I give him back my estimates and my plan regarding the feature Y.&nbsp; If he is satisfied, the work goes into a queue and everyone is happy eventually.</p>
<p>This became possible because I work with Dave on a daily basis for about five years now.&nbsp; Achieving compromizes with your freelance employers might not be possible due to the time constrains, but here are the principals I am sticking to when thinking about freelance:</p>
<ul>
<li>I don&#8217;t work for family / friends&nbsp; /friends of family and so on.&nbsp; In my experience, this really ruins relationships with people &#8211; you ask them for money for your work, they generally think that you should do it for free and the way that want it and so on.</li>
<li>Before I begin coding, the client has to approve the design and feature list.&nbsp; I will not start work until this is done.&nbsp; I do take deposits, generally 50% of final price.</li>
<li>Once approved by the client (signed on a piece of paper) all request like &#8220;can we just quickly add this&#8221; costs an arm and a leg.&nbsp; It is extra work, I had not planned for it.&nbsp; Clients know about this rule and if they are not happy with this rule, we won&#8217;t be working together.&nbsp; Years ago I was installing pool tables to pay my way through college.&nbsp; For those who don&#8217;t know, it takes between 4 to 6 hours to put that table together and once assembled the table is too heavy to be moved, not mentioning that once you moved it, the level is messed up and installer had to re-do half of his work.&nbsp; Before I start, I would demand the client to tell me where exactly that thing is going in.&nbsp; It was not possible to change it.&nbsp; When clients asked to change something after the table is done, my fee was automatically multiplied by 3.&nbsp; Pretty much same thing is applied to my freelance projects.</li>
<li>I do offer support on complete projects including training and so on, but after a free chunk of that, the support is becoming expensive.</li>
<li>I don&#8217;t work for free.&nbsp; Which include a company that creates a &#8220;contest&#8221; for best design of their new site, offer to pay me in products they are selling, promises to promote me, promises to bring me new clients, offers to get me in as a partner in their business and so on.</li>
<li>I don&#8217;t do clones of existing products.&nbsp; People who visit freelance oriented resources know what I&#8217;m talking about.</li>
</ul>
<p>I know this might sound condescending and maybe outright crazy, but I feel that this set of rules helps me and my designers stay sane and happy with projects we take on.&nbsp; Clients that decide to work with us are happy too, those who choose not to, are happy because we informed them of the conditions upfront giving them a chance to make informed decision.&nbsp; They will find a freelancer who will do what they want, I am sure of it.</p>
<p>I would love to hear about you and your approach to dealing with clients.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paul-zubkov.com/2009/12/04/freelance-work-what-it-should-be-vs-what-it-is/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>What recent computer science graduate should know.</title>
		<link>http://www.paul-zubkov.com/2009/08/04/what-recent-computer-science-graduate-should-know/</link>
		<comments>http://www.paul-zubkov.com/2009/08/04/what-recent-computer-science-graduate-should-know/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 18:50:31 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[9-5]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://www.paul-zubkov.com/?p=257</guid>
		<description><![CDATA[
Many many years ago when I landed my first coding job, I was amazed at how different working in a software development shop was different from what I had pictured in my mind.&#160; At that time, I did not even graduated yet, I was in need of money and it seemed like a great opportunity [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-259" title="wheels" src="http://www.paul-zubkov.com/wp-content/uploads/2009/08/wheels.jpg" alt="wheels" width="300" height="200" /></p>
<p>Many many years ago when I landed my first coding job, I was amazed at how different working in a software development shop was different from what I had pictured in my mind.&nbsp; At that time, I did not even graduated yet, I was in need of money and it seemed like a great opportunity so I took the job.&nbsp; While driving to my new place of employment for the first time, I was running some scenarios in my head, trying to remember some tested and true algorithms, thinking of whole bunch of technical things that might help me impress my then new boss; what came as a complete surprise to me was the fact that I had no idea what the work was about.</p>
<p>After couple of weeks, I began to realize that many things that were part of my job were not covered in school at all.&nbsp; I can&#8217;t really blame school for that, after all they were trying to give me as much information as they could about technical aspects &#8211; languages, algorithms and all that jazz, I myself had failed to learn the truth about real time work of a coder, and I did have opportunities to do so.&nbsp; Later on when I became a manager and was interviewing people for coding positions, I realized that I was not unique in this lack of knowledge.&nbsp; Most of the recent graduates were in the same boat that I was in years ago.<span id="more-257"></span></p>
<p>That time had passed, I learned a great deal from working on different development teams, I could probably be called a veteran of the game called software development, and today I wanted to post about things that I think any recent graduate should educate himself on:</p>
<ul>
<li>Time Management.</li>
<li>Ability to produce accurate estimates</li>
<li>Ability to write technical documentation.</li>
<li>Dealing with customers &#8211; when times are good and bad.</li>
<li>Dealing with co-workers in conflict situations.</li>
<li>Learning is an ongoing process when coding</li>
</ul>
<p>Lets look at those a bit closer:</p>
<p><strong>Time Management</strong></p>
<p>Time management&nbsp; in my opinion is the most important skill a developer can have.&nbsp; I would also add self discipline to this since the two are related.&nbsp; It is just too easy to get distracted by things that are not really work &#8211; after all internet is right there.&nbsp; Another point is getting way too involved in your project, spending way too much time on tasks that are not really that important.&nbsp; It is business first, and we are all on a dead line.&nbsp; Other people&#8217;s deadline is depended on you most of the time as well.&nbsp; One of the biggest time wasters in&nbsp; my life is email.&nbsp; I get tons of messages a day, most of those need to be answered.&nbsp; Most of my clients / co-workers expected me to get to that right away, well guess what?&nbsp; That does not happen.&nbsp; I am answering my emails at 10 am and at 4 pm.&nbsp; If its urgent, people can call me, if they don&#8217;t know my phone number, then most likely it is not urgent.&nbsp; It took a while to convince by boss and my client that this is the best approach to my time.&nbsp; This works for me, I can&#8217;t guarantee that it will work for everyone.</p>
<p><strong>Estimates</strong></p>
<p>What happens most of the time is my boss tells me to code something &#8211; a feature, application, you name it.&nbsp; He wants to know how soon can this be done.&nbsp;&nbsp; In turn I go to coders and ask them &#8211; how long would it take you to do this?&nbsp; Most of the coders are not able to give me an accurate estimate &#8211; and I can understand it &#8211; things happen, but could you be at least close?&nbsp; I can understand if you are off by couple of weeks &#8211; my estimate will allow for that, but when you are off by month, that makes me look stupid, and guess who will look stupid next?</p>
<p><strong>Technical Documentation</strong></p>
<p>One of the things developers hate is to write tech documents &#8211; manuals, reports you name it.&nbsp; But despite all that, you still are going to do it.&nbsp; Hopefully it will not develop into full time job for you, unless you want it to.&nbsp; I am not a big fan of doing it, but trust me, on top of what developers do, I actually write proposals, analysis papers, reports of various types and so on.&nbsp; It is a bit of a challenge for me, since English is not my first or even second language.&nbsp; So many times I had seen a talented coders who can&#8217;t write &#8211; and believe me, it creates a negative impression which should not be your goal here.</p>
<p><strong>Dealing with customers</strong></p>
<p>Let&#8217;s hope that in your career you will never have to speak to a pissed off customer.&nbsp; We can hope all we want, but it will happen sooner or later.&nbsp; If I had a penny for every time customer yelled at me, I would have a truck load of pennies by now.&nbsp; I am not even going to mention a situation where a client demanded that I had&nbsp; to buy lunch for his entire team simply because my plane was delayed.&nbsp; I had customers tell me stuff like : &#8220;So it can&#8217;t do X, then your software is shit&#8221;.&nbsp; Which was especially frustrated, because no sane person wold do X.&nbsp; In all fairness, this is a way users respond to what we code, and we can&#8217;t possibly please everyone.&nbsp; What I find even more frustrating is when customers do have issues, but won&#8217;t tell you anything and then the time to renew the contract is approaching and all of a sudden they don&#8217;t want to continue.&nbsp; Feedback is good for you, even when it comes in a form of a pissed off customer.&nbsp; Feedback is good because it will not only tell you what customers really want, but what your software is doing right.&nbsp; I am not saying that you have to fold every time customer has something uncomfortable up his butt, you have to learn how to hold your ground and compromise if compromise is possible.</p>
<p><strong>Dealing with co-workers</strong></p>
<p>Most likely you won&#8217;t be working by yourself.&nbsp; You will be in a team which would consist of several coders.&nbsp; Most of us have our own personalities, favorite approaches, opinions and so on.&nbsp; There are going to be conflicts and you will have to deal with it.&nbsp; Conflicts are not necessary bad &#8211; at times it is the best way of solving difficult problems with features or code.&nbsp; Listen, argue if you believe that you are right, but don&#8217;t start getting personal &#8211; keep in mind if the conflict is geared towards solving a coding issue, this is what you want to do.&nbsp; If the conflict is about issues that are on a personal level &#8211; stay out of it.</p>
<p><strong>Learning</strong></p>
<p>The industry is constantly changing, there are new things coming out every day, you should be on top of the things that affect your work.&nbsp; Read blogs, join a social network geared towards developers (dZone comes to mind) get yourself a mentor if you can, trust me, it will pay off.&nbsp; Here is an example from my previous job &#8211; one guy just did not care, he did what he supposed to do, no learning, no progress.&nbsp; The rest of the team would get raises every year, this guy &#8211; well, he did not.&nbsp; Despite the fact that he was there longer then almost everyone else, his pay was the lowest on a team.&nbsp; I was managing the team and tried to convince him that learning is good, he did not respond.&nbsp; At the end of the day, if you will not progress, your financial compensation will not progress either.</p>
<p>I must admit, that this is not a full list.&nbsp; You could probably come up with lots more, however to me this is what&#8217;s important.&nbsp; I would love to hear from you on what you consider vital.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paul-zubkov.com/2009/08/04/what-recent-computer-science-graduate-should-know/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Distraction free development department.</title>
		<link>http://www.paul-zubkov.com/2009/07/06/distraction-free-development-department/</link>
		<comments>http://www.paul-zubkov.com/2009/07/06/distraction-free-development-department/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 15:25:59 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[managing]]></category>

		<guid isPermaLink="false">http://www.paul-zubkov.com/?p=129</guid>
		<description><![CDATA[
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 [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-233" title="keybord" src="http://www.paul-zubkov.com/wp-content/uploads/2009/07/keybord.jpg" alt="keybord" width="266" height="200" /></p>
<p>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 &#8220;You guys are not doing anything, right?&#8221;.  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: &#8220;It is not going to take long, could you just do this for me right now&#8221;.  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.</p>
<p>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 &#8220;Away&#8221; 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.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>The point is &#8211; developers can&#8217;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.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paul-zubkov.com/2009/07/06/distraction-free-development-department/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Project management made simple.</title>
		<link>http://www.paul-zubkov.com/2009/03/05/project-management-made-simple/</link>
		<comments>http://www.paul-zubkov.com/2009/03/05/project-management-made-simple/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 18:18:34 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[managing]]></category>

		<guid isPermaLink="false">http://www.paul-zubkov.com/?p=155</guid>
		<description><![CDATA[
As much as I don&#8217;t like freelanceswitch.com or other similar sites aimed at converting everyone and their uncle to the holy new way of life &#8211;  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 [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-156 alignnone" title="planning" src="http://www.paul-zubkov.com/wp-content/uploads/2009/03/planning.jpg" alt="" height="225" /></p>
<p style="margin-bottom: 0in;">As much as I don&#8217;t like <a href="freelanceswitch.com" target="_blank">freelanceswitch.com</a> or other similar sites aimed at converting everyone and their uncle to the holy new way of life &#8211;  freelance work, there was an excellent article by <a href="http://www.zenhabits.net/" target="_blank">Leo Babauta</a> of <a href="http://www.zenhabits.net/" target="_blank">zenhabits.com</a> 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 <a href="http://www.zenhabits.net/" target="_blank">zenhabits.com</a>, it&#8217;s good for you.</p>
<p style="margin-bottom: 0in;">Usually when you read about project management, and you should &#8211; 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.</p>
<p style="margin-bottom: 0in;">Leo&#8217;s idea is simple:</p>
<ul>
<li>
<p style="margin-bottom: 0in;">Define outcome</p>
</li>
<li>
<p style="margin-bottom: 0in;">Setup process</p>
</li>
<li>
<p style="margin-bottom: 0in;">Focus on the next action</p>
</li>
<li>
<p style="margin-bottom: 0in;">Send it to the client</p>
</li>
<li>
<p style="margin-bottom: 0in;">Communicate</p>
</li>
<li>
<p style="margin-bottom: 0in;">Focus on the next action</p>
</li>
<li>
<p style="margin-bottom: 0in;">Repeat until done.</p>
</li>
</ul>
<p style="margin-bottom: 0in;">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&#8217;s you decide how to do this in your particular situation.</p>
<p style="margin-bottom: 0in;">I would really recommend <a href="http://www.zenhabits.net/" target="_blank">Leo and his blog</a> for everyone who is serious about his development not only as a IT pro, but as a human being.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paul-zubkov.com/2009/03/05/project-management-made-simple/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bad code, we all do it.</title>
		<link>http://www.paul-zubkov.com/2009/01/27/bad-code-we-all-do-it/</link>
		<comments>http://www.paul-zubkov.com/2009/01/27/bad-code-we-all-do-it/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 18:59:43 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[managing]]></category>

		<guid isPermaLink="false">http://www.paul-zubkov.com/?p=147</guid>
		<description><![CDATA[
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. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-148" title="978868_166628661" src="http://www.paul-zubkov.com/wp-content/uploads/2009/01/978868_166628661.jpg" alt="978868_166628661" width="300" height="225" /></p>
<p>Bad code we all do it.</p>
<p>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.</p>
<p>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.  <span id="more-147"></span>My team consists of 4 coders; two of them were with the company for about 3 years, 1 for about a year and one guy just started in September.  So instead of hiding it or quietly rewriting it, I gave my guys the printout and asked them to find mistakes in the class.  By the way, the comments that contained the name of the author were not printed.</p>
<p>“Who wrote this crap?” this was the first thing I heard.  Then in a typical spirit of our development team there were suggestions on what should be done to the author.  And finally there were suggestions, many suggestions.  Some of those were good, some were pointless and some were plainly wrong but one thing stood out for me – we all came up with different things to solve the same problem.  At the end the class was rewritten and suggestions from the rest of the team were used.  After it was done, there was a noticeable performance improvement.  Let’s say file X would take Y seconds to run through the original class, after the changes the same file X would take Y/3 seconds.  I am talking approximate timing, never actually forced any performance testing.  Oh yeah, at the end of it I told everyone who was the author.  That did create some awkward silence for a minute or two.</p>
<p>Why did I do it – I was quite capable of doing the work myself.  As a team lead, it might be a good idea to hide my own faulty code to keep my image, but instead I did the opposite.  I choose to do this for several reasons:</p>
<ul>
<li>We are all stressed out, the project we are on.  We all needed a break from it.  This injection of new problem did wonders for the main project.</li>
<li>I don’t really care about my image, in fact, I would prefer them not to think that I am incapable of making mistakes and can’t be considered a final authority.  I wanted them to find their own solutions.</li>
<li>We all contributed and the result was truly a collaborative effort.</li>
<li>It was clear that we all have different approaches to the same solution.</li>
</ul>
<p>The whole experience was good.  Bad code is unavoidable, but if you learn from it, it was not just a bad code it was a learning experience.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paul-zubkov.com/2009/01/27/bad-code-we-all-do-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fight or Flight &#8211; it&#8217;s a no brainer, FIGHT!</title>
		<link>http://www.paul-zubkov.com/2008/10/31/fight-or-flight-its-a-no-brainer-fight/</link>
		<comments>http://www.paul-zubkov.com/2008/10/31/fight-or-flight-its-a-no-brainer-fight/#comments</comments>
		<pubDate>Sat, 01 Nov 2008 05:51:29 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Management]]></category>

		<guid isPermaLink="false">http://www.paul-zubkov.com/?p=99</guid>
		<description><![CDATA[
Couple of days ago I wrote this.  I was trying to look at my career and see what do I really want to do with my life.  I know, the thing with management might look like a good idea, but after all, I am a coder.  It is not going to be [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.paul-zubkov.com/wp-content/uploads/2008/10/brass_knukles.jpg"><img class="alignnone size-medium wp-image-100" title="brass_knukles" src="http://www.paul-zubkov.com/wp-content/uploads/2008/10/brass_knukles.jpg" alt="" width="300" height="218" /></a></p>
<p>Couple of days ago I wrote <a href="http://www.paul-zubkov.com/?p=92" target="_self">this</a>.  I was trying to look at my career and see what do I really want to do with my life.  I know, the thing with management might look like a good idea, but after all, I am a coder.  It is not going to be easy, but I will get myself back in coding somehow, I guess by delegating some of the less important paperwork and such.  But it looks like this means lots more sleepless nights to get myself back into action.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paul-zubkov.com/2008/10/31/fight-or-flight-its-a-no-brainer-fight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Are changes good for you?</title>
		<link>http://www.paul-zubkov.com/2008/10/30/are-changes-good-for-you/</link>
		<comments>http://www.paul-zubkov.com/2008/10/30/are-changes-good-for-you/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 18:48:41 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[9-5]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[changes]]></category>
		<category><![CDATA[managing]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.paul-zubkov.com/?p=92</guid>
		<description><![CDATA[
I have been told many many times that changes are supposed to be good for you (or me, since it&#8217;s my situation that we are looking into).  I have been a coder for quite some time now.  I can&#8217;t say that I am absolutely ecstatic about programming.  It does not influence my [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.paul-zubkov.com/wp-content/uploads/2008/10/chairs.jpg"><img class="alignnone size-medium wp-image-97" title="chairs" src="http://www.paul-zubkov.com/wp-content/uploads/2008/10/chairs-300x200.jpg" alt="" width="300" height="200" /></a></p>
<p>I have been told many many times that changes are supposed to be good for you (or me, since it&#8217;s my situation that we are looking into).  I have been a coder for quite some time now.  I can&#8217;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&#8217;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&#8217;t wear nerdy t-shirts with BSOD on it.  I am not participating in heated discussions like &#8220;My IDE is bigger then yours!&#8221; and &#8220;My OS can kick your OS&#8217;s butt&#8221; and so on.  I can&#8217;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 &#8211; I have some in development, but as for the other areas I can&#8217;t say that I am properly trained.  Lately something had changed in my work &#8211; I am doing more managerial things then coding.<span id="more-92"></span></p>
<p>When I realized for the first time that this was happening to me, an image of a Pointy Haired Boss came to my mind.  I quickly dismissed it, since I got most of my hair intact and there is no boldness that runs in my family.  But I assured myself that I will keep on coding despite the changes.  It becomes more and more difficult with every day.  I still see a lot of code written by the developers on my team, I get to answer whole bunch of questions from developers as to how should they proceed with their task.  At times it makes me want to ask them if google is down, but that&#8217;s not the point.  Even when I get a chance to code, I have to give projects that interests me to some other people.  These projects are more complex, take more time and require full concentration, and simply put, I can&#8217;t guarantee that I will be able to give these thing time and effort they deserve.</p>
<p>I&#8217;ve tried coding for myself &#8211; invent some little projects and making them happen &#8211; these things simply don&#8217;t work for me.  I guess there is no pressure, no drive and ultimately no purpose other then to stay afloat.  I still read about programming and related fields, and I read a lot, but it will never substitute the real deal &#8211; getting down and writing real life code, with all the stress, cursing, coffee spills and the rest.</p>
<p>To be honest, I miss the programming part of my job, but I still can give an honest question to that answer &#8211; &#8221; Are changes good for you?&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paul-zubkov.com/2008/10/30/are-changes-good-for-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>X amount of things your IT guys wants you to know.</title>
		<link>http://www.paul-zubkov.com/2008/10/24/x-amount-of-things-your-it-guys-wants-you-to-know/</link>
		<comments>http://www.paul-zubkov.com/2008/10/24/x-amount-of-things-your-it-guys-wants-you-to-know/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 02:45:31 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Management]]></category>

		<guid isPermaLink="false">http://www.paul-zubkov.com/?p=84</guid>
		<description><![CDATA[
There is something special about the lists.  Lists are easy, visually appealing and short, which makes them absolutely favorite format to write blog posts in.  When you are reading a popular blog of some sort, you would notice that most of the posts are actually lists.  The headlines basically write themselves &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.paul-zubkov.com/wp-content/uploads/2008/10/list11.jpg"><img class="alignnone size-medium wp-image-87" title="list11" src="http://www.paul-zubkov.com/wp-content/uploads/2008/10/list11.jpg" alt="" width="250" height="141" /></a></p>
<p>There is something special about the lists.  Lists are easy, visually appealing and short, which makes them absolutely favorite format to write blog posts in.  When you are reading a popular blog of some sort, you would notice that most of the posts are actually lists.  The headlines basically write themselves &#8211; X (usually a nice number like 10) things that blah.  Users love those because they are basically a Reader&#8217;s Digest version of whatever the writer was trying to say, and lets face it, even if you would never admit to reading Reader&#8217;s Digest to anyone, fist thing you&#8217;d grab in a waiting room of your dentists office would be this regurgitated portion of news, events and literature to help you pass time.  Hey, I am the same way, at times I would have Sports Illustrated to hide Readers Digest, just to maintain my manly image.</p>
<p>So the lists, summaries and so on dominate blogosphere, so what?  What really gets me is that obligatory post that every blogger must write X things your &#8220;insert your profession&#8221; guy/girl/person wants you to know/do/act.  Worst of all are developers/coders/admins and all other IT people write.  I know your job is tough, you are dealing with issues that other people can&#8217;t or won&#8217;t understand, but for the love of all that&#8217;s holly, get off your high horse and face reality.  You and I are rarely people who are center of the universe.  We are liabilities, not assets.  We can be compared by the crew that runs lunch rooms &#8211; we are there to serve people &#8211; be it clients that purchase your software, annoying guy from AP or a secretary who can&#8217;t manage simple task of writing a document to a flash drive.  Our clients are people who make money, they do pay our bills.  I am coding a software that automates report generation &#8211; well guess what &#8211; people who use my software make money for their companies.  If you are coding an accounting software &#8211; accountants are making money.  We, on the other hand cost money.  We want the best hardware and software available.  We want newest and best gadgets out there, we want free coffee and shorter working hours.  I know, I get it, I am the same way.  But what gets me is posts <a href="http://www.javameblog.com/2007/08/10-things-your-it-guy-wants-you-to-know.html" target="_blank">like this one</a>.</p>
<p>I mean come on, just treat people with respect.  Get back to them quickly, speak their language, don&#8217;t act all high and mighty in front of the users, and what&#8217;s more important to me personally &#8211; users pay your bills &#8211; listen to them.  Don&#8217;t tell them what they need, listen to what they are asking you for and make it better.  That&#8217;s how you run an efficient IT department and maybe even make a friend or two who is not an IT person.</p>
<p>Would like to hear your opinion on this.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paul-zubkov.com/2008/10/24/x-amount-of-things-your-it-guys-wants-you-to-know/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Great video &#8211; David Heinemeier on Startups</title>
		<link>http://www.paul-zubkov.com/2008/09/29/great-video-david-heinemeier-on-startups/</link>
		<comments>http://www.paul-zubkov.com/2008/09/29/great-video-david-heinemeier-on-startups/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 15:59:21 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[startups]]></category>

		<guid isPermaLink="false">http://www.paul-zubkov.com/?p=65</guid>
		<description><![CDATA[This video has  has nothitng to do with programming but you should still watch it.  It seems like everyone and their uncle are dreaming about getting a start-up going and then quickly getting bought by one of the giants out there.  How about developing a good quality product, get users and work [...]]]></description>
			<content:encoded><![CDATA[<p>This video has  has nothitng to do with programming but you should still watch it.  It seems like everyone and their uncle are dreaming about getting a start-up going and then quickly getting bought by one of the giants out there.  How about developing a good quality product, get users and work on perfecting your project? </p>
<p>I am really impressed and inspired, I know the video has been out there for a while, I still like the philosophy behind it.<br />
<span id="more-65"></span></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="520" height="276" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="bgcolor" value="#FFFFFF" /><param name="quality" value="high" /><param name="allowscriptaccess" value="always" /><param name="allowfullscreen" value="true" /><param name="src" value="http://www.omnisio.com/bin/Embed.swf?embedID=bOHylyJEar3yZiadbiFy2w" /><embed type="application/x-shockwave-flash" width="520" height="276" src="http://www.omnisio.com/bin/Embed.swf?embedID=bOHylyJEar3yZiadbiFy2w" allowfullscreen="true" allowscriptaccess="always" quality="high" bgcolor="#FFFFFF"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.paul-zubkov.com/2008/09/29/great-video-david-heinemeier-on-startups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pre-release mayhem &#8211; some things never change</title>
		<link>http://www.paul-zubkov.com/2008/09/26/pre-release-mayhem-some-things-never-change/</link>
		<comments>http://www.paul-zubkov.com/2008/09/26/pre-release-mayhem-some-things-never-change/#comments</comments>
		<pubDate>Sat, 27 Sep 2008 01:42:20 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[9-5]]></category>
		<category><![CDATA[Management]]></category>

		<guid isPermaLink="false">http://www.paul-zubkov.com/?p=53</guid>
		<description><![CDATA[For last six month my guys and I have been under extreme pressure.  You see, in the ideal world, sales have no control over development, but this is a real world so sales objective is driving us completely mad.  There is a potential client, a very demanding potential client who blackmails us with stuff like [...]]]></description>
			<content:encoded><![CDATA[<p>For last six month my guys and I have been under extreme pressure.  You see, in the ideal world, sales have no control over development, but this is a real world so sales objective is driving us completely mad.  There is a potential client, a very demanding potential client who blackmails us with stuff like &#8220;If you not going to build feature x by date y I am not signing&#8221;.  Unfortunately this is the biggest contract for us, so sales will do everything in their power to get them.  It&#8217;s not that I mind sales guys doing their jobs, but if this client is demanding right now and they have not paid yet, I can only imagine what will be unleashed upon us once they will become our paying customer.</p>
<p>Granted the product is very expensive (more expensive then VS 2008 and Adobe CS3 suite combined) and this sometimes can inspire our clients to demand stuff.  We&#8217;ve been through this before.  A company that shell remain nameless was bossing us around for six month.  We only worked on their features, nobody else wanted these things and at the end of six month they said, &#8220;You know, this is what we said we need, but not what we actually need&#8221;.  I can still remember that conversation.  Incidentally this is the time when my first &#8220;Punch Box&#8221; appeared at the office; since then we went though a number of  &#8220;Punch Boxes&#8221; and that was the end of that.</p>
<p>Three times in the last 4 years we went through similar situations, and we have yet secure a contract when too much custom stuff is put in and we basically keep on asking &#8220;How high&#8221;.  This is the fourth time.</p>
<p>We have to release a newest version on Tuesday, Sept 30, so everyone is up to their necks in testing and bug fixing when all of a sudden &#8220;dll hell&#8221; makes appearance.  Everyone who coded for Windows knows what I am talking about &#8211; one guy decides to mess around with perfectly good reference and all hell breaks loose.  Today its Microsoft.Office.Core.  Nobody can compile, nothing runs, and we can&#8217;t roll back.  Unfortunately we have to rely on external references such as Office.Core, because the app produces Excel and PowerPoint documents, we reference other things too, but it seems to me that whenever we are running into DLL Hell it always have something to do with a dll from Microsoft.  This is going to be a long weekend, just me, five guys, IDE and references.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paul-zubkov.com/2008/09/26/pre-release-mayhem-some-things-never-change/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
