3 ms·
It is all about trade offs, there is no perfect solution. Here are a few things that I have learned: # Requirements - List out clear requirements, get an agre
by ystad 6y ago
It is all about trade offs, there is no perfect solution.
Here are a few things that I have learned:
# Requirements
- List out clear requirements, get an agreement with your co-decision makers, and the necessary people. Make sure you address for at least 2-3 yrs of requirements. It is likely, that new requirements would pop up and your system should be adaptive to this
- if you think that your system is not going to address a specific thing, think twice, you may get buy-off & assurance from product, directors. However be prepared mentally that six months down the line, this will change.
# My Dos and Don't (always subject to change :))
- Do keep things simple
- Don't make a career out of a single project.
- Do list tradeoffs in your design
- Do document and perform deep dives.
- Don't ship prototypes.
- Don't be afraid to get critical feedback. If someone gives critical feedback, spend a few days to clearly understand the feedback
- Don't be defensive
- Don't be attached to what you build, it does not represent you.
- Do use new tech in baby steps
- Do experiment - The more you experiment, the more you learn, the more you will fail. Is this something that you have the mindset for? You can also ask how much do you have the time/energy for?
- maerF0x0 6y ago> - Don't be defensive +1 to this. The very first thing I'd teach computer science students is "You are not your code... ego investment will only cloud your thinking" . When the compiler says it doesnt work, trust it's not a compiler bug. When the computer does what it's instructed and it doesnt work, trust it's not a JIT bug or that your code "clearly says to do what you think it does..." When a coworker suggests an alternate solution, it doesn't mean either of you are a "better" engineer. (These kinds of decisions can only be decided across many variables and many data points).