kenha
Rather than answering the same questions repeatedly, you can point other teammates to your doc.
It’s also not just a one time thing - Once the docs started gaining traction, you will see your teammates contributing. It takes time to get there, but it will get better over time, and it’s worth it.
Downside 1. Docs can get outdated - There will be times you need to go and refactor the docs. 2. You won’t get promoted because you wrote good docs.
How Will You Measure Your Life? (2010)
These are some of the Qs I’ll ask:
1. How do you use Excel to track bugs? (Trying to understand his/her workflow.)
2. How does Excel solve your problems? (Understand what s/he likes about Excel.)
3. What are some of the things you wish Excel can do better? (Understand pain point)
Part of this is also building trust, so the PM can see your workflow & use cases as well, and hopefully come to a conclusion that while Excel may work, it’s really not the best tool for the job due to manual data synchronization work, and maybe GH issue or JIRA would work better.
I’ve also seen PMs enjoying using Coda as a complement to GH/JIRA to get a better picture to project overview.
Secondly, if we are looking at history, why would we look at USSR instead of the history of China? There is never a regime change until a civil war broke out, and there is always blood involved.
I read this in the original paper, “Participants were randomly assigned to follow either the control schedule (eating between 8:00 am and 8:00 pm; 12‐hour daily eating period)”
Other than the N is on the lower side, how’s this way of setting up a control group insufficient?
There was the logic that generates the SSL key pair, and there is the faulty logic that consumes it. Based on the description, it seems it's an indication of missing test coverage around the faulty code. If, when the faulty code was written, more time were spent on understanding the assumptions the code has made, then maybe the test wouldn't appear in the first place.
This anecdote, however, does bring up a good point: Don't shrug off intermittently failed tests - Dig in and understand the root cause of it.
It is difficult to be in that environment that doesn't have a good engineering culture. It, however, should not stop you from doing what you believe is right.
If you are relatively new to the company, in order to bring influence, it might be worth it to build trust before "rocking the boat." Trust could be built through leading by example, or sometimes just take the time and understand why the process exists in the first place. Once people trust you, it may be easier to sell/propose new ideas to the team.
As an anecdote, I've worked in a startup in the past that allows engineers to push and deploy code to production without any form of code review or a single line of tests written. (Even senior engineers/tech leads do not always have tests to go with their commits.) This created a code base that contains quite a bit of spaghetti code, occasional build breakage, as well as a lack of knowledge sharing on different components (Even if you are on the same team working in a similar area of the code base.)
Rather than changing the process to mandate PR, I started creating a Pull Request (PR) for every single change that I made, made sure I have sufficient test coverage and added my teammates to it. If my teammate happened to leave a comment/feedback, I'll thank them on Slack, and let them know the feedback is useful.
Since then, while there are still changes that went out without any reviews, I've seen more reviews coming my way (2-3 in 3 months versus 3-5 in a week), and I always do my best to leave feedback/comment on the PRs asap. It wasn't perfect, but hopefully, these baby steps laid the foundation to lead to an eventual change.
John Wooden (Ex-UCLA coach) has a well-known quote, "Make each day your masterpiece." Rather than focusing on what I cannot change (Other people + process), I did what I can to make it better (My "masterpiece" given the circumstances), and I hope what I did may have changed how my teammates looked at PR.
If it’s for a task, I’d say:
1. Really spend some time to understand what you’re trying to solve 2. (If applicable) What pain point are you experiencing with existing solution? 3. Find tech (old or new) that might be a good solution, and understand their limitations/trade offs that you'll be making by choosing this tool.
Then, make a decision.
If it’s for learning, it ultimately is what are you trying to get out of the learning experience, and see if it fits your goal. (It is totally OK to learn a new tech just because it sounds cool - Learning more about something cool is a type of goals as well.)
For example, ElasticSearch is “fast”, but what makes it so? What trade offs were made to make it “fast”?
You may start seeing patterns on how good/bad tech stack are built (aka the meta), and those meta would help you a lot down the road in knowing what type of toolset you can use, common type of problems a given architecture would exposed to.
Before YNAB, I use Mint for a while, but it didn't help in terms of managing my budget due to the auto-import feature. I also used YNAB 4 in the past (you pay $50 and that's it), but felt it's great enough to spend $5 a month on budgeting.