Software Development in 21st Century
-
date post
18-Oct-2014 -
Category
Business
-
view
2.865 -
download
0
description
Transcript of Software Development in 21st Century
![Page 1: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/1.jpg)
Software DevelopmentIn 21st Century
![Page 2: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/2.jpg)
www.henryjacob.comwww.designdrivendevelopment.orgwww.arrkgroup.com
![Page 3: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/3.jpg)
DeadlinesPoor EstimationRequirement ChangesImmature Architecture and DesignNo Domain KnowledgeAssumptionBad Code QualityNo DocumentationDeath MarchIt’s not my code-AttitudeInadequate Testing
![Page 4: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/4.jpg)
We are not alone
![Page 5: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/5.jpg)
41.1% of projects will be cancelled before completion
52% of projects will cost 189% of their original estimate
Projects completed will contain 42% of the original proposed features and functions
The average schedule overrun is 222% of the original time estimate
![Page 6: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/6.jpg)
“Mythical Man Month” -Fred Brooks Manager of OS/3605000 Man-Years Effort
![Page 7: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/7.jpg)
The practices of the software engineering community have
changed very little over the last 30 years, and the mistakes being made
then are still being made today.
![Page 8: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/8.jpg)
What missed in most of cases is
REALITY
![Page 9: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/9.jpg)
Deadlines:More Software projects have gone haywire for lack of calendar time than for all other causes combined – Brooks
Can we change deadlines?NO(In most cases)
![Page 10: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/10.jpg)
Poor EstimationAssumes nothing will go wrongLarge project has many smaller tasks
Hard to know all in advanceHard to estimate accurately
Gutless estimating
Some tasks can’t be sped upDependencies often make tasks sequentialMost measures confuse effort with progressPeople and months are not interchangeableNot all hours devoted to project
![Page 11: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/11.jpg)
Requirement Changes:
"Writing software that fully meets its specifications is like walking on water. The former is easy only if the later is frozen, otherwise it’s near impossible."
![Page 12: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/12.jpg)
Ours is a world where people don't know what they want.
The only time you can really find the best problem definition is after you found the solution -De Bono
Perception about the problem changes, sometimes the problem itself.
![Page 13: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/13.jpg)
Architecture: Black HoleIncompleteness and inconsistencies of our ideas become clear only during implementation
We can’t travel in two boats at the same time.
Focus changes from Architecture to Application Delivery.
Architecture requirements can be identified only when application matures.
![Page 14: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/14.jpg)
We can’t build architecture.
it evolves.
![Page 15: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/15.jpg)
No Domain KnowledgeAssumption
![Page 16: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/16.jpg)
Bad Code Quality:Complex, unstructured, scattered and unnecessary code blocks, huge amount of codes
Inevitable shifts in requirements and added functionality.
Lack of code reviews.
Lack of programming skills.
Programs evolves, grows and... dies if not taken care of
![Page 17: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/17.jpg)
No Documentation:Use cases, Design Documents, Class Diagrams, HLD, etc.
How useful these documents?
Software is the document
![Page 18: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/18.jpg)
Death March:People are designed to dissatisfiedTechnology TrapLack of motivation
There is no such thing as a boring project. There are only boring executions. - Irene Etzkorn
![Page 19: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/19.jpg)
It’s not my code-Attitude:
Fear of touching another programmer's code as a factor in slowing down many projects. -Kent Beck
![Page 20: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/20.jpg)
Testing:
Only 30% of tests are planned
Impossible to test every aspect of code, manually.
![Page 21: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/21.jpg)
Mediocre Approach:
Only leaders can lead.
![Page 22: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/22.jpg)
Deadlines are inevitable Everything will take its timeRequirements changes (always)We can’t build architecture. it evolves. Programs evolves, grows and... dies if not taken care ofSoftware is the documentImpossible to test every aspect of the code, manually Only leaders can lead
![Page 23: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/23.jpg)
•Individuals and interactions over processes and tools •Working software over comprehensive documentation •Customer collaboration over contract negotiation •Responding to change over following a plan
![Page 24: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/24.jpg)
ScopeFeedbackSimplicityTest DrivenContinuous IntegrationRefactoringRevampingEmpowered Team
![Page 25: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/25.jpg)
Feedback:Small Releases Shorter Iterations Stand-up MeetingsCode Review – (Design Pair | Pair Programming)Automated Tests
![Page 26: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/26.jpg)
Dream Phase: Product Definition, Behavior Engineering, Base Interaction Design Release Plan Iteration PlanBase Architecture: Extract ArchitectureStory – Estimate – Scope - Iteration Plan[Refactor] - Design – Test - Code – RefactorContinuous Test and IntegrationFeedback – Standup, Iteration - Release
![Page 27: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/27.jpg)
Business Requirements
Stabilizing the Architecture
Usability Engineering
![Page 28: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/28.jpg)
Standard Component Framework, MVC or any VariantUtilities and Support ComponentException Handling Strategy Transaction Persistence FrameworksData Concurrency Control Folder Structure and Build ProcessesStrategy User Mgmt, Control FlowInternalization
![Page 29: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/29.jpg)
Building great software is easy: build a great team and they'll make the software for you.
![Page 30: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/30.jpg)
Customer/Proxy CustomerUserArchitectProject LeadSuper ProgrammersProgrammersInteraction Designer Team Coordinators
![Page 31: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/31.jpg)
Small Teams40 Hrs Per WeekEnvironment
![Page 32: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/32.jpg)
Chemical engineers learned long ago that a process that works in the laboratory cannot be implemented in a factory in
one step. An intermediate step called the pilot plant is
necessary....In most [software] projects, the first system is barely usable. It may be too slow, too big, awkward to use, or all three. There is no alternative but to start again,
smarting but smarter, and build a redesigned version in which these problems are solved.... Delivering the throwaway to
customers buys time, but it does so only at the cost of agony for the user, distraction for the builders while they do the
redesign, and a bad reputation for the product that the best
redesign will find hard to live down. Hence, plan to throw one away; you will, anyhow.
![Page 33: Software Development in 21st Century](https://reader036.fdocuments.us/reader036/viewer/2022081412/54434078b1af9f130d8b494c/html5/thumbnails/33.jpg)
“If Microsoft is good at anything, it’s avoiding the trap of worrying about criticism. Microsoft fails constantly. They’re eviscerated in public for lousy products. Yet they persist, through version after version, until they get something good enough. Then they leverage the power they’ve gained in other markets to enforce their standard.” - Seth Godin in Zooming