We’re talking about organizing and maps! Join us on Open Call every Tuesday through June. Click here for call-in details!

Public Lab Research note


Underpromise | Overdeliver

by ruthnwaiganjo | February 03, 2021 15:05 03 Feb 15:05 | #25595 | #25595

Hello, so recently I decided to combine two blog prompts from Outreachy because I was trying to find the inspiration to write the previous one. A week later, with another blog prompt to write, I came across this quote that nudged me to start writing.

there’s a popular notion that there is some strike or bolt bubbling up of creative mojo from who knows where...but I hope my work makes it clear that waiting for inspiration to strike is a terrible, terrible plan. In fact, perhaps the single best piece of advice I can offer to anyone trying to do creative work is to ignore inspiration ~ Mason Currey

However, I do want to mention that some of my best moments have come after some form of procrastination while waiting for inspiration. Below, are some of my thoughts birthed from procrastination. I’ll share my progress so far, my plans for the remaining part of the internship, and finally, my plans after.

While working at my previous job, we had meetings where the project manager and would share the tasks needed in the next week while the developers would provide an estimate of when the tasks would be completed. One of the senior developers suggested, that moving forward, we should all share our estimates simultaneously. For example, if the project manager mentioned that we needed a particular feature on the dashboard, instead of each developer sharing their estimate one after the other, we would count to three, and demonstrate with our fingers what we estimated. One finger for one day, two for two, and five for five days. We would pick the average and discussed each other’s estimates.

I had no idea the impact of how we shared the estimates until I came across the terms halo effect and bandwagon effect. Let’s assume that you are having a meeting to provide estimates for the completion of a project. With the halo effect, the person who has the most influence in a room provides an estimate and all of a sudden everyone or most people in the room changes their estimate to match the influential person’s answer. With the bandwagon effect, assuming there is no influential person in the room, everyone or most people in the room will share a similar estimate to one another. Sharing the estimates simultaneously was a way to prevent both the halo and bandwagon effect.

But what happens if you are sharing the estimate by yourself? That is what happened to me when I was drafting my initial project plan to redesign the dashboard. One thing that helped me draft the project estimates, was the original project description which had the tasks needed. My plan was to have no more than four tasks per week. Depending on the requirements of some tasks, some weeks only had three or two tasks. If I put in five tasks a week, that would have meant that I was working on a task a day which is not feasible. When working in a team, you have to account for the time taken for other team members to review your work, for you to implement feedback, and carry out any necessary research. You also have to account for the time you will take to review and give feedback to other team members’ work. They may seem like overheads during the implementation of tasks, but they can greatly affect the timeline.

I have managed to complete 78% of the project. That is, 36 tasks completed out a total of 46 tasks estimated. While implementing the tasks, I began to notice that sometimes, work that I thought would take a really long time, took a shorter time. For instance, the All Posts page which I thought I was designing from scratch, already existed. All I have to do was refactor old code and improve the design. It took less than a week to complete it.

There were tasks that I underestimated, such as displaying the topics a user has subscribed to on the dashboard. In my mind, I thought it was straight forward query find all the subscriptions of the current user and display. What I didn’t think about, is what happens if the user does not follow any topics? Are the topics displayed in a particular order? What if the topics have no posts within them? Should they be displayed? This task would clearly take longer to complete in addition to some back and forth with the stakeholders of the application. Despite the original underestimation, I have managed to complete some of it while figuring out other unknown aspects.

For the second half of the internship, I plan on focusing first on the main tasks needed that are pending, which are about four. If time allows, I will work on additional tasks that include accessibility, replacing the old dashboard, and a discussion to add some imagery on the dashboard. What I have learnt so far, is that there will be some issues that creep up because of working on a certain task. I have learnt to be flexible and know that there is a possibility that the four main pending tasks might turn to eight, or even reduce to two. In the art of estimation, it is better to underpromise and overdeliver.

After the internship, my plan is to find a job. I made a promise to myself that I will not settle this year. Therefore, I will be shooting my shot with companies that I think are not in my level. As both a challenge and a learning experience. I would like to keep writing code but mix it up with a bit of infrastructure work. I do understand that choosing not to settle will require some extra effort on myself in interview preparedness and honing my programming skills. I have been setting time aside to learn and practise which I think will help.

Choosing not to settle, in terms of my career opportunities is daring and scary. I hope that I will have the personal integrity to keep that promise. It is very easy to compromise and try to be practical but that’s not what I want. Because I took a huge risk and left my previous job, I was able to end up at Public Lab and learn a lot about Open Source contributions. It has been a worthwhile experience. Some days, it feels like I am working alone, other days it feels like there is a lot to say and so many people to catch up with. I am glad I took the risk and I look forward to taking more risks.

Main image from Internetdevels


6 Comments

Hi Ruth! Much appreciation for this post -- and I know you'll do well finding a new job after the fellowship! 🎉

a discussion to add some imagery on the dashboard

regarding this, i'm wondering if a look at our Style Guide could have some good ideas for design...

https://publiclab.org/notes/warren/05-07-2019/introducing-a-draft-style-guide-for-public-lab (and https://publiclab.org/wiki/ui)

What about something like this (the bottom idea)? That said, i think it's a delicate design project because this is already becoming quite crowded. So, i think this is one of those projects which we might want to think on gradually and weigh options, but to push implementation to the end of the timeline. Maybe it's a good one to open up an issue and discuss in depth there.

Screen_Shot_2021-02-03_at_5.55.14_PM.png

Is this a question? Click here to post it to the Questions page.

Thanks Jeff!

I actually created an issue for the discussion https://github.com/publiclab/plots2/issues/8967 The bottom idea looks great, I'll attach the thoughts you've shared on the issue.


Reply to this comment...


Love this post, Ruth. Reminds me of a developer I knew who included an "estimation tax" on all his projects--extra time for all the things that took extra long!

@bhamster..thank you! That makes total sense... everything should have an estimation tax 😅


Reply to this comment...


Thanks for this detailed post Ruth! It's nice to read about how other devs estimate and manage time, which is something I'm learning about and finding interesting these days.

After the internship, my plan is to find a job. I made a promise to myself that I will not settle this year.

Super inspiring! I think you'll do well, you're a great programmer!

Thank you, Will 😃 That means a lot coming from you! You do a great job navigating Javascript!


Reply to this comment...


Login to comment.