SlideShare a Scribd company logo
1 of 22
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

Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycleGurban Daniel
 
Programming team structure
Programming team structureProgramming team structure
Programming team structureNancyBeaulah_R
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process ModelsAhsan Rahim
 
Software Engineering unit 4
Software Engineering unit 4Software Engineering unit 4
Software Engineering unit 4Abhimanyu Mishra
 
Software Quality Assurance
Software Quality Assurance Software Quality Assurance
Software Quality Assurance ShashankBajpai24
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts pptRathna Priya
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development MethodologiesPradeep Patel, PMP®
 
Capability maturity model cmm lecture 8
Capability maturity model cmm lecture 8Capability maturity model cmm lecture 8
Capability maturity model cmm lecture 8Abdul Basit
 
Unit 3 Control Flow Testing
Unit 3   Control Flow TestingUnit 3   Control Flow Testing
Unit 3 Control Flow Testingravikhimani
 
Software Prototyping
Software PrototypingSoftware Prototyping
Software Prototypingdrjms
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software designCliftone Mullah
 
Architecture Description Languages
Architecture Description LanguagesArchitecture Description Languages
Architecture Description LanguagesHenry Muccini
 
S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)Jayesh Buwa
 
Software reliability engineering
Software reliability engineeringSoftware reliability engineering
Software reliability engineeringMark Turner CRP
 
Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)ShudipPal
 
ISTQB Foundation Level Basic
ISTQB Foundation Level BasicISTQB Foundation Level Basic
ISTQB Foundation Level BasicSelin Gungor
 
software development life cycle(SDLC)
software development life cycle(SDLC)software development life cycle(SDLC)
software development life cycle(SDLC)sanoop s
 
Agile Methology Seminar Report
Agile Methology Seminar ReportAgile Methology Seminar Report
Agile Methology Seminar ReportMohit Kumar
 

What's hot (20)

Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
V Model and W Model
V Model and W ModelV Model and W Model
V Model and W Model
 
Programming team structure
Programming team structureProgramming team structure
Programming team structure
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
 
Software Engineering unit 4
Software Engineering unit 4Software Engineering unit 4
Software Engineering unit 4
 
Software Quality Assurance
Software Quality Assurance Software Quality Assurance
Software Quality Assurance
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologies
 
Capability maturity model cmm lecture 8
Capability maturity model cmm lecture 8Capability maturity model cmm lecture 8
Capability maturity model cmm lecture 8
 
Unit 3 Control Flow Testing
Unit 3   Control Flow TestingUnit 3   Control Flow Testing
Unit 3 Control Flow Testing
 
Software Prototyping
Software PrototypingSoftware Prototyping
Software Prototyping
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software design
 
Architecture Description Languages
Architecture Description LanguagesArchitecture Description Languages
Architecture Description Languages
 
S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)
 
Software reliability engineering
Software reliability engineeringSoftware reliability engineering
Software reliability engineering
 
Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)
 
ISTQB Foundation Level Basic
ISTQB Foundation Level BasicISTQB Foundation Level Basic
ISTQB Foundation Level Basic
 
software development life cycle(SDLC)
software development life cycle(SDLC)software development life cycle(SDLC)
software development life cycle(SDLC)
 
Test Plan.pptx
Test Plan.pptxTest Plan.pptx
Test Plan.pptx
 
Agile Methology Seminar Report
Agile Methology Seminar ReportAgile Methology Seminar Report
Agile Methology Seminar Report
 

Viewers also liked

No silver-bullllet-1
No silver-bullllet-1No silver-bullllet-1
No silver-bullllet-1Maria 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 HerrmannEclipse 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 QualityUniversity of Dhaka
 
Unit 8 software quality and matrices
Unit 8 software quality and matricesUnit 8 software quality and matrices
Unit 8 software quality and matricesPreeti 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 XamarinXamarin
 
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 RepositoriesSAIL_QU
 
Software Quality
Software QualitySoftware Quality
Software Qualitysjavaad
 
Chapter 7 software reliability
Chapter 7 software reliabilityChapter 7 software reliability
Chapter 7 software reliabilitydespicable me
 
Agile Is the New Waterfall
Agile Is the New WaterfallAgile Is the New Waterfall
Agile Is the New WaterfallNaresh Jain
 
Software quality
Software qualitySoftware quality
Software qualityjagadeesan
 
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 (16)

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 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

No Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software EngineeringNo Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software EngineeringAditi Abhang
 
Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an IntroductionAjit 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 ArchitectureMatthew 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 1Rupesh 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
 
Ten Advices for Architects
Ten Advices for ArchitectsTen Advices for Architects
Ten Advices for ArchitectsEberhard Wolff
 
10 Hinweise für Architekten
10 Hinweise für Architekten10 Hinweise für Architekten
10 Hinweise für Architektenadesso AG
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentZahid Hussain
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introductionTaymoor 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.pptxAbdullah Khan
 
Chapter 01
Chapter 01Chapter 01
Chapter 01ryan 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
 
Lecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringLecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringAchmad 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 systemRogue 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 YMLAdam_Talcott
 

Similar to No silver bullet (20)

No Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software EngineeringNo Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software Engineering
 
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
 
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

Lab project manual version 2
Lab project manual version 2Lab project manual version 2
Lab project manual version 2Ghufran Hasan
 
Lab project manual version 1
Lab project manual version 1Lab project manual version 1
Lab project manual version 1Ghufran 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 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 Hasan11432Ghufran Hasan
 
Ahsan Masood11720-Ghufran Hasan11432
Ahsan Masood11720-Ghufran Hasan11432Ahsan Masood11720-Ghufran Hasan11432
Ahsan Masood11720-Ghufran Hasan11432Ghufran Hasan
 
Permutations and combinations
Permutations and combinationsPermutations and combinations
Permutations and combinationsGhufran Hasan
 
Fir registration system
Fir registration systemFir registration system
Fir registration systemGhufran Hasan
 
Dedicated fully parallel architecture
Dedicated fully parallel architectureDedicated fully parallel architecture
Dedicated fully parallel architectureGhufran 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

Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 

Recently uploaded (20)

Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 

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 ?