crisis del software - universidad nacional de colombia · crisis del software gabriel mañana...

16
Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia

Upload: others

Post on 14-Mar-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a

Crisis del SoftwareGabriel Mañana Guichón

Universidad Nacional de Colombia

Page 2: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a

Wikipedia (2014):

“Software crisis was a term used in the early days of computing science for the difficulty of writing useful and efficient computer programs in the required time.”

(LOL)

Page 3: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a

McKinsey & Company + Oxford University Research (2012):

“17% of software projects go so badly, they threaten the very existence of the company.”

http://www.mckinsey.com/insights/

Page 4: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a

(*) 5400 IT projects ~ US$66 billion

McKinsey & Company + Oxford University Research (2012):

“On average, large IT projects run 45% over budget* and 7% over time, while delivering 56% less value than predicted.”http://www.mckinsey.com/insights/

Page 5: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a

http://www.foundersfund.com

Page 6: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a

Causas:

● Complejidad del Hardware (multi-threading, multi-core, ...)

● Complejidad del Software (sistemas distribuidos, fallas parciales, apps móviles, ...)

● CONTROL DE CALIDAD (manual, incompleto, deficiente, ninguno, ...)(DB, GUI?)

Page 7: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a

Pruebas:

● Modelo de Cascada (A/D/I/M)Pruebas al final (eventualmente)

● Metodologías ÁgilesPruebas ANTES del código

* Test-Driven Development (TDD)* Behavior-Driven Development

(BDD)

Page 8: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a

Dan North on Behavior-Driven Development:

“Behaviour-driven development is about implementing an application by describing it from the point of view of its stakeholders.”

http://www.infoq.com/presentations/bdd-dan-north

Page 9: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a

Dan North on Behavior-Driven Development:

“Testing is not just about keeping defects from the users; instead, it’s about helping the team to understand the features that the users need and to deliver those features reliably and predictably.”

S. Freeman and N. Pryce, Growing Object-Oriented Software, Guided by Tests. Crawfordsville, IN: Pearson Education, 2009, ch. 1, pp. 8.

Page 10: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a

Dan North on Behavior-Driven Development:

“Write the tests for your code before writing the code itself.”

http://www.infoq.com/presentations/bdd-dan-north

Page 11: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a

Behavior-Driven Development (BDD)Derivado de:

* TDD + CI* Domain-Driven Design* Acceptance Test-Driven Planning* Neurolinguistic Programming (NLP)* Systems Thinking

Page 12: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a

Ciclo BDD:

S. Freeman and N. Pryce, Growing Object-Oriented Software, Guided by Tests. Crawfordsville, IN: Pearson Education, 2009, ch. 1, pp. 8.

Write a failing

acceptance test

Write a failing unit

test

Make the test pass

Refactor

Page 13: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a

Behavior-Driven Development (BDD)

* User story: "In order to [benefit] as a [role] I want [feature]"

* Scenarioi: Given [initial context], when [event occurs], then [ensure some outcome]

Page 14: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a

Frameworks:

● JBehave (Java), RBehave (Ruby)● Cucumber (Ruby, Java, Groovy, C#, ...) ● Jnario (Java)(BMW, Xtend, Xtext)● RSpec (Ruby), MSpec (C#)

● SpecFlow, StoryQ● Many more

Page 15: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a

ANSI, American National Standards Institute

Nota:

LAS NORMAS TÉCNICAS (ISO) GARANTIZAN LA CALIDAD DEL PROCESO, NO LA CALIDAD DEL PRODUCTO.