41

Just my $.02:

One thing I think a lot of students/schools miss when learning/teaching, is that your code has to be *maintainable*. Your code is (hopefully) going to be used for a long time, so program it to make it not only easy to upgrade and maintain, but easy for SOMEONE ELSE to upgrade and maintain, too.

The best code to work with is the stuff that's been coded with maintainability in mind.

Comments
  • 6
  • 2
    That's not what industry wants, the initial implementation would be too expensive, and nobody considers the follow-up costs anyway (except very special cases like NASA and the like)

    And the reality is not what is written in those books about development, in reality for most companies maintainability is at the very bottom of the priority list.
  • 6
    @ddephor I disagree. The industry *wants* it, but you will sometimes get people in the chain who don't understand it and see only the figures. They will drive corners to be cut and an inferior quality product to be built. Most commercial scale software apps will exist for a number of years and have oodles of people modifying or extending it. Maintainability is utterly, utterly essential. I would upvote this rant 17,437 times if I could.
  • 5
    Code as if your application is going to be used for years.
  • 2
    But on the other hand: Creating code only you can understand and maintain makes your job safe.
    They depend on you and just can't replace you easily without risking a complete rewrite, which will probably cost them more than keep paying you.
    So they depend on you and your good will. They need to understand this. Then they will do anything to make you happy and don't make you think about leaving.
    You are a God.
  • 0
    @CrankyOldDev I agree with you, it is important. The bigger the system, the more important maintainability gets.

    But reality is different.

    And let's face it, software development is still in its stone age. We're using high end computers, 21st century technology, but the evolution of processes used for software development are on the level of scratching figures on cave walls or dancing around the campfire at dusk.
    With modern development you shouldn't bother about maintainability, the process would take care of it.
  • 2
    I agree 100%. BTW: Studies have shown that up to 80% of the total costs of a software system are created after (!) the initial release.
    And IMHO you absolutely positively need tool support to help you to keep your (large) code base maintainable.
    (I work for a company that specializes in software maintainability)
  • 2
    Code like the person who has to maintain your code knows where you live and they own a gun.
  • 1
    Where I'm studying code maintainability is the main thing we are learning.
  • 2
    @mw108 But by doing like so you won't improve yourself because you will think "I can still code crap that I'm the only one to understand, it's safe".

    Plus it won't improve your relation with the company you're working for, they will keep you because they are kind of forced to but not because they value your work as great work, it will make you much more happy to be in a company that keep you because they think "he's doing such a great work" then in one that says "we keep you not because we wants to but because we're forced to".

    Well all this to say that maintenance in your code is as important, even more important, than the fact your code is doing its job.
  • 1
    @mw108 I think it goes only for shitty companies.
  • 1
    Our programming teacher didn't talk about that, but another teacher of ours did, and he talked about how painful it is to maintain such bad code.
  • 2
    Exactly. How is anyone supposed to build on and properly edit ur code if its drag and dropped?!!
  • 1
    @digital-dina I call that "StackOverflawed code".
Add Comment