The junior and the senior developer
Junior and senior quantifies professional maturity. It does not describe age or years spent in the industry. Professional maturity indicates how valuable a developer is for the employer.
Junior starts to think on how to solve it. Realizes it is possible to solve. Can see the path to the solution. Perhaps gets a tad excited about the prospect. Gives estimate based on how long it takes to implement. This estimate is wrong. It is too optimistic.
Senior starts to think on how to solve it. Takes into account the effort needed for sufficient readability. Adds time for future maintenance and bugfixes. Gives estimate based on as many of the above constituents as senior is capable of. Tries hard to give as much information along the way as possible. This estimate is wrong. It is a little too optimistic.
The outcome depends on promises made to the customer. Perhaps developers have not been involved. Then it might be impossible for a team of developers to do a good job. The recipient of the feature is very disappointed with the junior. The recipient is disappointed with the senior but respects him.
Both are very busy.
Junior works hard. Perhaps with no regard for his on stress levels. Tries not to complain too much. Feels important because he is in high demand. Prefers the code written in house. Finds reasons to keep the home grown code.
Senior tries not to work too hard. Spends a lot of time thinking about how to decrease the cost of maintenance for his employer. If an opportunity presents itself to introduce third party code. Then senior is keen on deleting the old code. Unsentimentally because senior put a lot of effort into writing the code.
Both advocate their ideas with a passion.
Junior has a very hard time changing his mind. Invests emotionally in arguments. Can become offended if not listened to.
When new information reaches senior. Then senior immediately has a change of mind. Completely devoid of prestige.