author | Oleksandr Gavenko <gavenkoa@gmail.com> |
Sat, 10 Feb 2018 01:28:53 +0200 | |
changeset 2227 | 1e9323e7ec88 |
parent 1912 | 8b81a8f0f692 |
child 2228 | 837f1337c59b |
permissions | -rw-r--r-- |
1911
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
1 |
.. -*- coding: utf-8; -*- |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
2 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
3 |
============================ |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
4 |
Software development rules |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
5 |
============================ |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
6 |
.. contents:: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
7 |
:local: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
8 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
9 |
General discussion |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
10 |
================== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
11 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
12 |
See: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
13 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
14 |
http://en.wikipedia.org/wiki/List_of_software_development_philosophies |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
15 |
http://en.wikipedia.org/wiki/List_of_eponymous_laws |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
16 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
17 |
Principle of good enough (POGE) |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
18 |
=============================== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
19 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
20 |
It favours quick-and-simple (but potentially extensible) designs over |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
21 |
elaborate systems designed by committees. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
22 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
23 |
Once the quick-and-simple design is deployed, it can then evolve as needed, |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
24 |
driven by user requirements. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
25 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
26 |
This kind of design is not appropriate in systems where it is not possible to |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
27 |
evolve the system over time, or where the full functionality is required from |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
28 |
the start. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
29 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
30 |
See: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
31 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
32 |
http://en.wikipedia.org/wiki/Principle_of_good_enough |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
33 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
34 |
No Silver Bullet |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
35 |
================ |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
36 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
37 |
There is no single development, in either technology or management technique, |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
38 |
which by itself promises even one order of magnitude improvement within a |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
39 |
decade in productivity, in reliability, in simplicity. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
40 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
41 |
See: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
42 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
43 |
http://en.wikipedia.org/wiki/No_Silver_Bullet |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
44 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
45 |
Rule of thumb |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
46 |
============= |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
47 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
48 |
A rule of thumb is a principle that postulate in some case use simple |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
49 |
procedure wich produce approximate result instead use complex but exact |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
50 |
produce. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
51 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
52 |
See: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
53 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
54 |
http://en.wikipedia.org/wiki/Rule_of_thumb |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
55 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
56 |
The Zero One or Infinity |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
57 |
======================== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
58 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
59 |
The Zero One or Infinity (ZOI) rule is a rule of thumb in software design. It |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
60 |
suggests that arbitrary limits on the number of instances of a particular |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
61 |
entity should not be allowed. Specifically, that an entity should either be |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
62 |
forbidden entirely, one should be allowed, or any number (presumably, to the |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
63 |
limit of available storage) of them should be allowed. It should not be the |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
64 |
software that puts a hard limit on the number of instances of the entity. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
65 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
66 |
http://en.wikipedia.org/wiki/Zero_One_Infinity |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
67 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
68 |
80-20 rule (pareto principle) |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
69 |
============================= |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
70 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
71 |
This rule postulate that roughly 80% of the effects come from 20% of the |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
72 |
causes. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
73 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
74 |
This rule applied to optimisation (most time spent by program only by little |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
75 |
piece of code), functionality (80% of users use only 20% of program |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
76 |
functionality); bugs (fixing the top 20% of most reported bugs solve 80% of |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
77 |
the error and crashes). |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
78 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
79 |
See: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
80 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
81 |
http://en.wikipedia.org/wiki/80:20_rule |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
82 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
83 |
1% rule |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
84 |
======= |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
85 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
86 |
The 1% rule states that the number of people who create content on the |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
87 |
internet represents approximately 1% (or less) of the people actually viewing |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
88 |
that content. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
89 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
90 |
See: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
91 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
92 |
http://en.wikipedia.org/wiki/1%25_rule_%28Internet_culture%29 |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
93 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
94 |
Parkinson's Law |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
95 |
=============== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
96 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
97 |
Work expands so as to fill the time available for its completion. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
98 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
99 |
Data expands to fill the space available for storage. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
100 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
101 |
See: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
102 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
103 |
http://en.wikipedia.org/wiki/Parkinson%27s_law |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
104 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
105 |
Ninety-ninety rule |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
106 |
================== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
107 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
108 |
The first 90% of the code accounts for the first 10% of the development time. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
109 |
The remaining 10% of the code accounts for the other 90% of the development |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
110 |
time. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
111 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
112 |
See: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
113 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
114 |
http://en.wikipedia.org/wiki/Ninety-ninety_rule |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
115 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
116 |
Wirth's law |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
117 |
=========== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
118 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
119 |
Software is getting slower more rapidly than hardware becomes faster. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
120 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
121 |
See: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
122 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
123 |
http://en.wikipedia.org/wiki/Wirth%27s_law |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
124 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
125 |
Student syndrome |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
126 |
================ |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
127 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
128 |
Student syndrome refers to the phenomenon that many people will start to fully |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
129 |
apply themselves to a task just at the last possible moment before a deadline. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
130 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
131 |
The student syndrome is a form of procrastination (). |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
132 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
133 |
See: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
134 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
135 |
http://en.wikipedia.org/wiki/Student_syndrome |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
136 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
137 |
Conway's Law |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
138 |
============ |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
139 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
140 |
...organizations which design systems ... are constrained to produce designs |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
141 |
which are copies of the communication structures of these organizations. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
142 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
143 |
Example: Consider a two-person team of software engineers, A and B. Say A |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
144 |
designs and codes a software class X. Later, the team discovers that class X |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
145 |
needs some new features. If A adds the features, A is likely to simply expand X |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
146 |
to include the new features. If B adds the new features, B may be afraid of |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
147 |
breaking X, and so instead will create a new derived class X2 that inherits X's |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
148 |
features, and puts the new features in X2. So the final design is a reflection |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
149 |
of who implemented the functionality. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
150 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
151 |
A real life example: NASA's Mars Climate Orbiter crashed because one team used |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
152 |
United States customary units (e.g., inches, feet and pounds) while the other |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
153 |
used metric units for a key spacecraft operation. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
154 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
155 |
See: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
156 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
157 |
http://en.wikipedia.org/wiki/Conway%27s_Law |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
158 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
159 |
Brooks's law |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
160 |
============ |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
161 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
162 |
It takes some time for the people added to a project to become productive. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
163 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
164 |
Communication overheads increase as the number of people increases. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
165 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
166 |
Adding manpower to a late software project makes it later. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
167 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
168 |
See: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
169 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
170 |
http://en.wikipedia.org/wiki/Brooks%27_law |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
171 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
172 |
Code bloat |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
173 |
========== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
174 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
175 |
Code bloat is the production of code that is perceived as unnecessarily long, |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
176 |
slow, or otherwise wasteful of resources. Code bloat generally refers to |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
177 |
source code size but sometimes is used to refer to the generated code size or |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
178 |
even the binary file size. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
179 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
180 |
http://en.wikipedia.org/wiki/Code_bloat |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
181 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
182 |
Software bloat |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
183 |
============== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
184 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
185 |
Software bloat is a term used to describe the tendency of newer computer |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
186 |
programs to have a larger installation footprint, or have many unnecessary |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
187 |
features that are not used by end users, or just generally use more system |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
188 |
resources than necessary, while offering little or no benefit to its users. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
189 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
190 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
191 |
Comparison of Microsoft Windows minimum hardware requirements (for 32-bit |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
192 |
versions): |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
193 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
194 |
Windows version Processor Memory Hard disk |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
195 |
Windows 95[4] 25 MHz 4 MB ~50 MB |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
196 |
Windows 98[5] 66 MHz 16 MB ~200 MB |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
197 |
Windows 2000[6] 133 MHz 32 MB 650 MB |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
198 |
Windows XP[7] 233 MHz 64 MB 1.5 GB |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
199 |
Windows Vista[8] 800 MHz 512 MB 15 GB |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
200 |
Windows 7[9] 1 GHz 1 GB 16 GB |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
201 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
202 |
.. epigraph:: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
203 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
204 |
Every program attempts to expand until it can read mail. Those programs which |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
205 |
cannot so expand are replaced by ones which can. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
206 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
207 |
-- Jamie Zawinski |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
208 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
209 |
Second-system effect |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
210 |
==================== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
211 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
212 |
In computing, the second-system effect or sometimes the second-system syndrome |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
213 |
refers to the tendency, when following on from a relatively small, elegant, |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
214 |
and successful system, to design the successor as an elephantine, |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
215 |
feature-laden monstrosity. The term was first used by Fred Brooks in his |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
216 |
classic The Mythical Man-Month.[1] It described the jump from a set of simple |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
217 |
operating systems on the IBM 700/7000 series to OS/360 on the 360 series. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
218 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
219 |
Inner-platform effect |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
220 |
===================== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
221 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
222 |
The inner-platform effect is the tendency of software architects to create a |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
223 |
system so customizable as to become a replica, and often a poor replica, of |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
224 |
the software development platform they are using. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
225 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
226 |
XXX read more http://thedailywtf.com/Articles/The_Inner-Platform_Effect.aspx |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
227 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
228 |
http://en.wikipedia.org/wiki/Inner-platform_effect |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
229 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
230 |
Feature creep |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
231 |
============= |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
232 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
233 |
Feature creep is the proliferation of features in a product such as computer |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
234 |
software. Extra features go beyond the basic function of the product and so |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
235 |
can result in baroque over-complication, or "featuritis", rather than simple, |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
236 |
elegant design. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
237 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
238 |
http://en.wikipedia.org/wiki/Feature_creep |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
239 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
240 |
Bullet-point engineering |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
241 |
======================== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
242 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
243 |
Bullet-point engineering is a software design anti-pattern where developers |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
244 |
use the features of competing software packages as checklists of features to |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
245 |
implement in their own product. These features are often implemented poorly |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
246 |
and haphazardly, without any real design, merely so they can be added to a |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
247 |
bulleted list of features in marketing material. Bullet point engineering |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
248 |
often leads to feature creep and software bloat but may also simply result in |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
249 |
a poorly designed imitative product. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
250 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
251 |
http://en.wikipedia.org/wiki/Bullet-point_engineering |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
252 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
253 |
KISS |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
254 |
==== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
255 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
256 |
Keep it simple and stupid, or keep it simple, stupid! |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
257 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
258 |
Instruction creep and function creep, two instances of creeping featuritis, |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
259 |
are examples of failure to follow the KISS principle in software development. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
260 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
261 |
http://en.wikipedia.org/wiki/KISS_principle |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
262 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
263 |
Minimalism |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
264 |
========== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
265 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
266 |
In computing, minimalism refers to the application of minimalist philosophies |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
267 |
and principles in hardware and software design and usage. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
268 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
269 |
http://en.wikipedia.org/wiki/Minimalism_%28computing%29 |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
270 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
271 |
Unix philosophy |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
272 |
=============== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
273 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
274 |
.. epigraph:: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
275 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
276 |
"Do one thing and do it well." |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
277 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
278 |
-- Doug McIlroy |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
279 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
280 |
.. epigraph:: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
281 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
282 |
"Write programs that do one thing and do it well. Write programs to work |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
283 |
together. Write programs to handle text streams, because that is a universal |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
284 |
interface." |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
285 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
286 |
-- Doug McIlroy |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
287 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
288 |
.. epigraph:: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
289 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
290 |
#. You cannot tell where a program is going to spend its time. Bottlenecks |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
291 |
occur in surprising places, so do not try to second guess and put in a speed |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
292 |
hack until you've proven that's where the bottleneck is. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
293 |
#. Measure. Do not tune for speed until your performance analysis tool tells |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
294 |
you which part of the code overwhelms the rest. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
295 |
#. Fancy algorithms tend to run more slowly on small data sets than simple |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
296 |
algorithms. They tend to have a large constant factor in O(n) analysis, and |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
297 |
n is usually small. So don't get fancy unless Rule 2 indicates that n is big |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
298 |
enough. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
299 |
#. Simplify your algorithms and data structures wherever it makes sense because |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
300 |
fancy algorithms are more difficult to implement without defects. The data |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
301 |
structures in most programs can be built from array lists, linked lists, |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
302 |
hash tables, and binary trees. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
303 |
#. Data dominates. If you have chosen the right data structures and organized |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
304 |
things well, the algorithms will almost always be self-evident. Data |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
305 |
structures, not algorithms, are central to programming. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
306 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
307 |
-- Pike: Notes on Programming in C. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
308 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
309 |
.. epigraph:: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
310 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
311 |
1. Small is beautiful. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
312 |
2. Make each program do one thing well. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
313 |
3. Build a prototype as soon as possible. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
314 |
4. Choose portability over efficiency. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
315 |
5. Store data in flat text files. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
316 |
6. Use software leverage to your advantage. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
317 |
7. Use shell scripts to increase leverage and portability. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
318 |
8. Avoid captive user interfaces. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
319 |
9. Make every program a filter. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
320 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
321 |
-- Mike Gancarz: The UNIX Philosophy |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
322 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
323 |
With this not all agree: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
324 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
325 |
1. Allow the user to tailor the environment. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
326 |
2. Make operating system kernels small and lightweight. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
327 |
3. Use lowercase and keep it short. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
328 |
4. Save trees. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
329 |
5. Silence is golden. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
330 |
6. Think parallel. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
331 |
7. The sum of the parts is greater than the whole. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
332 |
8. Look for the 90-percent solution. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
333 |
9. Worse is better. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
334 |
10. Think hierarchically. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
335 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
336 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
337 |
** Misc. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
338 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
339 |
"Unix is simple. It just takes a genius to understand its simplicity." |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
340 |
-– Dennis Ritchie |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
341 |
"Unix never says 'please'." |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
342 |
-– Rob Pike |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
343 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
344 |
http://en.wikipedia.org/wiki/Unix_philosophy |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
345 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
346 |
Worse is better |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
347 |
=============== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
348 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
349 |
In the "Worse is better" design style, simplicity of both the interface and |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
350 |
the implementation is more important than any other attribute of the system — |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
351 |
including correctness, consistency and completeness. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
352 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
353 |
Simplicity |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
354 |
The design must be simple, both in implementation and interface. It is |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
355 |
more important for the implementation to be simpler than the interface. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
356 |
Simplicity is the most important consideration in a design. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
357 |
Correctness |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
358 |
The design must be correct in all observable aspects. It is slightly better |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
359 |
to be simple than correct. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
360 |
Consistency |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
361 |
The design must not be overly inconsistent. Consistency can be sacrificed |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
362 |
for simplicity in some cases, but it is better to drop those parts of the |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
363 |
design that deal with less common circumstances than to introduce either |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
364 |
implementational complexity or inconsistency. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
365 |
Completeness |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
366 |
The design must cover as many important situations as is practical. All |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
367 |
reasonably expected cases should be covered. Completeness can be sacrificed |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
368 |
in favor of any other quality. In fact, completeness must be sacrificed |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
369 |
whenever implementation simplicity is jeopardized. Consistency can be |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
370 |
sacrificed to achieve completeness if simplicity is retained; especially |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
371 |
worthless is consistency of interface. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
372 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
373 |
http://dreamsongs.com/WIB.html |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
374 |
Lisp: Good News, Bad News, How to Win Big |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
375 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
376 |
The right thing |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
377 |
=============== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
378 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
379 |
The MIT approach (known as "The right thing"): |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
380 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
381 |
Simplicity |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
382 |
The design must be simple, both in implementation and interface. It is |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
383 |
more important for the interface to be simpler than the implementation. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
384 |
Correctness |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
385 |
The design must be correct in all observable aspects. Incorrectness is |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
386 |
simply not allowed. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
387 |
Consistency |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
388 |
The design must be consistent. A design is allowed to be slightly less |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
389 |
simple and less complete to avoid inconsistency. Consistency is as important |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
390 |
as correctness. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
391 |
Completeness |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
392 |
The design must cover as many important situations as is practical. All |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
393 |
reasonably expected cases must be covered. Simplicity is not allowed to |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
394 |
overly reduce completeness. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
395 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
396 |
http://dreamsongs.com/WIB.html |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
397 |
Lisp: Good News, Bad News, How to Win Big |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
398 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
399 |
YAGNI |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
400 |
===== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
401 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
402 |
"You aren't gonna need it" (or YAGNI for short) is the principle in extreme |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
403 |
programming that programmers should not add functionality until it is |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
404 |
necessary. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
405 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
406 |
http://en.wikipedia.org/wiki/You_ain%27t_gonna_need_it |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
407 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
408 |
DRY (DIE) |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
409 |
========= |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
410 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
411 |
Don't Repeat Yourself (DRY) or Duplication is Evil (DIE). |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
412 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
413 |
* VCS allow multiple and diverging copies ("branches"). |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
414 |
* Source code generation. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
415 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
416 |
http://en.wikipedia.org/wiki/Don%27t_repeat_yourself |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
417 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
418 |
Do it yourself (DIY) |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
419 |
==================== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
420 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
421 |
Do it yourself (or DIY) is a term used to describe building, modifying, or |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
422 |
repairing of something without the aid of experts or professionals. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
423 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
424 |
when tasklist longer then people life mutch easy use already written libraries |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
425 |
then wrote own. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
426 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
427 |
http://en.wikipedia.org/wiki/Do_it_yourself |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
428 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
429 |
Once and Only Once (OAOO) |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
430 |
========================= |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
431 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
432 |
MoSCoW Method |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
433 |
============= |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
434 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
435 |
The capital letters in MoSCoW stand for: |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
436 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
437 |
* M - MUST have this (included in the current delivery timebox in order |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
438 |
for it to be a success). |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
439 |
* S - SHOULD have this if at all possible (critical to the success of the |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
440 |
project, but are not necessary for delivery in the current delivery |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
441 |
timebox). |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
442 |
* C - COULD have this if it does not affect anything else (nice to have). |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
443 |
* W - WON'T have this time but WOULD like in the future. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
444 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
445 |
http://en.wikipedia.org/wiki/MoSCoW_Method |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
446 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
447 |
Separation of concerns |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
448 |
====================== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
449 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
450 |
In computer science, separation of concerns (SoC) is the process of separating |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
451 |
a computer program into distinct features that overlap in functionality as |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
452 |
little as possible. A concern is any piece of interest or focus in a program. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
453 |
Typically, concerns are synonymous with features or behaviors. Progress |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
454 |
towards SoC is traditionally achieved through modularity of programming and |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
455 |
encapsulation (or "transparency" of operation), with the help of information |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
456 |
hiding. Layered designs in information systems are also often based on |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
457 |
separation of concerns (e.g., presentation layer, business logic layer, data |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
458 |
access layer, database layer). |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
459 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
460 |
HyperText Markup Language (HTML) and cascading style sheets (CSS) are |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
461 |
languages intended to separate style from content. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
462 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
463 |
http://en.wikipedia.org/wiki/Separation_of_concerns |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
464 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
465 |
Modular design |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
466 |
============== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
467 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
468 |
In systems engineering, modular design — or "modularity in design" — is an |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
469 |
approach that subdivides a system into smaller parts (modules) that can be |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
470 |
independently created and then used in different systems to drive multiple |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
471 |
functionalities. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
472 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
473 |
http://en.wikipedia.org/wiki/Modular_design |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
474 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
475 |
Occam's razor |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
476 |
============= |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
477 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
478 |
"entia non sunt multiplicanda praeter necessitatem" |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
479 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
480 |
Entities must not be multiplied beyond necessity. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
481 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
482 |
Code and fix |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
483 |
============ |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
484 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
485 |
Programmers immediately begin producing code. Bugs must be fixed before the |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
486 |
product can be shipped. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
487 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
488 |
http://en.wikipedia.org/wiki/Code_and_fix |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
489 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
490 |
Cowboy coding |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
491 |
============= |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
492 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
493 |
Cowboy coding is a term used to describe software development where the |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
494 |
developers have autonomy over the development process. This includes control |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
495 |
of the project's schedule, algorithms, tools, and coding style. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
496 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
497 |
A cowboy coder can be a lone developer or part of a group of developers with |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
498 |
either no external management or management that controls only non-development |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
499 |
aspects of the project, such as its nature, scope, and feature set (the |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
500 |
"what", but not the "how"). |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
501 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
502 |
http://en.wikipedia.org/wiki/Cowboy_coding |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
503 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
504 |
Extreme Programming |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
505 |
=================== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
506 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
507 |
http://en.wikipedia.org/wiki/Extreme_Programming |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
508 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
509 |
Hollywood Principle |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
510 |
=================== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
511 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
512 |
In computer programming, the Hollywood Principle is stated as "don't call us, |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
513 |
we'll call you." It has applications in software engineering; see also |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
514 |
implicit invocation for a related architectural principle. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
515 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
516 |
http://en.wikipedia.org/wiki/Hollywood_Principle |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
517 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
518 |
Inversion of control |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
519 |
==================== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
520 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
521 |
Inversion of control, or IoC, is an abstract principle describing an aspect of |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
522 |
some software architecture designs in which the flow of control of a system is |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
523 |
inverted in comparison to procedural programming. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
524 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
525 |
http://en.wikipedia.org/wiki/Inversion_of_control |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
526 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
527 |
Literate programming |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
528 |
==================== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
529 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
530 |
http://en.wikipedia.org/wiki/Literate_Programming |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
531 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
532 |
Model-driven architecture |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
533 |
========================= |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
534 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
535 |
http://en.wikipedia.org/wiki/Model-driven_architecture |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
536 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
537 |
Quick-and-dirty |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
538 |
=============== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
539 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
540 |
Quick-and-dirty is a term used in reference to anything that is an easy way to |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
541 |
implement a workaround or "kludge." Its usage is popular among programmers, |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
542 |
who use it to describe a crude solution or programming implementation that is |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
543 |
imperfect, inelegant, or otherwise inadequate, but which solves or masks the |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
544 |
problem at hand, and is generally faster and easier to put in place than a |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
545 |
proper solution. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
546 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
547 |
http://en.wikipedia.org/wiki/Quick-and-dirty |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
548 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
549 |
Release early, release often |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
550 |
============================ |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
551 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
552 |
Release early, release often (sometimes abbreviated RERO) is a software |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
553 |
development philosophy that emphasizes the importance of early and frequent |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
554 |
releases in creating a tight feedback loop between developers and testers or |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
555 |
users. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
556 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
557 |
http://en.wikipedia.org/wiki/Release_early,_release_often |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
558 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
559 |
Test-driven development |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
560 |
======================= |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
561 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
562 |
Test-driven development (TDD) is a software development technique that relies |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
563 |
on the repetition of a very short development cycle: First the developer |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
564 |
writes a failing automated test case that defines a desired improvement or new |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
565 |
function, then produces code to pass that test and finally refactors the new |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
566 |
code to acceptable standards. |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
567 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
568 |
http://en.wikipedia.org/wiki/Test-driven_development |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
569 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
570 |
Unified Process |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
571 |
=============== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
572 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
573 |
The Unified Software Development Process or Unified Process is a popular |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
574 |
iterative and incremental software development process framework. The |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
575 |
best-known and extensively documented refinement of the Unified Process is the |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
576 |
Rational Unified Process (RUP). |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
577 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
578 |
http://en.wikipedia.org/wiki/Unified_Process |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
579 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
580 |
Waterfall model |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
581 |
=============== |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
582 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
583 |
1. Requirements specification |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
584 |
2. Design |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
585 |
3. Construction (AKA implementation or coding) |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
586 |
4. Integration |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
587 |
5. Testing and debugging (AKA Validation) |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
588 |
6. Installation |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
589 |
7. Maintenance |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
590 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
591 |
http://en.wikipedia.org/wiki/Waterfall_model |
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
592 |
|
870693ce6ff0
Fix my RST article style by 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
593 |
* Do it yourself. |