Modifying Expectations

Rakhi Kumari
3 min readJul 19, 2021

Hi everyone!

It has been eight weeks now since my Outreachy internship started, and this internship is really shaping me into a whole new personality, not only as a programmer but as a human being also, and I can feel it.
Let’s get back to the main topic. Today I am going to write about my mid-point progress and something related to “then and now expectations”. 😛

In the starting, we were asked to make a timeline of our project.
Because,

A goal without a timeline is just a dream.

-Robert Herjavec

Okay, so I made a timeline and divided my whole project into multiple subtasks. After this, I was all set to go!

My project requires me to add a new feature by using another open-source project. I was familiar with my project in Apache, as in Outreachy we have to contribute to our project during the contribution period before selection, but I was not familiar with the other project that I have to use. So I solely gave the first two weeks to get familiar with it and writing an implementation plan.

After this, I had my implementation divided into three subtasks:

  • Add library dependency of the feature in the build system (CMake).
  • Modify CI (Continuous Integration) according to the feature.
  • The actual implementation of the feature.

When adding an independent feature, you all need to make changes/additions to your code only. But when your feature requires an external project for its implementation then you have to make changes not only to your codebase but to the build system (CMake) and CI (Continuous Integration) of your project also.

I’ve completed the first two tasks. I never worked on the build system and CI prior to this internship so I had to give some time to learn all the pieces of stuff needed. But I’m glad I was able to complete these according to the expectations that I’ve set in the timeline.

So till here, I was going right according to my timeline. But as you know one can not foresee everything. And then there comes the task that I thought I would be able to complete in around two weeks but I am still working on it 😛 . Because this task is the actual implementation of my main task. Can you believe I provided only two weeks for this task in my initial timeline? As it was looking straightforward but I get to know the complexities involved in it only when I start working on it. So it happens!

And when I thought I’m almost done with it, there came a problem that needs a small change in the existing API. Making a small change feels quite good. But changing the existing API? No, it doesn’t sound good even if it is a small change.

Why? Because many users are already using our library so we can not simply change it according to our will. Here we need to come up with the most suitable solution that will not affect the existing users.
So, as you see, sometimes writing a code does not take time, coming up with the most suitable and standard solution does. So, there are many aspects that can become obstacles for you to abide by your timeline. But it’s completely alright to have fluctuations in the timeline as long as you can complete all your tasks by the end.

I’m almost done with my actual implementation and so far this project has taught me many new things. There were ups and downs, there were times when I feel exhausted, but my mentors are very supportive. Without their guidance, I won’t be able to achieve what I’ve accomplished so far. This internship is indeed going to be the most wonderful moment of my life. Looking forward to growing more.

Have a nice day!

Originally published at http://rakhiroriya.wordpress.com on July 19, 2021.

--

--

Rakhi Kumari

Engineer at Red Hat | Outreachy’21 Alum at The Apache Software Foundation