SlideShare a Scribd company logo
Essence and Accidents
in
Software Engineering
By
GHUFRAN JAMEEL HASAN
“I believe the hard part of building
software is the specification, design,
and testing of this conceptual
construct, not the labor or
representing it.”
NO SILVER BULLET
• Of all the monsters that fill the nightmares of our folklore, none terrify more
than werewolves, because they transform unexpectedly from the familiar into
horrors.
• Why a silver bullet?
• Silver is identified with the moon-A silver bullet offers the fastest, most
powerful, and safest way to slay the fast, powerful, and incredibly
dangerous werewolf
• Same fashion of familiar software project , at least as seen by the non-
technical manage.
NO SILVER BULLET (Cont..)
• Usually innocent and straightforward but is capable of becoming a
monster of
• Missed schedules
• Blown budge
• Flawed products
• We have no silver bullet that make software costs drop as rapidly as
computer hardware costs do.
NO SILVER BULLET (Cont..)
• Over decades, we see no silver bullet-no single development, that make
improvement in
• Productivity,
• Reliability and
• Simplicity
Essence and Accident in
Software Engineering
• All software construction involves Essential and accidental difficulties
• Software, at its core, has these essential difficulties:
• Complexity,
• Conformity,
• Changeability,
• Invisibility
Complexity
• Software is complex, even when done right.
• Combinatorial many states, syntax must be just so or else.
• Rich structure, interesting dependencies add to complexity.
• Accidental (as practiced) issues add to complexity.
• Efficient code is usually complicated code.
• Complex code is harder to evolve, results in design drift and even
more complexity.
Complexity(Cont..)
• Many problems of developing software products derive from this essential
complexity, due to complexity:
• Difficulty of communication among team members-results into product flaws, cost
overruns, and schedule delays
• Difficulty of enumerating, much less understanding unreliability
• Difficulty of invoking function- makes programs hard to use.
• Complexity of structure brings the difficulty of extending programs to new functions
without creating side effects
Conformity
• Software has to be made to agree to common interfaces,
protocols, standards, etc.
• Mostly standards for mastering complexity is arbitrary. Human
institutions and systems must conform these standards and interfaces
and they differ from
• Interface to interface, and from
• Time to time because
• They were designed by different people
Changeability
• To be successful is to be changed!
• Try to expect future unforeseen uses.
• Buildings can get changed- but the high costs of change
• Software product is found to be useful
• People try it in new cases at the edge of or beyond the original domain.
• The pressures for extended function come chiefly from users who like
the basic function and invent new uses for it.
Changeability(Cont..)
• In short, the software product is embedded in a cultural matrix of :
• Applications, users, laws, and machine vehicles.
• These all change continually, and their changes inexorably force
change upon the software product.
• In order to keep system flexible and marketable, Software is constantly
subject to pressures for change un like buildings, cars or computers
manufactured things are infrequently changed after manufacture.
• Essential changes incorporate in models, serial-no. copies of the same
basic design.
Changeability(Cont..)
• We change software because !
• It is easy to update existing systems in the field (in theory)
• We can undo changes if desired (in theory)
Invisibility
• Software is invisible and unvisualizable
• The floor plan of a building helps both architect and client evaluate
spaces, traffic flows, views. contradictions and omissions become
obvious.
• No geometrical representation like map of land, diagram of chips
• Although we can use various diagrams to help us visualize aspects of
software (control flow, data dependencies, OMT/UML)
• But that's NOT quite the same thing as, say, the blueprints of a
building.
Invisibility(Cont..)
• Still Unvisualizable ! Because..
• Even a progress in restricting and simplifying the structures of
software, they remain inherently unvisualizable, and thus do not
permit the mind to use some of its most powerful conceptual tools.
What about these Silver Bullets???
• HLLs
• Frees us from byte-level thinking (accidental complexity).
• IDE
• AI
-Certainly, AI techniques are useful in many application domains, but not
as a silver bullet to solve the SE prob.
• Graphical programming e.g UML, SDL, OOD
Promising attacks on conceptual essence
• Buy, don't build
• Requirements are the essence of a software system.
• Focusing on getting the requirements right is a direct attack on essential
problems.
• Rapid Prototyping:
• Take requirements, build mock up, show to user, analyze feedback, repeat.
• Early feedback means less chance for requirements errors (which are the
most expensive), fast turnaround in problem space to narrow
misunderstandings and educate customer.
Promising attacks on conceptual
essence(Cont..)
• Staged Delivery incremental development……
• Get a skeleton system up and running, flesh it out as you go.
• Helps to get developers feeling like system is real.
• They add their updates as they finish them.
• Microsoft (and many others) uses this approach; works well for them.
• Skillful Designers
• Find good people and keep them.
• Pay them well, encourage them.
• Above all, listen to them.
Promising attacks on conceptual
essence(Cont..)
• Skillful Designers
• However, “great software design” is mostly “pure” design (not
engineering); it’s an act of creativity and innovation balanced against
experience and good engineering.
• It’s impossible to teach.
There is no Royal Road,
but
there is a road
Good news!
We have made great headway in solving the accidental
problems!
Orders of magnitude improvements!
Bad news!
Progress on essential problems will be much slower going.
Will
Software Engineering
prove to be the silver bullet
that slays the
software productivity monster ?
Thank You

More Related Content

What's hot

SDLC, Iterative Model
SDLC, Iterative ModelSDLC, Iterative Model
SDLC, Iterative Model
Abhishek Kumar
 
What is v model
What is v modelWhat is v model
What is v model
Shivam Rathi
 
SQE Lecture 1.pptx
SQE Lecture 1.pptxSQE Lecture 1.pptx
SQE Lecture 1.pptx
UsmanShafique23
 
Software design and Software engineering.pptx
Software design and Software engineering.pptxSoftware design and Software engineering.pptx
Software design and Software engineering.pptx
DrTThendralCompSci
 
Basics in software testing
Basics in software testingBasics in software testing
Basics in software testing
TOPS Technologies
 
SOFTWARE TESTING.pptx
SOFTWARE TESTING.pptxSOFTWARE TESTING.pptx
SOFTWARE TESTING.pptx
DrTThendralCompSci
 
Software Engineering - Basics
Software Engineering - BasicsSoftware Engineering - Basics
Software Engineering - Basics
Purvik Rana
 
SOFTWARE QUALITY ASSURANCE.ppt
SOFTWARE QUALITY ASSURANCE.pptSOFTWARE QUALITY ASSURANCE.ppt
SOFTWARE QUALITY ASSURANCE.ppt
DrTThendralCompSci
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified Process
Kumar
 
Software engineer job responsibilities
Software engineer job responsibilitiesSoftware engineer job responsibilities
Software engineer job responsibilities
Teyha Mdiah
 
Interaction design
Interaction designInteraction design
Interaction design
Lakshmi Narasimhan N
 
Lect4 software economics
Lect4 software economicsLect4 software economics
Lect4 software economics
meena466141
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
Jignesh Kariya
 
SOFTWARE TESTING
SOFTWARE TESTINGSOFTWARE TESTING
SOFTWARE TESTING
Priyanka Karancy
 
Software design
Software designSoftware design
Software design
Benazir Fathima
 
Msw logo application user manual for teacher
Msw logo application user manual for teacherMsw logo application user manual for teacher
Msw logo application user manual for teacherfarah510
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
Aman Adhikari
 
Risk management in software engineering
Risk management in software engineeringRisk management in software engineering
Risk management in software engineering
deep sharma
 
Software Testing
Software TestingSoftware Testing
Software Testing
Sengu Msc
 

What's hot (20)

SDLC, Iterative Model
SDLC, Iterative ModelSDLC, Iterative Model
SDLC, Iterative Model
 
What is v model
What is v modelWhat is v model
What is v model
 
SQE Lecture 1.pptx
SQE Lecture 1.pptxSQE Lecture 1.pptx
SQE Lecture 1.pptx
 
Software design and Software engineering.pptx
Software design and Software engineering.pptxSoftware design and Software engineering.pptx
Software design and Software engineering.pptx
 
Basics in software testing
Basics in software testingBasics in software testing
Basics in software testing
 
SOFTWARE TESTING.pptx
SOFTWARE TESTING.pptxSOFTWARE TESTING.pptx
SOFTWARE TESTING.pptx
 
Software Engineering - Basics
Software Engineering - BasicsSoftware Engineering - Basics
Software Engineering - Basics
 
SOFTWARE QUALITY ASSURANCE.ppt
SOFTWARE QUALITY ASSURANCE.pptSOFTWARE QUALITY ASSURANCE.ppt
SOFTWARE QUALITY ASSURANCE.ppt
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified Process
 
Software engineer job responsibilities
Software engineer job responsibilitiesSoftware engineer job responsibilities
Software engineer job responsibilities
 
Interaction design
Interaction designInteraction design
Interaction design
 
Lect4 software economics
Lect4 software economicsLect4 software economics
Lect4 software economics
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
SOFTWARE TESTING
SOFTWARE TESTINGSOFTWARE TESTING
SOFTWARE TESTING
 
Software design
Software designSoftware design
Software design
 
Msw logo application user manual for teacher
Msw logo application user manual for teacherMsw logo application user manual for teacher
Msw logo application user manual for teacher
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Risk management in software engineering
Risk management in software engineeringRisk management in software engineering
Risk management in software engineering
 
Incremental model
Incremental modelIncremental model
Incremental model
 
Software Testing
Software TestingSoftware Testing
Software Testing
 

Viewers also liked

No silver-bullllet-1
No silver-bullllet-1No silver-bullllet-1
No silver-bullllet-1
Maria Riaz
 
Eclipse Day India 2015 - Keynote - Stephan Herrmann
Eclipse Day India 2015 - Keynote - Stephan HerrmannEclipse Day India 2015 - Keynote - Stephan Herrmann
Eclipse Day India 2015 - Keynote - Stephan Herrmann
Eclipse Day India
 
Get Ready for Agile Methods: How to manage constant and rapid change in IT pr...
Get Ready for Agile Methods: How to manage constant and rapid change in IT pr...Get Ready for Agile Methods: How to manage constant and rapid change in IT pr...
Get Ready for Agile Methods: How to manage constant and rapid change in IT pr...Dimitris Dranidis
 
Get Functional on the CLR: Intro to Functional Programming with F#
Get Functional on the CLR: Intro to Functional Programming with F# Get Functional on the CLR: Intro to Functional Programming with F#
Get Functional on the CLR: Intro to Functional Programming with F#
David Alpert
 
Overview of Software QA and What is Software Quality
Overview of Software QA and What is Software QualityOverview of Software QA and What is Software Quality
Overview of Software QA and What is Software Quality
University of Dhaka
 
Unit 8 software quality and matrices
Unit 8 software quality and matricesUnit 8 software quality and matrices
Unit 8 software quality and matrices
Preeti Mishra
 
C# Async on iOS and Android - Miguel de Icaza, CTO of Xamarin
C# Async on iOS and Android - Miguel de Icaza, CTO of XamarinC# Async on iOS and Android - Miguel de Icaza, CTO of Xamarin
C# Async on iOS and Android - Miguel de Icaza, CTO of Xamarin
Xamarin
 
Swift and Kotlin Presentation
Swift and Kotlin PresentationSwift and Kotlin Presentation
Swift and Kotlin PresentationAndrzej Sitek
 
An Empirical Study of Goto in C Code from GitHub Repositories
An Empirical Study of Goto in C Code from GitHub RepositoriesAn Empirical Study of Goto in C Code from GitHub Repositories
An Empirical Study of Goto in C Code from GitHub Repositories
SAIL_QU
 
Software reliability engineering
Software reliability engineeringSoftware reliability engineering
Software reliability engineeringMark Turner CRP
 
Software Quality
Software QualitySoftware Quality
Software Quality
sjavaad
 
Chapter 7 software reliability
Chapter 7 software reliabilityChapter 7 software reliability
Chapter 7 software reliability
despicable me
 
Agile Is the New Waterfall
Agile Is the New WaterfallAgile Is the New Waterfall
Agile Is the New Waterfall
Naresh Jain
 
Software quality
Software qualitySoftware quality
Software qualityjagadeesan
 
Kotlin
KotlinKotlin
Silver Bullet: The 5 P's to unlock your digital agenda including the one most...
Silver Bullet: The 5 P's to unlock your digital agenda including the one most...Silver Bullet: The 5 P's to unlock your digital agenda including the one most...
Silver Bullet: The 5 P's to unlock your digital agenda including the one most...
Aman Narain
 

Viewers also liked (17)

No silver-bullllet-1
No silver-bullllet-1No silver-bullllet-1
No silver-bullllet-1
 
Eclipse Day India 2015 - Keynote - Stephan Herrmann
Eclipse Day India 2015 - Keynote - Stephan HerrmannEclipse Day India 2015 - Keynote - Stephan Herrmann
Eclipse Day India 2015 - Keynote - Stephan Herrmann
 
Get Ready for Agile Methods: How to manage constant and rapid change in IT pr...
Get Ready for Agile Methods: How to manage constant and rapid change in IT pr...Get Ready for Agile Methods: How to manage constant and rapid change in IT pr...
Get Ready for Agile Methods: How to manage constant and rapid change in IT pr...
 
Get Functional on the CLR: Intro to Functional Programming with F#
Get Functional on the CLR: Intro to Functional Programming with F# Get Functional on the CLR: Intro to Functional Programming with F#
Get Functional on the CLR: Intro to Functional Programming with F#
 
Overview of Software QA and What is Software Quality
Overview of Software QA and What is Software QualityOverview of Software QA and What is Software Quality
Overview of Software QA and What is Software Quality
 
Unit 8 software quality and matrices
Unit 8 software quality and matricesUnit 8 software quality and matrices
Unit 8 software quality and matrices
 
C# Async on iOS and Android - Miguel de Icaza, CTO of Xamarin
C# Async on iOS and Android - Miguel de Icaza, CTO of XamarinC# Async on iOS and Android - Miguel de Icaza, CTO of Xamarin
C# Async on iOS and Android - Miguel de Icaza, CTO of Xamarin
 
Swift and Kotlin Presentation
Swift and Kotlin PresentationSwift and Kotlin Presentation
Swift and Kotlin Presentation
 
An Empirical Study of Goto in C Code from GitHub Repositories
An Empirical Study of Goto in C Code from GitHub RepositoriesAn Empirical Study of Goto in C Code from GitHub Repositories
An Empirical Study of Goto in C Code from GitHub Repositories
 
Software reliability engineering
Software reliability engineeringSoftware reliability engineering
Software reliability engineering
 
Software Quality
Software QualitySoftware Quality
Software Quality
 
Chapter 7 software reliability
Chapter 7 software reliabilityChapter 7 software reliability
Chapter 7 software reliability
 
Software quality
Software qualitySoftware quality
Software quality
 
Agile Is the New Waterfall
Agile Is the New WaterfallAgile Is the New Waterfall
Agile Is the New Waterfall
 
Software quality
Software qualitySoftware quality
Software quality
 
Kotlin
KotlinKotlin
Kotlin
 
Silver Bullet: The 5 P's to unlock your digital agenda including the one most...
Silver Bullet: The 5 P's to unlock your digital agenda including the one most...Silver Bullet: The 5 P's to unlock your digital agenda including the one most...
Silver Bullet: The 5 P's to unlock your digital agenda including the one most...
 

Similar to No silver bullet

Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an Introduction
Ajit Nayak
 
Deep Dive into the Idea of Software Architecture
Deep Dive into the Idea of Software ArchitectureDeep Dive into the Idea of Software Architecture
Deep Dive into the Idea of Software Architecture
Matthew Clarke
 
Kelis king - introduction to s.e.
Kelis king -  introduction to s.e.Kelis king -  introduction to s.e.
Kelis king - introduction to s.e.
KelisKing
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
Rupesh Vaishnav
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
ShudipPal
 
software engineering
software engineeringsoftware engineering
software engineering
Azad public school
 
Ten Advices for Architects
Ten Advices for ArchitectsTen Advices for Architects
Ten Advices for Architects
Eberhard Wolff
 
10 Hinweise für Architekten
10 Hinweise für Architekten10 Hinweise für Architekten
10 Hinweise für Architekten
adesso AG
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-development
Zahid Hussain
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introduction
Taymoor Nazmy
 
Lec 1 Introduction to Software Engg.pptx
Lec 1 Introduction to Software Engg.pptxLec 1 Introduction to Software Engg.pptx
Lec 1 Introduction to Software Engg.pptx
Abdullah Khan
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
ryan aja
 
Why Is Managing Software So Hard?
Why Is Managing Software So Hard?Why Is Managing Software So Hard?
Why Is Managing Software So Hard?
Michael Lamont
 
SE
SESE
Chapter 01
Chapter 01Chapter 01
Chapter 01
AlenaDion
 
Introduction to Software Engineering.ppt
Introduction to Software Engineering.pptIntroduction to Software Engineering.ppt
Introduction to Software Engineering.ppt
BambangWahono3
 
Lecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringLecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software Engineering
Achmad Solichin
 
Cyber security - It starts with the embedded system
Cyber security - It starts with the embedded systemCyber security - It starts with the embedded system
Cyber security - It starts with the embedded system
Rogue Wave Software
 
Using Defensive Pessimism to Build Great Software at YML
Using Defensive Pessimism to Build Great Software at YMLUsing Defensive Pessimism to Build Great Software at YML
Using Defensive Pessimism to Build Great Software at YML
Adam_Talcott
 

Similar to No silver bullet (20)

Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an Introduction
 
Deep Dive into the Idea of Software Architecture
Deep Dive into the Idea of Software ArchitectureDeep Dive into the Idea of Software Architecture
Deep Dive into the Idea of Software Architecture
 
Kelis king - introduction to s.e.
Kelis king -  introduction to s.e.Kelis king -  introduction to s.e.
Kelis king - introduction to s.e.
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 
software engineering
software engineeringsoftware engineering
software engineering
 
Ten Advices for Architects
Ten Advices for ArchitectsTen Advices for Architects
Ten Advices for Architects
 
10 Hinweise für Architekten
10 Hinweise für Architekten10 Hinweise für Architekten
10 Hinweise für Architekten
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-development
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introduction
 
Lec 1 Introduction to Software Engg.pptx
Lec 1 Introduction to Software Engg.pptxLec 1 Introduction to Software Engg.pptx
Lec 1 Introduction to Software Engg.pptx
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Why Is Managing Software So Hard?
Why Is Managing Software So Hard?Why Is Managing Software So Hard?
Why Is Managing Software So Hard?
 
SE
SESE
SE
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Introduction to Software Engineering.ppt
Introduction to Software Engineering.pptIntroduction to Software Engineering.ppt
Introduction to Software Engineering.ppt
 
Lecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringLecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software Engineering
 
Cyber security - It starts with the embedded system
Cyber security - It starts with the embedded systemCyber security - It starts with the embedded system
Cyber security - It starts with the embedded system
 
Using Defensive Pessimism to Build Great Software at YML
Using Defensive Pessimism to Build Great Software at YMLUsing Defensive Pessimism to Build Great Software at YML
Using Defensive Pessimism to Build Great Software at YML
 

More from Ghufran Hasan

Great personalities
Great personalitiesGreat personalities
Great personalities
Ghufran Hasan
 
Lab project manual version 2
Lab project manual version 2Lab project manual version 2
Lab project manual version 2
Ghufran Hasan
 
Lab project manual version 1
Lab project manual version 1Lab project manual version 1
Lab project manual version 1
Ghufran Hasan
 
VMware
VMware VMware
VMware
Ghufran Hasan
 
Ahsan masood(11720) ghufran hassan(11432)
Ahsan masood(11720) ghufran hassan(11432)Ahsan masood(11720) ghufran hassan(11432)
Ahsan masood(11720) ghufran hassan(11432)
Ghufran Hasan
 
Ring counter
Ring counterRing counter
Ring counter
Ghufran Hasan
 
Ahsan masood(11720) ghufran hassan(11432)
Ahsan masood(11720) ghufran hassan(11432)Ahsan masood(11720) ghufran hassan(11432)
Ahsan masood(11720) ghufran hassan(11432)
Ghufran Hasan
 
Ahsan Masood11720-Ghufran Hasan11432
Ahsan Masood11720-Ghufran Hasan11432Ahsan Masood11720-Ghufran Hasan11432
Ahsan Masood11720-Ghufran Hasan11432
Ghufran Hasan
 
Ahsan Masood11720-Ghufran Hasan11432
Ahsan Masood11720-Ghufran Hasan11432Ahsan Masood11720-Ghufran Hasan11432
Ahsan Masood11720-Ghufran Hasan11432
Ghufran Hasan
 
Permutations and combinations
Permutations and combinationsPermutations and combinations
Permutations and combinations
Ghufran Hasan
 
Fir registration system
Fir registration systemFir registration system
Fir registration system
Ghufran Hasan
 
Islam and internet
Islam and internetIslam and internet
Islam and internet
Ghufran Hasan
 
Dedicated fully parallel architecture
Dedicated fully parallel architectureDedicated fully parallel architecture
Dedicated fully parallel architecture
Ghufran Hasan
 

More from Ghufran Hasan (13)

Great personalities
Great personalitiesGreat personalities
Great personalities
 
Lab project manual version 2
Lab project manual version 2Lab project manual version 2
Lab project manual version 2
 
Lab project manual version 1
Lab project manual version 1Lab project manual version 1
Lab project manual version 1
 
VMware
VMware VMware
VMware
 
Ahsan masood(11720) ghufran hassan(11432)
Ahsan masood(11720) ghufran hassan(11432)Ahsan masood(11720) ghufran hassan(11432)
Ahsan masood(11720) ghufran hassan(11432)
 
Ring counter
Ring counterRing counter
Ring counter
 
Ahsan masood(11720) ghufran hassan(11432)
Ahsan masood(11720) ghufran hassan(11432)Ahsan masood(11720) ghufran hassan(11432)
Ahsan masood(11720) ghufran hassan(11432)
 
Ahsan Masood11720-Ghufran Hasan11432
Ahsan Masood11720-Ghufran Hasan11432Ahsan Masood11720-Ghufran Hasan11432
Ahsan Masood11720-Ghufran Hasan11432
 
Ahsan Masood11720-Ghufran Hasan11432
Ahsan Masood11720-Ghufran Hasan11432Ahsan Masood11720-Ghufran Hasan11432
Ahsan Masood11720-Ghufran Hasan11432
 
Permutations and combinations
Permutations and combinationsPermutations and combinations
Permutations and combinations
 
Fir registration system
Fir registration systemFir registration system
Fir registration system
 
Islam and internet
Islam and internetIslam and internet
Islam and internet
 
Dedicated fully parallel architecture
Dedicated fully parallel architectureDedicated fully parallel architecture
Dedicated fully parallel architecture
 

Recently uploaded

Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 

Recently uploaded (20)

Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 

No silver bullet

  • 1. Essence and Accidents in Software Engineering By GHUFRAN JAMEEL HASAN
  • 2. “I believe the hard part of building software is the specification, design, and testing of this conceptual construct, not the labor or representing it.”
  • 3. NO SILVER BULLET • Of all the monsters that fill the nightmares of our folklore, none terrify more than werewolves, because they transform unexpectedly from the familiar into horrors. • Why a silver bullet? • Silver is identified with the moon-A silver bullet offers the fastest, most powerful, and safest way to slay the fast, powerful, and incredibly dangerous werewolf • Same fashion of familiar software project , at least as seen by the non- technical manage.
  • 4. NO SILVER BULLET (Cont..) • Usually innocent and straightforward but is capable of becoming a monster of • Missed schedules • Blown budge • Flawed products • We have no silver bullet that make software costs drop as rapidly as computer hardware costs do.
  • 5. NO SILVER BULLET (Cont..) • Over decades, we see no silver bullet-no single development, that make improvement in • Productivity, • Reliability and • Simplicity
  • 6. Essence and Accident in Software Engineering • All software construction involves Essential and accidental difficulties • Software, at its core, has these essential difficulties: • Complexity, • Conformity, • Changeability, • Invisibility
  • 7. Complexity • Software is complex, even when done right. • Combinatorial many states, syntax must be just so or else. • Rich structure, interesting dependencies add to complexity. • Accidental (as practiced) issues add to complexity. • Efficient code is usually complicated code. • Complex code is harder to evolve, results in design drift and even more complexity.
  • 8. Complexity(Cont..) • Many problems of developing software products derive from this essential complexity, due to complexity: • Difficulty of communication among team members-results into product flaws, cost overruns, and schedule delays • Difficulty of enumerating, much less understanding unreliability • Difficulty of invoking function- makes programs hard to use. • Complexity of structure brings the difficulty of extending programs to new functions without creating side effects
  • 9. Conformity • Software has to be made to agree to common interfaces, protocols, standards, etc. • Mostly standards for mastering complexity is arbitrary. Human institutions and systems must conform these standards and interfaces and they differ from • Interface to interface, and from • Time to time because • They were designed by different people
  • 10. Changeability • To be successful is to be changed! • Try to expect future unforeseen uses. • Buildings can get changed- but the high costs of change • Software product is found to be useful • People try it in new cases at the edge of or beyond the original domain. • The pressures for extended function come chiefly from users who like the basic function and invent new uses for it.
  • 11. Changeability(Cont..) • In short, the software product is embedded in a cultural matrix of : • Applications, users, laws, and machine vehicles. • These all change continually, and their changes inexorably force change upon the software product. • In order to keep system flexible and marketable, Software is constantly subject to pressures for change un like buildings, cars or computers manufactured things are infrequently changed after manufacture. • Essential changes incorporate in models, serial-no. copies of the same basic design.
  • 12. Changeability(Cont..) • We change software because ! • It is easy to update existing systems in the field (in theory) • We can undo changes if desired (in theory)
  • 13. Invisibility • Software is invisible and unvisualizable • The floor plan of a building helps both architect and client evaluate spaces, traffic flows, views. contradictions and omissions become obvious. • No geometrical representation like map of land, diagram of chips • Although we can use various diagrams to help us visualize aspects of software (control flow, data dependencies, OMT/UML) • But that's NOT quite the same thing as, say, the blueprints of a building.
  • 14. Invisibility(Cont..) • Still Unvisualizable ! Because.. • Even a progress in restricting and simplifying the structures of software, they remain inherently unvisualizable, and thus do not permit the mind to use some of its most powerful conceptual tools.
  • 15. What about these Silver Bullets??? • HLLs • Frees us from byte-level thinking (accidental complexity). • IDE • AI -Certainly, AI techniques are useful in many application domains, but not as a silver bullet to solve the SE prob. • Graphical programming e.g UML, SDL, OOD
  • 16. Promising attacks on conceptual essence • Buy, don't build • Requirements are the essence of a software system. • Focusing on getting the requirements right is a direct attack on essential problems. • Rapid Prototyping: • Take requirements, build mock up, show to user, analyze feedback, repeat. • Early feedback means less chance for requirements errors (which are the most expensive), fast turnaround in problem space to narrow misunderstandings and educate customer.
  • 17. Promising attacks on conceptual essence(Cont..) • Staged Delivery incremental development…… • Get a skeleton system up and running, flesh it out as you go. • Helps to get developers feeling like system is real. • They add their updates as they finish them. • Microsoft (and many others) uses this approach; works well for them. • Skillful Designers • Find good people and keep them. • Pay them well, encourage them. • Above all, listen to them.
  • 18. Promising attacks on conceptual essence(Cont..) • Skillful Designers • However, “great software design” is mostly “pure” design (not engineering); it’s an act of creativity and innovation balanced against experience and good engineering. • It’s impossible to teach.
  • 19. There is no Royal Road, but there is a road
  • 20. Good news! We have made great headway in solving the accidental problems! Orders of magnitude improvements! Bad news! Progress on essential problems will be much slower going.
  • 21. Will Software Engineering prove to be the silver bullet that slays the software productivity monster ?