This past week was a gruelling week for me. I didn't write any code at home or learn anything new from the ASP.NET Core course. All I did was work on new features for JRS Document Storage and fix bugs.
I am under immense pressure at work to release the new version of JRS Document Storage. I have other duties at work that also needs my urgent attention. Thus, when I got home, I wasn't in the mood for anything else. I didn't tweet about my progress. I didn't update my log on Github. I spent time with my family when I got a chance.
I did learn something this week that I can take with me as a developer. Some of these points are conventional and not applicable to software development.
I am currently employed as a Business Analyst. But, during my tenure, I've given a lot of technical support to our staff. Now that we've gotten to a stage where I have more analysis and development work to do. This part of my job my colleagues don't notice. They come to me with their technical queries, no matter how much I try to explain that I do not have the time to assist.
Protecting my time is a constant battle. Co-workers would first send me an email. If there is no response, they would call me on my landline phone. Then they would call my work cell phone and finally call my personal cell phone if they still can't get me. Those who are in the office, would walk into my office and expect help immediately. Others who aren't in the office will send another office colleague to come to me.
I know there are lots of strategies out there to protect your time. I could have read up on a few of them. But when you have co-workers that only want their problems solved and they don't care about your time or schedule, I doubt anything on the Internet was going to get me out of this jam.
The only thing that I can work at this point, besides ignoring everyone, is working remotely. This is something I am working towards and convince my boss this is the right move. Or with time, my colleagues will learn to respect my time and let me get on with my job.
As time runs out and deadlines are fast approaching, the need to perfect your code goes out the window. Things get even more stressful closer to the deadline. What can go wrong, will go wrong. You will get error messages that you have no idea how to fix or the solution isn't that simple to implement. You have to let things go and hope you can implement it in the next version.
There were a couple of features that I wanted to implement but I couldn't figure out how to do it. I didn't have the time to research solutions. I didn't have the time to try to put in place those solutions. There was no time to refactor my code and make it look better. I've failed myself but at least I was able to put out something that works.
Planning is the most important soft skills you need to become a successful developer. I did some planning on the JRS Document Storage application, but I didn't do enough of it. I didn't think through how I was going to update my application when it was required. I didn't plan out the architecture well enough. Now I have to update about 20 databases manually because I failed to plan for a system that will do this.
Going forward, before I start a new project or make any changes to a current one, I have to plan it from start to finish. This will help guide me through the entire process and help me keep my eye on the prize. One tends to work on other trivial tasks or bugs when you don't have a plan of action.
You shouldn't only plan for the development of your code. Planning should include other activities, like designing, testing and writing documentation. I often neglect to make time for the above. When the deadline draws closer, I realise the sheer amount of work I haven't accounted for.
There will be frustrating weeks. There will be times when I want to give up. There are times when I'm not in the mood. Honestly, if I didn't commit to this challenge publicly, I probably wouldn't have made a post. But I have to it. I have to make it all the way through to blog post number 15. Hopefully there will be better weeks.
Until next time. Thanks for reading.