> Creating any one single behavior in a computer system is almost always trivial for the experienced engineer. When the experienced engineer on your team says that something can’t be done easily, they almost always mean is that the thing can’t be done easily in a way that is acceptable to the health of the product. Junior engineers tend not to have to consider this constraint.
I completely agree. One of the things that makes a senior engineer senior is the ability to design and implementing code with the health of the overall system in mind.
This is really hard, especially since you simultaneously have to resist the temptation to build abstractions for a future that may not come to pass - sticking to the YAGNI principle https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it
> Creating any one single behavior in a computer system is almost always trivial for the experienced engineer. When the experienced engineer on your team says that something can’t be done easily, they almost always mean is that the thing can’t be done easily in a way that is acceptable to the health of the product. Junior engineers tend not to have to consider this constraint.
I completely agree. One of the things that makes a senior engineer senior is the ability to design and implementing code with the health of the overall system in mind.
This is really hard, especially since you simultaneously have to resist the temptation to build abstractions for a future that may not come to pass - sticking to the YAGNI principle https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it
A buyable thing delivered now is often better than a promise, especially when there’s competition.
Taking out a mortgage worth of tech debt at least gives you a place to live ;)