software engineering the genesis

48
SOFTWARE ENGINEERING THE GENESIS Pawel Szulc @rabbitonweb

Upload: pawel-szulc

Post on 23-Jan-2018

146 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Software engineering  the genesis

SOFTWARE ENGINEERING THE GENESIS

Pawel Szulc

@rabbitonweb

Page 2: Software engineering  the genesis

Software engineers

Page 3: Software engineering  the genesis

“Software Engineering” 7th-11th Oct 1968

Page 4: Software engineering  the genesis
Page 5: Software engineering  the genesis
Page 6: Software engineering  the genesis
Page 7: Software engineering  the genesis
Page 8: Software engineering  the genesis

49years ago

Page 9: Software engineering  the genesis

“A software system can best be designed if the testing is interlaced with the designing

instead of being used after the design.”

Page 10: Software engineering  the genesis

“The good systems that are presently working were written by small groups. More than

twenty programmers working on a project is usually disastrous.”

Page 11: Software engineering  the genesis

“The reason that small groups have succeeded (...) is that there is a need for a certain structure of

communication, and a structure of decision making in the development of software. This succeeds with small

groups, because it can all be done intuitively by one person serving as most of the network. For large groups

to succeed, we (...) have to face organizational structure for communications and decisions.”

Page 12: Software engineering  the genesis
Page 13: Software engineering  the genesis

1. Flowchart until you think you understand the problem.

Page 14: Software engineering  the genesis

1. Flowchart until you think you understand the problem. 2. Write code until you realize that you don’t.

Page 15: Software engineering  the genesis

1. Flowchart until you think you understand the problem. 2. Write code until you realize that you don’t. 3. Go back and re-do the flowchart.

Page 16: Software engineering  the genesis

1. Flowchart until you think you understand the problem. 2. Write code until you realize that you don’t. 3. Go back and re-do the flowchart. 4. Write some more code and iterate to what you feel is the

correct solution.

Page 17: Software engineering  the genesis
Page 18: Software engineering  the genesis

“Selig’s picture requires a feedback loop, for monitoring of the system. One must collect

data on system performance, for use in future improvements.”

Page 19: Software engineering  the genesis

“Design and implementation proceeded in a number of stages. Each stage was typified by a period of intellectual activity followed by a

period of program reconstruction”

Page 20: Software engineering  the genesis

“Each stage produced a useable product and the period between the end of one stage and the start of the next provided the operational experience upon which the next design was

based.”

Page 21: Software engineering  the genesis

“In general the products of successive stages approached the final design requirement;

each stage included more facilities than the last.”

Page 22: Software engineering  the genesis

Speaking about waterfall...

Page 23: Software engineering  the genesis
Page 24: Software engineering  the genesis
Page 25: Software engineering  the genesis

“I believe in this concept, but the implementation described above is risky and invites failure. The testing phase which occurs at the end of the development cycle is the first event for which timing, storage, input/output transfers, etc., are experienced as distinguished from analyzed. (...) then invariably a major redesign is required. A simple (...) redo of some isolated code will not fix these kinds of difficulties. The required design changes are likely to be so disruptive that the software requirements upon which the design is based and which provides the rationale for everything are violated. Either the requirements must be modified, or a substantial change in the design is required. In effect the development process has returned to the origin and one can expect up to a lO0% overrun in schedule and/or costs.”

Page 26: Software engineering  the genesis

“There are 2 hard problems in computer science:

Page 27: Software engineering  the genesis

“There are 2 hard problems in computer science: cache invalidation,

Page 28: Software engineering  the genesis

“There are 2 hard problems in computer science: cache invalidation, naming things

Page 29: Software engineering  the genesis

“There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.

Page 30: Software engineering  the genesis

“There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.

Page 31: Software engineering  the genesis

Microservices

Page 32: Software engineering  the genesis

MicroservicesWhat is a microservice?

Page 33: Software engineering  the genesis

MicroservicesWhat is a difference between Microservices and SOA?

Page 34: Software engineering  the genesis

When we've talked about microservices a common question

is whether this is just Service Oriented Architecture (SOA)

that we saw a decade ago. (...) The problem, however, is that

SOA means too many different things, (...) the fact that

SOA means such different things means it's valuable to

have a term that more crisply defines this architectural

style.

Page 35: Software engineering  the genesis

“Alexander Pasik, a former analyst at Gartner, coined the term SOA. (...) Pasik was driven to create term SOA because “client/server” had lost its classical meaning.”from “SOA in Practice: The Art of Distributed System Design” by Nicolai M. Josuttis

Page 36: Software engineering  the genesis
Page 37: Software engineering  the genesis

“The common notion that Gartner Group invented SOA is simply absurd. (...) the underlying approach to distributed computing was invented at least 15 years earlier.”

Page 38: Software engineering  the genesis

Are the problems being addressed and solved?

Page 39: Software engineering  the genesis

Go Language

Page 40: Software engineering  the genesis
Page 41: Software engineering  the genesis
Page 42: Software engineering  the genesis

Software Engineer?

Page 43: Software engineering  the genesis

Software Craftsman

Page 44: Software engineering  the genesis

Who to blame?

Page 45: Software engineering  the genesis

The light at the end of the tunnel...

Page 46: Software engineering  the genesis

Functional Programming

Page 47: Software engineering  the genesis
Page 48: Software engineering  the genesis

The End

Pawel Szulc

Slam Data

@rabbitonweb

http://rabbitonweb.com

[email protected]