<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Work Related</title>
        <link>http://www.sharpdeveloper.net/content/category/12.aspx</link>
        <description>This includes articles regarding your job and how to be a better employee.</description>
        <language>en-US</language>
        <copyright>Sameer Alibhai</copyright>
        <managingEditor>abdullah.adam@gmail.com</managingEditor>
        <generator>Subtext Version 1.9.5.176</generator>
        <item>
            <title>Follow The Leader</title>
            <link>http://sharpdeveloper.net/content/archive/2008/07/17/follow-the-leader.aspx</link>
            <description>&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;In order to succeed as a team, in any sort of team, you have to follow this basic principle, which has been applied and maybe is accepted universally.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;The principle is simple. &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;ol style="MARGIN-TOP: 0in" type="1"&gt;
    &lt;li style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Appoint a Leader&lt;/span&gt; &lt;/li&gt;
    &lt;li style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Leader makes council with the team&lt;/span&gt; &lt;/li&gt;
    &lt;li style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Leader makes a decision&lt;/span&gt; &lt;/li&gt;
    &lt;li style="MARGIN: 0in 0in 0pt"&gt;Team supports leader in his or her decision &lt;/li&gt;
&lt;/ol&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Its that simple. In this way, an organization, a team, a family, or a company can move forward. Every decision that you need to make, is done in this manner. The team will work together for the best solution, but in the end the leader needs to make a decision. Once that leader makes a decision, the team needs to move forward WITH the leader. &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;br /&gt;
This means, the leader doesn’t necessarily dictate, but he or she has gathered input from the team and made a decision. Then they will have to choose a solution and go with it. If the team continues to argue and fight over the decision, progress will be slow. I believe this applies in families too. There has to be a decision maker in the family, for example that is appointed for financial decisions, and then having a discussion or gathering input from the family is great, but in the end one person has to make the decision, and the family needs to be supportive, &lt;strong&gt;even if they don’t all agree with it&lt;/strong&gt;. However, this applies in normal circumstances and there are caveats.   There might be some cases where it would be unethical for team members to support a plan if its morally wrong or it goes against everything inside them and they feel it’s a plan headed for disaster.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;It pains me that time and time again I see this happen – the leader makes a decision and the team continues to question him at every step of the way – “Why are we doing this”, “Why are we doing this”, and “why are we doing this” instead of understanding that they were appointed for this role (they might be your boss for example) and they are ultimately responsible for the decision, you need to do your job and support them.  I have seen some cases where I questioned my manager because I didn't see the wisdom in the decision he made, but in the end it turned out he was right and it was just my foresight wasn't as far as his...  So I learned my lesson, be patient, and be a team player.  &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;br /&gt;
As a team member, sometimes I have to swallow my feelings and say, “okay I don’t think this is the smartest decision and my idea is actually better, but I will go with you on this”.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;From a developers perspective, you can think of this as &lt;strong&gt;requirements.&lt;/strong&gt; Your boss gives you the requirements, you implement it. How you implement is up to you, but you won’t be able to proceed if you start arguing about the requirements. Requirements are requirements, once they are agreed upon, please continue.&lt;/span&gt;&lt;/div&gt;
&lt;span style="FONT-SIZE: 10pt"&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;br /&gt;
So in normal circumstances, if you want to succeed, get a leader, and help him with his decisions, but in the end.. Respect the decision he makes and go with it. (He or she, that is).&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;em&gt;The best team isn't necessarily the one with the best players, it's the one that plays together the best.  &lt;/em&gt;&lt;/div&gt;
&lt;/span&gt;&lt;img src="http://sharpdeveloper.net/content/aggbug/72.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Sameer Alibhai</dc:creator>
            <guid>http://sharpdeveloper.net/content/archive/2008/07/17/follow-the-leader.aspx</guid>
            <pubDate>Thu, 17 Jul 2008 22:40:22 GMT</pubDate>
            <wfw:comment>http://sharpdeveloper.net/content/comments/72.aspx</wfw:comment>
            <comments>http://sharpdeveloper.net/content/archive/2008/07/17/follow-the-leader.aspx#feedback</comments>
            <wfw:commentRss>http://sharpdeveloper.net/content/comments/commentRss/72.aspx</wfw:commentRss>
        </item>
        <item>
            <title>How to Waste Millions Of Dollars With Outsourcing (or Make Millions)</title>
            <link>http://sharpdeveloper.net/content/archive/2008/07/10/how-to-lose-millions-with-outsourcing-or-make-millions.aspx</link>
            <description>&lt;style type="text/css"&gt;&lt;![CDATA[
 ol.c5 {margin-top: 0in;}
 span.c4 {font-weight: bold; font-size: 10pt;}
 span.c3 {font-size: 80%}
 p.c2 {font-size: 80%}
 span.c1 {font-size: 10pt;}
]]&gt;&lt;/style&gt;
&lt;p class="c2"&gt;&lt;span class="c1"&gt;To management, the idea of outsourcing sounds very sexy.... The idea of producing the same content (code, or what not) at 1/2 or 1/3&lt;sup&gt;rd&lt;/sup&gt; the cost is almost a wet dream for management, if I may be so bold. Even though it sounds great in theory, it's actually a very tricky function to master. Here are some things I have learned with my outsourcing experience.&lt;/span&gt;&lt;/p&gt;
&lt;p class="c2"&gt;&lt;span class="c1"&gt;Keep in mind I am not discussing the outsourcing style of passing requirements and getting the end product complete. I am discussing the style of hiring outsiders and working with them on a daily basis.&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p class="c2"&gt;&lt;span class="c1"&gt;You have to start by looking at what is the purpose of outsourcing. Is it to save money? Or is it to improve quality? Or is it so that your team can focus on other things? Get this straight first before going any further. My points below are in the context that you are a software company (or at least do some software development) and you are considering outsourcing to save money and cut costs.&lt;/span&gt;&lt;/p&gt;
&lt;p class="c2"&gt;&lt;span class="c1"&gt;From friends, I know that some very popular companies outsource, such as E-Trade Canada, Accenture, and recently the new online T.V. web site Hulu which outsourced its development to China.&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;ol type="1" class="c5"&gt;
    &lt;li&gt;&lt;span class="c3"&gt;&lt;span class="c1"&gt;Before you start outsourcing, have your process solid - i.e. have regular scrum, know how much code you are generating each week, and so on. It's very important that you have some idea of costs for developing software for your local team. If you have no idea, you won't be able to see if you are really saving money or wasting it.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span class="c3"&gt;&lt;span class="c1"&gt;Know velocities of individual team members so you can measure cost effectiveness of your outsourced work.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span class="c3"&gt;&lt;span class="c1"&gt;&lt;a five-points-to-improve-your-estimation.aspx="" archive="" content="" sharpdeveloper.net="" http:="" href="http://sharpdeveloper.net/content/archive/2008/03/28/five-points-to-improve-your-estimation.aspx"&gt; Build your estimation skills&lt;/a&gt;. Read Joel's &lt;a fog0000000245.html="" articles="" www.joelonsoftware.com="" http:="" href="http://www.joelonsoftware.com/articles/fog0000000245.html"&gt;article on estimation&lt;/a&gt; and his &lt;a items="" www.joelonsoftware.com="" http:="" href="http://www.joelonsoftware.com/items/2007/10/26.html"&gt;second article on estimation&lt;/a&gt; (which is really a promo for his bug tracking software but still worth reading) and Steve McConnell's book on Software Estimation (highly recommended, very easy to understand).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;&lt;span class="c3"&gt;&lt;span class="c4"&gt;Get smart/able/competent guys.&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt; &lt;span class="c3"&gt;&lt;span class="c1"&gt;This can make or break your outsourcing project. If you are going to get developers that need baby sitting, then hire a baby sitter on their end to clean up their code, otherwise you are going to waste your valuable resources fixing and re-fixing and re-fixing their code. In this case you might not be actually saving money.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span class="c3"&gt;&lt;span class="c1"&gt;Review their code. Someone on your side is going to have to review their code to make sure that they aren't purposely obfuscating it in order to secure their jobs in the future. I have seen a Flash application that was built in this manner, the team overseas purposely messed up the code in such a way that it would be difficult for others to continue where they left off.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span class="c3"&gt;&lt;span class="c1"&gt;Learn from those who have done it before. If not, you are going to mess up big time, in many ways. Might be worth getting a consultant who has been successful with such projects. Another idea is to find someone who has connections "back home", and go there to see how some of the shops work.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span class="c3"&gt;&lt;span class="c1"&gt;Turnover is really high in India/Bangladesh/ and so on. This is because jobs start at really low salaries (like $200 a month) and go upwards to like $3000 a month (comparable to working in Canada or USA). You will need to find a way to solve this problem. Somehow you will need to get them to commit that guys will not drop like flies. This is so important because there is always an upfront cost to learn an application, and it becomes more as the complexity and lines of code increase.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span class="c3"&gt;&lt;span class="c1"&gt;Consider a cross-cultural learning program, you send some people there for a while, they come over here for a while. A lot of big companies do this. It's almost a must.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span class="c3"&gt;&lt;span class="c1"&gt;For the team overseas, its important to spend your valuable time together in the beginning to ask lots of questions and understand the requirements as much as possible, in case there is a task that you run into questions, then leave it and work on something else.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="c2"&gt;&lt;span class="c1"&gt;Hamid, Axosoft CEO claims that &lt;a outsourcing-is-for-dummies="" shipsoftwareontime.com="" http:="" href="http://shipsoftwareontime.com/2007/12/03/outsourcing-is-for-dummies/"&gt;Outsourcing is for Dummies&lt;/a&gt;. I think this isn't true in all cases, as I have been able to apply outsourcing successfully on some small projects. However, it all depends on the case, and for building complicated software with a (geographically) fragmented team, you may just end up proving his point.&lt;/span&gt;&lt;/p&gt;&lt;img src="http://sharpdeveloper.net/content/aggbug/71.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Sameer Alibhai</dc:creator>
            <guid>http://sharpdeveloper.net/content/archive/2008/07/10/how-to-lose-millions-with-outsourcing-or-make-millions.aspx</guid>
            <pubDate>Thu, 10 Jul 2008 22:14:17 GMT</pubDate>
            <wfw:comment>http://sharpdeveloper.net/content/comments/71.aspx</wfw:comment>
            <comments>http://sharpdeveloper.net/content/archive/2008/07/10/how-to-lose-millions-with-outsourcing-or-make-millions.aspx#feedback</comments>
            <wfw:commentRss>http://sharpdeveloper.net/content/comments/commentRss/71.aspx</wfw:commentRss>
        </item>
        <item>
            <title>PHP VS. ASP.NET</title>
            <link>http://sharpdeveloper.net/content/archive/2008/05/08/php-vs.-asp.net.aspx</link>
            <description>&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;This is a very shallow comparison of my experiences with PHP and ASP.NET&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Don’t take this as a religious war or something, the idea is just some basic comparison.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Here is a summary: If you are choosing which technology to use to build an application, use .NET. You will get more bang for the buck. With the same effort you will be able to build a much more rich user interface. &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;My Disclaimer: Keep in mind there are a lot of great libraries and tools for PHP which I never got to use, I just had a simple PSPad text editor and my handy PHP web site.  I really wanted some “Intellisense” style code completion but I could not get it to work with PHP since I couldn’t find a decent IDE (i.e. editor)&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;However, it all depends on your requirements. For example, if you are selling something that most of your customers will be on a shared linux hosting environment, then why would you use .NET ? A good example is the software Clipshare, which is a clone of Youtube. The sites purchasing this product are mainly shared hosting customers who have PHP but not .NET. And Mono (.NET port on Linux) is not yet stable or popular enough to use.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;I did some PHP programming before I started doing .NET fulltime. Before then I couldn’t say much about it, but after working with .NET for a few years now, I have much to say.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;.NET does a very good job in handling the whole life cycle. With PHP you have to do it manually.   For example, there is no such concept of “Postback” with PHP. This is such a basic thing that you can easily check with .NET to see if the page has been submitted and what button was pressed. For example if your “btnSubmit” was pressed, it will call btnSubmit_Click. With PHP, you have to do this manually. Not to mention how mish mashed your PHP page can be in terms of mixed code and style/HTML elements.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;br /&gt;
How about caching? I wanted to implement caching with PHP and I had a fun time, I had to check if the cached output file existed, and then if so, then check how old it is, and so on... Yeah okay again maybe there are some nice components already done for this, but I didn’t have to look very hard to do it with .NET, I simply added a CacheDependency on an XML file (or whatever the case was), and BOOM! It regenerated the file whenever necessary.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;How about reusable components? With .NET you can create ASCX (Custom Controls) that you can place within a page that expose certain properties and the control itself maintains its state, can have buttons, etc, etc.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;br /&gt;
How about master pages (i.e. templates) in .NET? Again, super cool reusability! You can create pages with repeatable parts, with headers, footers, all sorts of fun stuff.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;br /&gt;
I can go on and on...  but in general, the more I use .NET, the more impressed I am with it. However, what makes it not-so-practical is how expensive Windows Server hosting is.  In summary .NET kicks butt!&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;&lt;img src="http://sharpdeveloper.net/content/aggbug/66.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Sameer Alibhai</dc:creator>
            <guid>http://sharpdeveloper.net/content/archive/2008/05/08/php-vs.-asp.net.aspx</guid>
            <pubDate>Thu, 08 May 2008 21:42:05 GMT</pubDate>
            <wfw:comment>http://sharpdeveloper.net/content/comments/66.aspx</wfw:comment>
            <comments>http://sharpdeveloper.net/content/archive/2008/05/08/php-vs.-asp.net.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://sharpdeveloper.net/content/comments/commentRss/66.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Unit test your life!</title>
            <link>http://sharpdeveloper.net/content/archive/2008/04/29/unit-test-your-life.aspx</link>
            <description>&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;If you are not unit testing your code, chances are you are not unit testing &lt;strong&gt;in your life.&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;If you aren’t unit testing, START now! At the very least, do some “manual” unit testing in your code. How can you do this? Well, try running your code on a very basic case. Then try a bit more complicated case. Then another, then another. If you are smart, you are saving these cases using a testing framework like NUnit. If not, well at least you can have some confidence when your manager comes that you tried it comprehensively and that it’s not going to crash on you while you are showing it to him, or even worse, in a demo to the team or to your big boss.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;I recently ran into some &lt;strong&gt;problems&lt;/strong&gt; in my life which I managed to solve amazingly well by doing “unit testing”...&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;First problem, my DVD burner was going awfully slow. I had some complex and messy setup including an external IDE card, two burners, two hard drives, and all I know is that at some point in time something went wrong and it started going &lt;em&gt;really slow&lt;/em&gt;. What I don’t know, is how it happened.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;br /&gt;
Second problem, I was doing some video encoding/rendering, and for some reason it was doing something bizarre and the application VirtualDub kept looping over and over and would never end encoding the file. Again, I don’t know what happened.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;br /&gt;
How did I solve these problems?&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;font size="5"&gt;UNIT TESTING!!&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;For the first problem of the DVD drive. I removed everything from my PC and set up a very basic system which included 1 HD, 1 Burner, etc..   Then when I found this wasn’t working, a quick check online and I resolved the issue which was incorrect DMA settings. It was trying to send all the data through the CPU (PIO mode) instead of directly to the burners, which was causing a massive slowdown. Once this worked, I quickly put together my system again, and checked each case (HD on same IDE channel as Burner, on separate IDE channel, and so on). &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;br /&gt;
With the encoding problem, again, I was very confused, but by unit testing the situation, I was able to resolve it. How did I do that? I tried encoding on a different machine, reinstalled the software, etc, etc, and it was still having problems.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;And finally when I started from scratch, I removed the batch encoding, I removed the DiVX processing, and so on, and then made each test pass. Once the test passed, I added another level of complexity, until finally I figured out that VirtualDub was looping infinitely because I had the “segment AVI file” option enabled. I don’t know why this was the problem, but by &lt;strong&gt;unit testing&lt;/strong&gt;, I was able to resolve it.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;br /&gt;
Lesson to learn? Unit testing (if you can call it that) can really help you solve such issues. Start from the base case, and slowly work back towards what you need. After each case, write down the results.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;br /&gt;
Microsoft felt strongly enough about Unit Testing that &lt;a href="http://haacked.com/archive/2008/02/12/asp.net-mvc-update.aspx"&gt;Visual Studio 2008 has &lt;strong&gt;built in&lt;/strong&gt; unit testing&lt;/a&gt; (Wahoo!). As well, it integrates nicely even with NUnit or MbUnit (Don’t ask me how, though). &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;&lt;img src="http://sharpdeveloper.net/content/aggbug/63.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Sameer Alibhai</dc:creator>
            <guid>http://sharpdeveloper.net/content/archive/2008/04/29/unit-test-your-life.aspx</guid>
            <pubDate>Tue, 29 Apr 2008 23:25:53 GMT</pubDate>
            <wfw:comment>http://sharpdeveloper.net/content/comments/63.aspx</wfw:comment>
            <comments>http://sharpdeveloper.net/content/archive/2008/04/29/unit-test-your-life.aspx#feedback</comments>
            <wfw:commentRss>http://sharpdeveloper.net/content/comments/commentRss/63.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Five Points To Improve Your Estimation</title>
            <link>http://sharpdeveloper.net/content/archive/2008/03/28/five-points-to-improve-your-estimation.aspx</link>
            <description>&lt;div&gt;
&lt;div&gt;&lt;font size="2"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Software Estimation is tricky business.  You are often confronted with complicated technical (or even non-technical) work and asked “how long will it take?” on the spot.  You are given fuzzy requirements (or no requirements) with ambiguous definitions and have to work with a code base that is best described as “chaos”.  How can you give an accurate estimate with such a difficult environment?  &lt;br /&gt;
&lt;br /&gt;
I recently read an excellent book called “&lt;a href="http://www.amazon.com/exec/obidos/ISBN=0735605351/csharpfriends-20"&gt;Software Estimation: Demystifying The Black Art&lt;/a&gt;"&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Here are some amazing points that you can use.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in"&gt;&lt;font size="2"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;1)&lt;font size="1"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;We should not be pressured to reduce our estimates.  Stick to your estimates – whatever they are.  If management wants to reduce them, that’s fine, but stick to whatever you put in the first place.  Managers trying to reduce estimates is a very silly thing to do, because by looking at the track record of our software industry, you will find that we consistently underestimate, not overestimate!  So if you are pressuring your developers to reduce the estimate, you are asking for trouble.  Better thing to do would be to see if the estimate is well founded, based on task level estimates, or is the estimate based on unjustifiable assumptions, etc.  &lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in"&gt;&lt;font size="2"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;2)&lt;font size="1"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Underestimating is &lt;strong&gt;&lt;span style="FONT-WEIGHT: bold"&gt;MORE expensive&lt;/span&gt;&lt;/strong&gt; than overestimating.  So if you cannot estimate accurately, lean towards overestimating.  Underestimating has an exponential additional cost, whereas overestimating has a potential of a linear extra cost due to Parkinson’s law.  This is because underestimating results in lots of other problems such as having extra meetings to justify why you are behind schedule, having extra meetings to decide which features to cut, added stress on developers trying to meet tight deadlines, code having less quality in order to ‘just finish it’ so that developers can go home, having customers get angry at not-ready releases, having other teams who are waiting for the code to slip their schedules too, etc..  If you overestimate, then Parkinson’s law can kick in and developers will ‘fill in the empty time’, or as they say ‘work expands to fill the available time’&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in"&gt;&lt;font size="2"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;3)&lt;font size="1"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Task level estimates are best done by the developer who will be doing the work.  A task level estimate is defined as a low level estimate for a particular item of work.  For example, for building a workflow engine, a task level estimate is “2 hours to add the save button that will commit the changes to the database”.&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in"&gt;&lt;font size="2"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;4)&lt;font size="1"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;With small teams (say under 5 people), estimates are most accurate when done bottom-up (i.e. from the developers).  What this means is your complicated formulas for estimation are not so helpful in such environments.  &lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in"&gt;&lt;font size="2"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;5)&lt;font size="1"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;There are many other ways to estimate such as ‘estimation by analogy’ (i.e. by looking at a similar project that was built), and so on, but I won’t explain those right now.  The trick in general is to try to quantify as much as possible and leave subjectivity out of the picture.  So if you can find out how similar your project is in terms of number of lines of codes, number of features, etc, you will have a better estimate.  As well, don’t be fooled into thinking that more “estimation knobs” will give you a better result than less “estimation knobs”.  I define an estimation knob as some sort of criteria you are using to estimate, such as “size of team”, “team programmer skills as a percentile of the industry”, “how many burgers they had for lunch”, etc..  It looks like it would give you a better result but in reality the estimate becomes more and more subjective as you add more “knobs” &lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;As well, developers are more likely to try to meet their estimates if they are the ones who gave it, rather than if its dictated to them from above.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;br /&gt;
Lastly, estimation is a skill we can learn and improve over time.  You will find that over the months, your developers will get better at estimating based on past experience.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;In summary, stick to giving your developers clear requirements, lock them down, and then get them to break down the requirements into task items, and then estimate for those task items.  &lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://sharpdeveloper.net/content/aggbug/60.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Sameer Alibhai</dc:creator>
            <guid>http://sharpdeveloper.net/content/archive/2008/03/28/five-points-to-improve-your-estimation.aspx</guid>
            <pubDate>Fri, 28 Mar 2008 12:32:19 GMT</pubDate>
            <wfw:comment>http://sharpdeveloper.net/content/comments/60.aspx</wfw:comment>
            <comments>http://sharpdeveloper.net/content/archive/2008/03/28/five-points-to-improve-your-estimation.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://sharpdeveloper.net/content/comments/commentRss/60.aspx</wfw:commentRss>
        </item>
        <item>
            <title>My experiences with pair programming</title>
            <link>http://sharpdeveloper.net/content/archive/2008/03/19/pair-programming.aspx</link>
            <description>&lt;p&gt;My initial thoughts on pair programming (&lt;a href="http://www.extremeprogramming.org/rules/pair.html"&gt;definition&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Normally at our shop, we don't do pair programming.  Each developer is assigned his or her own tasks and they are responsible for completing them.  If they require assistance of explanation from another developer who is more familiar with that system they need to go and request that assistance on their own.  I believe the vast majority of offices work in this manner.&lt;/p&gt;
&lt;p&gt;However, yesterday we decided to try pair programming.  We have a complicated CRM application where it takes months to learn the application, and the situation is that another fellow who works on the reporting side of things and I worked together to solve a few bugs in the system.&lt;/p&gt;
&lt;p&gt;As we worked together &lt;em&gt;(with a slightly decreased speed than the two of us seperately working)&lt;/em&gt; we managed to eliminate two instances of duplicate SQL code in our application and instead used a view that already existed which I was not aware of.  As well, I am very confident you that this resulted in a &lt;strong&gt;much higher quality of the application&lt;/strong&gt;, even if it took longer.  You are far less likely to end up with bugs when you use pair programming.&lt;/p&gt;
&lt;p&gt;I am still skeptical if it really was slower or not, because when you work on your own, you can get stuck on a particular problem and waste half a day, whereas when the other person knows it, you can immediately solve the problem and move on.  As well, you are less likely to waste time checking the news, weather, etc, because the other person is sitting and working with you.  Also, keep in mind that "task switching is expensive".  When you are working on a piece of code and you are "in the zone" and then you have to stop to assist someone else, this lowers your productivity, whereas when both of you are concentrating on one issue, you don't have this issue.&lt;/p&gt;
&lt;p&gt;Pair programming can also be used to train or "rough in" new employees, and as well it results in increased code awareness (i.e. both of you are trained on the same piece of code, incase one of you quits or is sick, the other person also has a good idea of the code).&lt;/p&gt;
&lt;p&gt;While the jury might still be out on this principle, and maybe its still too "extreme" for most managers to allow it, give it a shot when you have a chance and see how it goes.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://sharpdeveloper.net/content/aggbug/59.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Sameer Alibhai</dc:creator>
            <guid>http://sharpdeveloper.net/content/archive/2008/03/19/pair-programming.aspx</guid>
            <pubDate>Wed, 19 Mar 2008 12:16:06 GMT</pubDate>
            <wfw:comment>http://sharpdeveloper.net/content/comments/59.aspx</wfw:comment>
            <comments>http://sharpdeveloper.net/content/archive/2008/03/19/pair-programming.aspx#feedback</comments>
            <wfw:commentRss>http://sharpdeveloper.net/content/comments/commentRss/59.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Timing is EVERYTHING</title>
            <link>http://sharpdeveloper.net/content/archive/2007/12/23/timing-is-everything.aspx</link>
            <description>Being a person who believes in continual improvement, and being proactive instead of reactive, I suggested to one of my employers that I worked for that we should implement &lt;a href="http://code.google.com/p/elmah/"&gt;ELMAH (Exception Logging For .NET) &lt;/a&gt;to handle our uncaught exceptions.  They weren't too interested when I made the suggestion and so I did not push it.   I had found this gem of code &lt;a href="http://haacked.com/archive/2007/07/24/securely-implement-elmah-for-plug-and-play-error-logging.aspx"&gt;here&lt;/a&gt; because I spend a bit of time each day &lt;a href="http://www.sharpdeveloper.net/content/archive/2007/07/11/what-makes-a-sharp-developer-part-1.aspx"&gt;doing research and improving my skills.&lt;/a&gt; (see point 2)&lt;br /&gt;
&lt;br /&gt;
However, we had this continuing problem where customers would have a problem with the .NET site, maybe they had a crash and we had no way to diagnose the crash other than to remote into their machine and try to reproduce the error.  What made it worse is that they had debug mode off, and we could not even see the exact crash details.  Often we would have to take a risk and modify their file to put debug on (I say take a risk because if you make enough modifications, the application will restart and kick everybody off the system) and this was a live site with real customers.&lt;br /&gt;
&lt;br /&gt;
So once the problem was large enough that it was passed on to the development manager.  When he queried the team for possible solutions to that particular crash, I &lt;span style="font-weight: bold;"&gt;jumped at the opportunity &lt;/span&gt;to suggest ELMAH.  The sale was immediately closed, and within a week we had ELMAH up and running on some of our customers.&lt;br /&gt;
&lt;br /&gt;
Lesson?  Wait for the right time to make your suggestions.  it can be very effective.  Otherwise your advice may be falling on deaf ears.&lt;br /&gt;
&lt;br /&gt;
Also.. this had the same result again when the timing was right we were able to successfully convince our development manager to make the switch from SourceSafe to Subversion.  We had discussed it many times but we had to wait for just the right time and when this time came (since they already knew about it and liked it, but were just waiting for a good time), getting approval from management was easy as pie.&lt;br /&gt;&lt;img src="http://sharpdeveloper.net/content/aggbug/57.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Sameer Alibhai</dc:creator>
            <guid>http://sharpdeveloper.net/content/archive/2007/12/23/timing-is-everything.aspx</guid>
            <pubDate>Sun, 23 Dec 2007 13:18:31 GMT</pubDate>
            <wfw:comment>http://sharpdeveloper.net/content/comments/57.aspx</wfw:comment>
            <comments>http://sharpdeveloper.net/content/archive/2007/12/23/timing-is-everything.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://sharpdeveloper.net/content/comments/commentRss/57.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Understanding Your 10 Days Vacation</title>
            <link>http://sharpdeveloper.net/content/archive/2007/11/12/understanding-your-10-days-vacation.aspx</link>
            <description>&lt;p&gt;This article is based on Canadian vacation laws.&lt;/p&gt;
&lt;p&gt;It seems that most people don't understand that by law we get 4% vacation.  So where does this number of 2 weeks come from?&lt;/p&gt;
&lt;p&gt;Well If you calculate 50 weeks * 4%, you will end up with 2 weeks, what that means is in 1 year, you get 2 weeks paid vacation and 50 weeks of work.  So if your employer prorates your vacation for the first year, meaning that after 3 months they give you 3/12 of 10 days (i.e. 2.5 days or 25% of your total) but you need to take off 2 weeks and they refuse to give it to you, you shouldn't worry about because either it means at the end of the year thats all you took (2.5 days paid), and by law they will pay you for the other 7.5 days or 3.75% of your total salary at the end of the year (or whenever they reconcile their accounts which could be a few months later)&lt;/p&gt;
&lt;p&gt;The other case is that you will still get 7.5 days vacation after those 2.5 paid days, so in that case you didn't lose anything and you ended up getting about 2 weeks extra unpaid vacation.  &lt;/p&gt;
&lt;p&gt;So make a decision, and enjoy your vacation!&lt;/p&gt;&lt;img src="http://sharpdeveloper.net/content/aggbug/55.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Sameer Alibhai</dc:creator>
            <guid>http://sharpdeveloper.net/content/archive/2007/11/12/understanding-your-10-days-vacation.aspx</guid>
            <pubDate>Mon, 12 Nov 2007 12:54:34 GMT</pubDate>
            <wfw:comment>http://sharpdeveloper.net/content/comments/55.aspx</wfw:comment>
            <comments>http://sharpdeveloper.net/content/archive/2007/11/12/understanding-your-10-days-vacation.aspx#feedback</comments>
            <wfw:commentRss>http://sharpdeveloper.net/content/comments/commentRss/55.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Social Engineering And Monkeys</title>
            <link>http://sharpdeveloper.net/content/archive/2007/08/16/social-engineering-and-monkeys.aspx</link>
            <description>Here's how I heard it.  This is an example of social/psychological experimentation and there is something we can learn from it.&lt;br /&gt;
&lt;br /&gt;
Researchers in a lab were carrying out an experiment.  There was a cage with monkeys, and there was bananas at the top of a ladder on a platform.  Every time a monkey tried to climb up the ladder, every monkey in the cage would get shocked (how cruel).  Eventually, if anyone tried to climb up the ladder, all the monkeys would get mad and tackle the monkey down to the floor and beat him up.  Eventually, what they did is they removed 1 of the monkeys, and put a new monkey in the cage.&lt;br /&gt;
&lt;br /&gt;
Obviously, he had no idea what was going on and when he tried to climb up the ladder, the monkeys got mad and beat him up.  And then the researchers continued doing this until not a single monkey was there from the initial experiment (they were all green monkeys).  &lt;br /&gt;
&lt;br /&gt;
Now, if anyone tried to climb up the ladder, they would all beat him up, &lt;span style="font-style: italic;"&gt;yet none of them had a clue why they were doing it......&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes at my job I am reminded of this.  We are doing things which make no sense, and if anyone asks why.... the answer is, well, "&lt;span style="font-weight: bold;"&gt;because that's how we always did it.&lt;/span&gt;"&lt;br /&gt;
&lt;br /&gt;
Bananas anyone?&lt;img src="http://sharpdeveloper.net/content/aggbug/46.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Sameer Alibhai</dc:creator>
            <guid>http://sharpdeveloper.net/content/archive/2007/08/16/social-engineering-and-monkeys.aspx</guid>
            <pubDate>Thu, 16 Aug 2007 18:45:59 GMT</pubDate>
            <wfw:comment>http://sharpdeveloper.net/content/comments/46.aspx</wfw:comment>
            <comments>http://sharpdeveloper.net/content/archive/2007/08/16/social-engineering-and-monkeys.aspx#feedback</comments>
            <wfw:commentRss>http://sharpdeveloper.net/content/comments/commentRss/46.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Are You a Sharp Developer?? (Part 2)</title>
            <link>http://sharpdeveloper.net/content/archive/2007/08/12/are-you-a-sharp-developer-part-2.aspx</link>
            <description>&lt;p&gt;This is the second post in the series "&lt;a href="http://www.sharpdeveloper.net/content/archive/2007/07/11/what-makes-a-sharp-developer-part-1.aspx"&gt;What Makes a Sharp Developer&lt;/a&gt;"&lt;br /&gt;
&lt;strong&gt;The next article in this series will discuss keeping up with the bleeding edge - Visual Studio 2008 (Orcas), Silverlight, .NET 3.5, LINQ, .. and more&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This post will focus on: balanced lifestyle, staying away from drugs, and keeping a healthy balance between learning and working.  Overall this article discusses how you can become a more valuable resource to your team and to your employers.&lt;br /&gt;
 &lt;/p&gt;
&lt;h2&gt; &lt;/h2&gt;
&lt;h2&gt;Lead a Balanced Lifestyle&lt;/h2&gt;
Many of us in the development or business field unfortunately tend to overwork ourselves.  We work late nights at the office surviving on Java alone (caffeine, that is, not Sun Microsystems Java&lt;sup&gt;R&lt;/sup&gt;).  We take our work home in the evenings, or we might be doing stuff on the weekend that is work related so that we have a head start during the week.  I feel this tendency to overwork ourselves is part of our human nature.  We have to protect ourselves against this and yearn to keep a balance.  Although there is some overlap, I like to divide my time into three categories - Work time, Time for God, and Time for my family (don't forget Time for Myself).  The difficult part is keeping the three in balance and perspective.  &lt;br /&gt;
&lt;br /&gt;
If we start doing fifty or sixty hour weeks consistently, our quality of work will definitely go down.  It is unfortunate that some companies do not understand this, and push their developers to work longer and harder despite the fact that inevitably their performance will suffer.  As well if your family life suffers, that will not be good for you at work.  Your wife (or husband) might end up putting extra hot sauce in your sandwich because you didn't spend time with her for the last six weeks and your stomach isn't going to like that.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt; &lt;/h2&gt;
&lt;h2&gt;Stay away from the drugs&lt;/h2&gt;
One of the keys to success is to stay away from drugs.  That includes alcohol, nicotine, and.... that includes caffeine, man (Bummer!).  Actually caffeine is one of my favourite drugs :(.  But keep it in moderation.  If you overdo it, or if you become dependent on caffeine to survive, you are going to be at a weakness to those who can survive without their daily injection.  Also it hides your tiredness, especially if you start to use it regularly even when you aren't working, you might not realize just how tired you are.  If you notice you are coming home with bad headaches, or are feeling dizzy or other strange things are happening, THOSE ARE NOT A GOOD SIGNS.&lt;br /&gt;
&lt;h2&gt; &lt;/h2&gt;
&lt;h2&gt;A balance between working and learning&lt;/h2&gt;
This one is a tricky one.  It depends a lot on your work environment and how tight your deadlines are.  I am suggesting that you make sure that no matter what, each day you learn something new.  Do not spend so much time on your task so that you are completing it as fast as possible without taking the time to investigate or find better solutions.  Don't assume that just because you did this four times before, that the fifth time you should do the same thing.  It could be possible that you did it a silly way four times and you are just going to make it the fifth now!  There have been so many cases where I have been repeating my same noobness (i.e. lack of expertise) by declaring my SQL parameters as an ArrayList for example, whereas I could do it without the additional memory overhead and then conversion into an array by &lt;a href="http://sharpdeveloper.net/content/archive/2007/05/25/creating-sqlparameters-best-practices.aspx"&gt;declaring my SQLParameters directly into an array&lt;/a&gt; with the exact size I need!  Sometimes employees think that they are not doing their company a favour if they "waste" time reading stuff like this.  &lt;br /&gt;
&lt;br /&gt;
Infact, I beg to differ!!  On the contrary, you will be a MUCH more valuable employee if you insist on taking the time to learn things.  An employee who consistently learns is the last one to get fired, whereas the old dog who can't learn new tricks is going to be the first one to have to sleep outside (so to speak).  Please, this is so important.  If your boss doesn't give you time for this, either get a new job, or work late so that you can spend an hour a day on this.  As well, this will give you a bit of job security incase you end up being the one who is laid off, because you have been keeping up with the improvements and constantly &lt;span style="FONT-WEIGHT: bold"&gt;sharpening&lt;/span&gt; your skills, you will be more in touch with the technology than the ones sitting on their old skills.&lt;br /&gt;
&lt;br /&gt;
As a PS, I would also recommend looking at current job postings to see what technologies are in demand, and as well try to see if you can figure out trends (i.e. which direction the market is heading and what technologies are up and coming.)&lt;br /&gt;&lt;img src="http://sharpdeveloper.net/content/aggbug/44.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Sameer Alibhai</dc:creator>
            <guid>http://sharpdeveloper.net/content/archive/2007/08/12/are-you-a-sharp-developer-part-2.aspx</guid>
            <pubDate>Mon, 13 Aug 2007 01:18:17 GMT</pubDate>
            <wfw:comment>http://sharpdeveloper.net/content/comments/44.aspx</wfw:comment>
            <comments>http://sharpdeveloper.net/content/archive/2007/08/12/are-you-a-sharp-developer-part-2.aspx#feedback</comments>
            <wfw:commentRss>http://sharpdeveloper.net/content/comments/commentRss/44.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>