JordoR :
In my spare time (which is any time not being spent on projects at work) I work on updating company standards or working on items that will make future work faster and easier.
I'm not one of the people in the office that you will find surfing the internet all day. Even when there isn't work to do, you can always find something productive to do.
Hey now, trying to make us sound like we don't contribute..
One of my recent projects involved me taking another teams project. They had 5 people working on it for ~8 months. My group finally took it over once it became "mostly" stable and one of us got assigned to fixing bugs and adding features. That person spend about 1.5 months of constant work trying to fix/add to the code.
Finally, I convinced them to let me take over and I started over from scratch. Boss wasn't too happy at first as it took a lot of man hours to get it where it was but he humored me because it was a slow time. I re-wrote it in 1 month, which involved multi-threading it, and correctly designed it, which fixed several outstanding bugs they they weren't able to fix. In the end, the program was easier to debug, I was able to add/tweak features with only 1-2 hour turn arounds vs their 1-3 week turn arounds and it literally ran ~600 times faster in our common case while using 1/8 the memory. It scaled better than the original, so 600 times faster in the common case easily turned into 1200 times faster for larger work loads. Actually, my program scaled linearly while the original mushroomed so relative to the original, my program became dramatically faster the larger the database.
Our server admin was elated that running this app on 3-4 customer's at the same time didn't bring a server to its knees anymore, and the tech were happy what use to run in minutes now ran seconds, or usually under a second. It was funny how he kept asking me when I was going to be done after I showed my team my first prototype about 2 weeks in.
Both their version and my version of the program used .Net. Although, I preferred to use C# over VB, but the languages should run the same speed.
That "1 month" of work, mostly involved me starting blankly at my screen or browsing the web to blank my mind; but every so often, I would get an idea that would pop into my head and I would go to town pumping out code. After that initial month, I had a few minor request changes and few of my own bugs to fix, but it was stable after 2 months. It has been running on hundreds of databases for the past 8 months without any more changes to code.
Admittedly, I did have the benefit of having a "working prototype" to see work and understand what was expected as the original version did have a lot of feature creep.
I did another similar thing to another project, but that project wasn't really speed limited, but it did get the benefit of a better design and faster turn arounds after it was re-written and several long standing bugs were fixed. It wasn't hard to get the "OK" to re-do the other project from scratch after that big success.
So, don't associate my browsing as laziness, it's how I work.