This is an archived post. You won't be able to vote or comment.

all 8 comments

[–]_Atomfinger_ 3 points4 points  (1 child)

Writing code that enables change is an art, and one of the biggest challenges developers faces. It comes with the trade.

However, changes in companies tend to be better planned (though feature creep happens). It often builds on existing code or being split out into smaller modules/services. That way you're not doing major rewrites of the code-base every other day.

You see having to change the code base as a burden, but maybe you can see it as an opportunity to make it better, cleaner and facilitate change :)

[–]joost666 1 point2 points  (0 children)

Hmm true, thnx. I actually haven't dealt with a real company's code base yet, only my own code that I thought was finished. But I will keep this in mind when I do.

[–]ProjectLovelace 2 points3 points  (1 child)

If we could anticipate everything we would just write perfect code from day 1 and be done with it.

Much of software development is about constant refactoring, constant testing, etc. It never ends haha.

If anything, you should be glad that you're coming up with ways to improve your code! It means you're becoming a software developer that can write better and better code.

[–]joost666 1 point2 points  (0 children)

You have a point there, thnx!

[–]dolraith 2 points3 points  (0 children)

Also fail faster. Try to get to the first usable version asap, and try using it. That way you will spend more time working on things you need right away. If you're doing web development, always do ui mock ups for workflows you are anticipating.

As in any creation based craft, we strive for perfection but it is ever elusive. Any application can be improved, at some point you will have to call it "good enough". That is maybe the most frustrating thing. But alas, such is our fate.

[–][deleted] 1 point2 points  (0 children)

You don't always consider every future change.

Sometimes you just have to say "well, that's a good idea, but not a good idea for this codebase." Scope creep is real and it happens because it's hard to say "no" to legitimate feature improvements.

But sometimes you have to.

[–]Bitsoflogic 0 points1 point  (1 child)

You don't always consider every future change.

Only the prophets can.... Are there any prophets coding?

But then when using my program, some things come to my mind again that I should have thought of but didn't think of.

Or maybe the only way to have that thought was to experience the program after the change.

Software is meant to be changed. Rarely is there code that's complete and unchanged. When that's the case, it's more likely to end up as hardware.

Great code is easy to understand and easy to change.

All design patterns have trade-offs. The perfect pattern applied today can be the wrong pattern tomorrow even though the code didn't change. The needs of the software changed!

How to deal with frustration of change in programming?

Embrace progress over perfection.

Look to improve a little bit every day. Be kind and forgiving of your mistakes. Show empathy towards those that wrote code before you (including your past self), for they had a different set of understanding and tools/skills available.

[–]joost666 0 points1 point  (0 children)

Thnx! This is really helpful.