Questions tagged [maintainability]

system quality aspect characterizing the ease of software maintenance

Maintainability is a system quality aspect characterizing the ease of software maintenance.

Related Wikipedia references:

  • article: Maintainability

    In engineering, maintainability is the ease with which a product can be maintained in order to:

    • isolate defects or their cause
    • correct defects or their cause
    • meet new requirements
    • make future maintenance easier, or
    • cope with a changed environment

    In some cases, maintainability involves a system of continuous improvement...

    In software engineering these activities are known as software maintenance...

  • article: Software maintenance

    Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes...

Related tags:

137 questions
355
votes
19 answers

How would you know if you've written readable and easily maintainable code?

How would one know if the code one has created is easily readable, understandable, and maintainable? Of course from the author's point of view, the code is readable and maintainable, because the author wrote it and edited it, to begin with. However,…
KyelJmD
  • 971
  • 5
  • 10
  • 20
158
votes
20 answers

How to keep a big and complex software product maintainable over the years?

I have been working as a software developer for many years now. It has been my experience that projects get more complex and unmaintainable as more developers get involved in the development of the product. It seems that software at a certain stage…
chrmue
  • 681
  • 3
  • 7
  • 8
81
votes
17 answers

Coding Guideline : Methods shouldn't contain more than 7 statements?

I was looking through the AvSol Coding Guidelines for C# and I agree with nearly everything but I'm really curious to see what other think of one specific rule. AV1500 Methods should not exceed 7 statements A method that requires more than 7…
brian
  • 3,579
  • 1
  • 20
  • 22
80
votes
20 answers

Is it ok to replace optimized code with readable code?

Sometimes you run into a situation where you have to extend/improve some existing code. You see that the old code is very lean, but it's also difficult to extend, and takes time to read. Is it a good idea to replace it with modern code? Some time…
Coder
  • 6,958
  • 5
  • 37
  • 49
75
votes
17 answers

What hurts maintainability?

For someone who doesn't have much real world experience yet, the notion of maintainable code is a bit vague, even though it follows from typical good practice rules. Intuitively I can tell that code can be well written, but not maintainable if for…
EpsilonVector
  • 10,763
  • 10
  • 56
  • 103
72
votes
10 answers

Clean readable code vs fast hard to read code. When to cross the line?

When I write code I always try to make my code as clean and readable as possible. Every now and then there comes a time when you need to cross the line and go from nice clean code to slightly uglier code to make it faster. When is it OK to cross…
63
votes
10 answers

Readability versus maintainability, special case of writing nested function calls

My coding style for nested function calls is the following: var result_h1 = H1(b1); var result_h2 = H2(b2); var result_g1 = G1(result_h1, result_h2); var result_g2 = G2(c1); var a = F(result_g1, result_g2); I have recently changed to a department…
Dominique
  • 1,705
  • 2
  • 14
  • 24
59
votes
11 answers

What characteristics or features make code maintainable?

I used to think I knew what this was, until I really started thinking about it... "maintainable"... what exactly makes code maintainable? To me, if code must be maintainable that means we can expect to revisit the code to make some sort of change to…
void.pointer
  • 4,983
  • 8
  • 30
  • 40
55
votes
11 answers

How would you refactor nested IF Statements?

I was cruising around the programming blogosphere when I happened upon this post about GOTO's: http://giuliozambon.blogspot.com/2010/12/programmers-tabu.html Here the writer talks about how "one must come to the conclusion that there are situations…
saunderl
  • 655
  • 1
  • 6
  • 7
54
votes
10 answers

Are flag variables an absolute evil?

Are flag variables evil? Are the following kind of variables profoundly immoral and is it wicked to use them? "boolean or integer variables that you assign a value in certain places then down below you check then in orther to do something or not,…
dukeofgaming
  • 13,943
  • 6
  • 50
  • 77
49
votes
10 answers

Does splitting a potentially monolithic application into several smaller ones help prevent bugs?

Another way of asking this is; why do programs tend to be monolithic? I am thinking of something like an animation package like Maya, which people use for various different workflows. If the animation and modelling capabilities were split into their…
dnv
  • 591
  • 1
  • 4
  • 7
37
votes
10 answers

Eliminating Magic Numbers: When is it time to say "No"?

We're all aware that magic numbers (hard-coded values) can wreak havoc in your program, especially when it's time to modify a section of code that has no comments, but where do you draw the line? For instance, if you have a function that…
oosterwal
  • 1,713
  • 14
  • 16
37
votes
14 answers

Why do so many developers believe performance, readability, and maintainability cannot coexist?

While responding to this question, I began to wonder why so many developers believe a good design should not account for performance because doing so would affect readability and/or maintainability. I believe that a good design also takes…
justin
  • 2,023
  • 1
  • 17
  • 15
34
votes
4 answers

Usage of magic strings/numbers

This is somewhat controversial topic, and I guess there is as many opinions as there are programmers. But for the sake of it, I want to know what are the common practices in business (or in your work places). In my work place we have a strict…
29
votes
10 answers

Is template "metaprogramming" in Java a good idea?

There is a source file in a rather large project with several functions that are extremely performance-sensitive (called millions of times per second). In fact, the previous maintainer decided to write 12 copies of a function each differing very…
Fengyang Wang
  • 400
  • 3
  • 8
1
2 3
9 10