"Our web app has to support a browser. We know it usually takes a month, but can you do it in two weeks." This was the paraphrased message I received after I returned from a much-needed vacation. I had dealt with my fair share of stressful situations before as an ex-fast food worker(shoutout to all service industry workers!) This request had my team and I working long nights and weekends however causing burnout and unnecessary stress while also creating a lot of tech debt. Even worse, this caused my organization to miss our financial goals for the year.
I blamed myself for this unfortunate outcome. After sitting with my thoughts and confiding with my mentor, my boss , and a few close colleagues, I realized I was asking the wrong questions and looking at this situation from the wrong angle.
Newer devs such as myself are not taught the business side of tech in college. Nor are we taught to hone our emotional or communication skills. These are skills that I have had to learn on the job (quite painfully I might add). From this situation, I learned how to manage unattainable requirements and avoid disaster. These are the steps I use now when I get new requirements in project,and maybe they will be helpful to other young devs
1) I ask any and every question about what is required. I do not take anything for granted , and I ask any question no matter how silly or simple it might be. There are sometimes silly questions, but I would rather ask a silly question then work nights and weekends.
2) I ask about the feature's value. "What is the value of this feature to the client and how does it further our team's/org's goals as well?" "Why is this valuable?"
3) Saying "no" outright has not worked out in my favor in the past which is why this is the last point. Asking questions and learning as much information I can, helps lead my team and me to logical and concrete steps as to how feasible a feature is and what the ramifications to adding it to our sprint are.
Thanks for reading my first blog post ever! My goal for blogging is to mainly keep track of what I am learning in my, measure my growth, and connect with other devs/product owners/designers/teach people in the community. Feel free to send feedback, comment, or add anything that contributes to this topic.