about summary refs log tree commit diff
path: root/usth/ICT2.7/P3L1 Software Architecture Subtitles/7 - Architectural Degradation - lang_en_vs6.srt
blob: 2313f82cd756b74325250bf4a7d08b8c8c07bb97 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
1
00:00:00,150 --> 00:00:02,790
And there are two important and related concepts that

2
00:00:02,790 --> 00:00:04,790
have to do with the way software architecture

3
00:00:04,790 --> 00:00:08,109
evolves. The first one is Architectural Drift, which is

4
00:00:08,109 --> 00:00:12,140
the introduction of architectural design decisions that are orthogonal to

5
00:00:12,140 --> 00:00:15,870
a system's prescriptive architecture. That is, they're not included

6
00:00:15,870 --> 00:00:20,080
in, encompassed by, or implied by the prescriptive architecture.

7
00:00:20,080 --> 00:00:22,300
And the result of Architectural Drift is that you

8
00:00:22,300 --> 00:00:25,220
start from a clean architecture, like the one that I'm

9
00:00:25,220 --> 00:00:28,830
showing here, and then you start adding pieces without following a clear plan.

10
00:00:28,830 --> 00:00:32,229
Like, for example, here, we add an additional room here, but we don't really

11
00:00:32,229 --> 00:00:34,380
do it in the right way so we need to add something else

12
00:00:34,380 --> 00:00:37,090
to keep it stable. And then maybe we want some more room so we

13
00:00:37,090 --> 00:00:40,310
add a tent. And then another side of the house, it doesn't really

14
00:00:40,310 --> 00:00:43,540
follow the same architecture but it doesn't matter, we just put it there because

15
00:00:43,540 --> 00:00:46,690
we want to expand. And maybe then we want to put something classic

16
00:00:46,690 --> 00:00:48,210
there, even though it doesn't really fit

17
00:00:48,210 --> 00:00:50,520
the overall design and the overall architecture.

18
00:00:50,520 --> 00:00:52,160
So I think you get my point, the fact

19
00:00:52,160 --> 00:00:56,210
that the architecture then becomes unnecessarily complex, hard to understand

20
00:00:56,210 --> 00:00:58,410
and ultimately awkward, just like the one that I'm

21
00:00:58,410 --> 00:01:00,880
showing here, that goes from the original building into this

22
00:01:00,880 --> 00:01:04,870
final monstrosity. The second concept is Architectural Erosion, which

23
00:01:04,870 --> 00:01:08,560
is the introduction of architectural design decisions that violate a

24
00:01:08,560 --> 00:01:12,070
system prescriptive architecture. So in this case, that we were

25
00:01:12,070 --> 00:01:14,070
introducing decisions that were orthogonal,

26
00:01:14,070 --> 00:01:15,580
here, were introducing this decisions

27
00:01:15,580 --> 00:01:17,410
that don't comply with the prescriptive

28
00:01:17,410 --> 00:01:20,140
architecture. And the result of Architectural Erosion

29
00:01:20,140 --> 00:01:22,590
is typically a poor architecture an

30
00:01:22,590 --> 00:01:24,550
architecture that is going to have problems in

31
00:01:24,550 --> 00:01:27,040
the future. So both Architectural Drift

32
00:01:27,040 --> 00:01:29,640
and Architectural Erosion take you away in

33
00:01:29,640 --> 00:01:32,940
different ways from what you think your software architecture is or should be.