A year and a half has passed at Microsoft! This place has given me so much stuff to learn, and most of all made me realize learning can come from any source. There are so many things out there in the world which you can absorb, You just have to keep your eyes open.
Being a mature company one of the things Microsoft is good at is process management. There are some awesome internal tools that can help you keep track of work and get it done faster. After getting a feel of the tools, I feel so much better as a professional.(Yours truly has always had a difficult time managing his work and was slow to adopt the tools, but hey better late than never )
Coming to the title of this post, We use VSTS to track our work items and the thought process revolves around tasks and defects. For a S/W Engineer the daily work can be summarized as being all about identifying your task, breaking down your work into tasks and doing the same, finding and fixing your defects and doing it all over again next day (at least the third item is true for every day).
- Identifying the problem part is the intellectually most challenging part and sort of brings out the person you are. Given a free rein, What problem will you solve? how will you solve the problem? how do you convince people that is the right problem? How much do you take in others’ input while solving the problem? And how do you do all this while keeping in mind the product goal\business interest of the company? This is the hardest part of the job, Sort of things that define a professional I would say. And sort of things interviews today are testing, rightly so.
- Next comes the estimation. This is where experience and practice really shows. If you keep doing something day in and day out and keep doing it with dedication, you would eventually know how long any related task would take. Now, that’s not to say you can have other things that keep you from honoring your estimate. There can be this other bug that you took longer to fix, there can be this other guy who wanted your help understanding your code, your machines could crash, your machines became too slow, there was an earthquake in the neighborhood, blah blah blah. Now people don’t care about why you failed in your tasks and estimates and rightly so. So as the wise men say, if you know you will take Time X to complete your job, give an estimate of 2X. Again, you don’t have time till the end of the world but still its good to bargain.
- Last but not the least, cleaning the house. Again, raw discipline matters here. Its your job to keep your home clean, however dirty the job is. It becomes very easy to slip into doing something glamorous like solving a cool new problem. But you don’t get paid for that. And quoting a colleague here, “Nobody cares about the sound system in the car, if the wheels come off”. So clean the house first and do it everyday.
Now iterating over it, fitting in new tasks as they come up and doing it day in and day out is all that matters. There are times when things could slip off, but still its important to understand priorities and make people understand it as you build your career. You will slowly observe that this routine gives you a discipline that helps you take on new challenges. Enough of a rant for the week!
P.S 1 Hoping to blog daily from today, lets see how I keep up
P.S 2 Some of the tools in Microsoft that I absolutely love.
- One Note - Should be made compulsory at every company. The best note taking software ever!
- Outlook - The filtering support\meeting organization support\rules (I never knew you can run programs in your machine by sending emails) just make it an awesome collaborative tool
- Visual Studio - Hands down, the best IDE ever