Software development in the Real...
Transcript of Software development in the Real...
![Page 1: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/1.jpg)
Software developmentin the Real World™
(in about fifty minutes)
lecture 5 / comp314, rice universitydaniel sandler 23-jan-2007
version 1.1, 29-jan-07
![Page 2: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/2.jpg)
![Page 3: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/3.jpg)
So, you’ve decided to write software for a
living.
![Page 4: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/4.jpg)
So, you’ve decided to write software for a
living.
Good for you!
![Page 5: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/5.jpg)
This is definitely the right path for you if:
![Page 6: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/6.jpg)
This is definitely the right path for you if:
you are clever and industrious
![Page 7: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/7.jpg)
This is definitely the right path for you if:
you are clever and industrious
you like the idea of making neat things that other people use
![Page 8: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/8.jpg)
This is definitely the right path for you if:
you are clever and industrious
you like the idea of making neat things that other people use
you are a pretty good programmer
![Page 9: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/9.jpg)
This is definitely the right path for you if:
you are clever and industrious
you like the idea of making neat things that other people use
you are a pretty good programmer
you hate people and want to hide behind a computer
![Page 10: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/10.jpg)
This is definitely the right path for you if:
you are clever and industrious
you like the idea of making neat things that other people use
you are a pretty good programmer
you hate people and want to hide behind a computer
you want a predictable job with low stress and plenty of time off
![Page 11: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/11.jpg)
(the previous slide contains two errors)
![Page 12: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/12.jpg)
you are clever and industrious
you like the idea of making neat things that other people use
you are a pretty good programmer
you hate people and want to hide behind a computer
you want a predictable job with low stress and plenty of time off
This is definitely the right path for you if:
![Page 13: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/13.jpg)
you are clever and industrious
you like the idea of making neat things that other people use
you are a pretty good programmer
you hate people and want to hide behind a computer
you want a predictable job with low stress and plenty of time off
you are clever and industrious
you like the idea of making neat things that other people use
you are a pretty good programmer
you hate people and want to hide behind a computer
you want a predictable job with low stress and plenty of time off
This is definitely the right path for you if:
![Page 14: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/14.jpg)
But…I really hate people!
![Page 15: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/15.jpg)
But…I really hate people!
(That’s why I got into CS in the first place!)
![Page 16: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/16.jpg)
But…I really hate people!
(That’s why I got into CS in the first place!)
TOUGH SH*T
![Page 17: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/17.jpg)
Building software is all about people.
✽ You will spend as much time dealing with your colleagues as with your compilerPlanning new projects
Designing systems to solve problems
Arguing for your proposed solution (and the necessary time/people to get it done)
Explaining your system to others who will need to understand it deeply
Listening to your manager, peers, marketing department, testing team, users, …
Pushing back on all those parties when necessary
![Page 18: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/18.jpg)
The Players
![Page 19: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/19.jpg)
The Players
YOU
![Page 20: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/20.jpg)
The Players
YOUYour team
![Page 21: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/21.jpg)
The Players
YOU
Your manager
Your team
![Page 22: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/22.jpg)
The Players
YOU
Your manager
Your team
His director
![Page 23: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/23.jpg)
The Players
YOU
Your manager
Your team
Other teams
His director
![Page 24: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/24.jpg)
The Players
YOU
Your manager
Your team
QA/TestOther teams
His director
![Page 25: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/25.jpg)
The Players
YOU
Your manager
Your team
Sales/Marketing
QA/TestOther teams
His director
![Page 26: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/26.jpg)
The Players
YOU
Your manager
Your team
Sales/Marketing
Users
QA/TestOther teams
His director
![Page 27: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/27.jpg)
The Players
YOU
Your manager
Your team
Sales/Marketing
Users
QA/TestOther teams
His director
Clients
![Page 28: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/28.jpg)
The Players
YOU
Your manager
Your team
Sales/Marketing
Users
QA/TestOther teams
His director
PartnersClients
![Page 29: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/29.jpg)
The Players
YOU
Your manager
Your team
Sales/Marketing
Users
QA/TestOther teams
His director
Partners
The CEO
Clients
![Page 30: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/30.jpg)
![Page 31: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/31.jpg)
Lesson:Learn to communicate.
![Page 32: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/32.jpg)
Lesson:Learn to communicate.
Corollary:Play well with others.
![Page 33: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/33.jpg)
What else should you know?
The following comes from:My experience
My friends’ experienceThe Internets
Your mileage will varybut a lot of this stuff is the same everywhere
![Page 34: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/34.jpg)
The Release Cycle
![Page 35: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/35.jpg)
“We’ll ship it when it’s done.”
![Page 36: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/36.jpg)
“We’ll ship it when it’s done.”
![Page 37: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/37.jpg)
“We’ll ship it when it’s done.”
![Page 38: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/38.jpg)
![Page 39: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/39.jpg)
Development
![Page 40: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/40.jpg)
Development
Release
![Page 41: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/41.jpg)
Development
Release
Party!
![Page 42: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/42.jpg)
Design
Development
Test
Release
Party!
![Page 43: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/43.jpg)
Design
Development
Test
Release
Party!
![Page 44: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/44.jpg)
Redesign
Design
Development
Test
Release
Party!
![Page 45: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/45.jpg)
Redesign
Bugs
Design
Development
Test
Release
Party!
![Page 46: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/46.jpg)
Redesign
Bugs
Design
Development
Test
Release
Party!
Bug Fixes Only
![Page 47: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/47.jpg)
Redesign
Bugs
Design
Development
Test
Release
Party!
Bug Fixes Only
CODE FREEZE
(stabilization)
![Page 48: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/48.jpg)
Really bad bugs
Redesign
Bugs
Design
Development
Test
Release
Party!
Bug Fixes Only
CODE FREEZE
(stabilization)
![Page 49: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/49.jpg)
Really bad bugs
FeatureWishlist
Redesign
Bugs
Design
Development
Test
Release
Party!
Bug Fixes Only
CODE FREEZE
(stabilization)
![Page 50: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/50.jpg)
Really bad bugs
FeatureWishlist
Redesign
Bugs
Design
Development
Test
Release
Party!
Bug Fixes Only
CODE FREEZE
(stabilization)Party?
![Page 51: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/51.jpg)
Tools
![Page 52: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/52.jpg)
Source Control
![Page 53: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/53.jpg)
Source Control
✽ We’ve talked about this before
(Remember the bacon?)
✽ As projects grow, coordinating source becomes more complex
✽ If you interview with a company that doesn’t use source control:
KEEP WALKING
![Page 54: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/54.jpg)
Tags & Branches
time flows to the right
![Page 55: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/55.jpg)
Tags & Branches
“the trunk”
time flows to the right
![Page 56: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/56.jpg)
Tags & Branches
“the trunk”
time flows to the right
![Page 57: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/57.jpg)
Tags & Branches
“the trunk”
time flows to the righttag: “version 0.1”
![Page 58: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/58.jpg)
Tags & Branches
“the trunk”
time flows to the right
“branch”
tag: “version 0.1”
![Page 59: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/59.jpg)
Tags & Branches
“the trunk”
time flows to the right
“branch”
tag: “version 0.1”
![Page 60: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/60.jpg)
Tags & Branches
“the trunk”
time flows to the right
“branch”
tag: “version 0.1”
![Page 61: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/61.jpg)
Tags & Branches
“the trunk”
time flows to the right
“branch”
tag: “version 0.1”
![Page 62: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/62.jpg)
Tags & Branches
“the trunk”
time flows to the right
“branch”
tag: “version 0.1”
![Page 63: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/63.jpg)
integration
Tags & Branches
“the trunk”
time flows to the right
“branch”
tag: “version 0.1”
![Page 64: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/64.jpg)
integration
Tags & Branches
“the trunk”
time flows to the right
“branch”
tag: “version 0.1”
![Page 65: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/65.jpg)
BeOS branch structure
main
![Page 66: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/66.jpg)
BeOS branch structure
main
rel
![Page 67: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/67.jpg)
BeOS branch structure
exp
main
rel
![Page 68: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/68.jpg)
BeOS branch structure
exp
main
rel
![Page 69: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/69.jpg)
BeOS branch structure
exp
main
rel
2.0b1
![Page 70: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/70.jpg)
BeOS branch structure
exp
main
rel
2.0b1 2.0b2
![Page 71: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/71.jpg)
BeOS branch structure
exp
main
rel
2.0b1 2.0 final2.0b2
![Page 72: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/72.jpg)
PalmOS branch structure
![Page 73: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/73.jpg)
PalmOS branch structure
Not shown:~10 sub-branches of appservices, coretech
![Page 74: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/74.jpg)
Code
![Page 75: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/75.jpg)
Reading Code
✽ Analogues: Cryptography, archaeology, Talmud interpretation†
✽ The original author is not always available
✽ Best performed in pairs
† http://www.joelonsoftware.com/articles/fog0000000053.html
![Page 76: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/76.jpg)
Some code to read
![Page 77: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/77.jpg)
Example #1:StrEndsWith(char * str, char * suffix)
![Page 78: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/78.jpg)
Example #1:StrEndsWith(char * str, char * suffix)
Boolean StrEndsWith(CharPtr string, CharPtr endString){ CharPtr p1; CharPtr p2; p1 = string; p2 = endString; if (!p1 || !p2) return false;
p1 = p1 + StrLen(p1) - StrLen(p2);
return false;}
![Page 79: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/79.jpg)
Example #2: How done is done?
![Page 80: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/80.jpg)
Example #2: How done is done?Boolean IMAP4getMailBodyInt(ULong uid, mailMessage*msg,callbackFn callback, CharPtr file,CharPtr boundary,int encoded, Boolean binaryAttach,Boolean isRead,Boolean multiPartAlternative, Long aType){ VoidHand bufHand=0; CharPtr bufPtr=0; CharPtr p1 = 0; CharPtr p2 = 0; CharPtr receivePtr = 0; int bytesRead=0; int bytesSoFar=0; Boolean completed = false; Boolean cancel = false; Boolean retVal = false;
Boolean truncated = false; int msgNum = 0; CharPtr file2=0; CharPtr boundary2=0; Boolean omittedAttachment=false; Boolean done=false; Boolean readable=isRead; int isEncoded = encoded; VoidHand curHand =0; Boolean Done=false; Long progressBytesSoFar=0;#ifdef OLDWAY Boolean oldIMAP=false; #endif Boolean stop=false; [...]
![Page 81: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/81.jpg)
Example #2: How done is done?Boolean IMAP4getMailBodyInt(ULong uid, mailMessage*msg,callbackFn callback, CharPtr file,CharPtr boundary,int encoded, Boolean binaryAttach,Boolean isRead,Boolean multiPartAlternative, Long aType){ VoidHand bufHand=0; CharPtr bufPtr=0; CharPtr p1 = 0; CharPtr p2 = 0; CharPtr receivePtr = 0; int bytesRead=0; int bytesSoFar=0; Boolean completed = false; Boolean cancel = false; Boolean retVal = false;
Boolean truncated = false; int msgNum = 0; CharPtr file2=0; CharPtr boundary2=0; Boolean omittedAttachment=false; Boolean done=false; Boolean readable=isRead; int isEncoded = encoded; VoidHand curHand =0; Boolean Done=false; Long progressBytesSoFar=0;#ifdef OLDWAY Boolean oldIMAP=false; #endif Boolean stop=false; [...]
(~350 more lines)
![Page 82: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/82.jpg)
Example #2: How done is done?
![Page 83: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/83.jpg)
Example #2: How done is done? Boolean completed = false; Boolean cancel = false; Boolean retVal = false; Boolean done=false; Boolean Done=false; Boolean stop=false;
![Page 84: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/84.jpg)
Example #2: How done is done? Boolean completed = false; Boolean cancel = false; Boolean retVal = false; Boolean done=false; Boolean Done=false; Boolean stop=false;
Done = ... ... while (!Done) { ... }
![Page 85: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/85.jpg)
Example #2: How done is done? Boolean completed = false; Boolean cancel = false; Boolean retVal = false; Boolean done=false; Boolean Done=false; Boolean stop=false;
Done = ... ... if (!done) { ... } while (!Done) { ... }
![Page 86: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/86.jpg)
Example #2: How done is done? Boolean completed = false; Boolean cancel = false; Boolean retVal = false; Boolean done=false; Boolean Done=false; Boolean stop=false;
Done = ... ... if (!done) { ... } while (!Done) { ... if (stop) break; }
![Page 87: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/87.jpg)
Example #2: How done is done? Boolean completed = false; Boolean cancel = false; Boolean retVal = false; Boolean done=false; Boolean Done=false; Boolean stop=false;
Done = ... ... if (!done) { ... } while (!Done) { ... if (stop) break; ... stop=true; cancel=true; done=true; }
![Page 88: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/88.jpg)
How do you keep code like this out of your program in the
first place?
![Page 89: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/89.jpg)
Code Reviews
✽ Also known as: “the Spanish Inquisition”
✽ Learn to love them—the best software shops swear by them
✽ An opportunity for you to stop others’ broken code before it hits the system
✽ An opportunity for others to stop your broken code before it hits the system
![Page 90: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/90.jpg)
Hidden featuresof code reviews
✽ Someone else has seen your code!
✽ This means you have help when something breaks
✽ (Also: your teammates aren’t screwed if you flake)
![Page 91: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/91.jpg)
Automatic Builds
✽ Build server: tireless, dauntless, indefatigable
✽ Every hour, or every N checkins, or whatever:
✽ Check everything out
✽ Compile it all
✽ Run a subset of unit tests, viz. “sniff tests”
✽ ELEC majors can explain this terminology
✽ If it doesn’t compile, or doesn’t pass the tests…
![Page 92: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/92.jpg)
YOU BROKE
IT!
☞
![Page 93: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/93.jpg)
YOU BROKE
IT!
☞
(now fix it, genius)
![Page 94: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/94.jpg)
Here’s a bad idea
![Page 95: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/95.jpg)
Here’s a bad idea
✽ 4:45 PM:
![Page 96: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/96.jpg)
Here’s a bad idea
✽ 4:45 PM:
✽ check in a bunch of shiny new code
![Page 97: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/97.jpg)
Here’s a bad idea
✽ 4:45 PM:
✽ check in a bunch of shiny new code
✽ 5:00 PM:
![Page 98: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/98.jpg)
Here’s a bad idea
✽ 4:45 PM:
✽ check in a bunch of shiny new code
✽ 5:00 PM:
✽ go home
![Page 99: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/99.jpg)
Here’s a bad idea
✽ 4:45 PM:
✽ check in a bunch of shiny new code
✽ 5:00 PM:
✽ go home
![Page 100: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/100.jpg)
Here’s a bad idea
✽ 4:45 PM:
✽ check in a bunch of shiny new code
✽ 5:00 PM:
✽ go home
✽ (applies in this course as well)
![Page 101: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/101.jpg)
You WILL get the build hat.
![Page 102: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/102.jpg)
You WILL get the build hat.You WILL get the build hate
![Page 103: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/103.jpg)
Testing
![Page 104: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/104.jpg)
Who are QA*?
✽ The front line in the War On Bugs
✽ Professional program-crashers
✽ You may be one of these people!
✽ Some people are incredibly gifted at breaking things (this usually takes a fair bit of coding experience)
✽ They will bring your code to its (metaphorical) knees
✽ What are they looking for?
* “Quality Assurance”
![Page 105: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/105.jpg)
Bugs
![Page 106: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/106.jpg)
Sources of bugs
✽ Misunderstanding
✽ Lousy code
✽ Unforeseen consequences
✽ Sleep deprivation
![Page 107: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/107.jpg)
Dan’s bug stories
✽ The Case of the Christmas Lights
✽ The Case of the Time-Bomb MP3 Stream
![Page 108: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/108.jpg)
Bug Tracking
![Page 109: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/109.jpg)
Bug Tracking
✽ An essential part of keeping track of all the broken, half-implemented, flaky bits of your code
![Page 110: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/110.jpg)
Bug Tracking
✽ An essential part of keeping track of all the broken, half-implemented, flaky bits of your code
✽ A glorified “to-do” list
![Page 111: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/111.jpg)
Bug Tracking
✽ An essential part of keeping track of all the broken, half-implemented, flaky bits of your code
✽ A glorified “to-do” list
✽ Bugs have assignees, attachments, running comments
![Page 112: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/112.jpg)
Bug Tracking
✽ An essential part of keeping track of all the broken, half-implemented, flaky bits of your code
✽ A glorified “to-do” list
✽ Bugs have assignees, attachments, running comments
✽ Bugs have states: “open”, “fixed”, “unreproducible”, etc.
![Page 113: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/113.jpg)
Bug Tracking
✽ An essential part of keeping track of all the broken, half-implemented, flaky bits of your code
✽ A glorified “to-do” list
✽ Bugs have assignees, attachments, running comments
✽ Bugs have states: “open”, “fixed”, “unreproducible”, etc.
✽ Each one is like an email or BB thread
![Page 114: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/114.jpg)
Bug Tracking
✽ An essential part of keeping track of all the broken, half-implemented, flaky bits of your code
✽ A glorified “to-do” list
✽ Bugs have assignees, attachments, running comments
✽ Bugs have states: “open”, “fixed”, “unreproducible”, etc.
✽ Each one is like an email or BB thread
✽ It will become your homepage
![Page 115: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/115.jpg)
Bugzilla
![Page 116: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/116.jpg)
FogBugz
![Page 117: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/117.jpg)
Roundup
![Page 118: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/118.jpg)
Schedules
✽ Estimation is hard
✽ Nobody has solved this
✽ Tips:
✽ Make a schedule
✽ Break things up into small tasks (between 1hr and 1day)
✽ Track how well you did!
✽ This is the only way to improve your estimating skills
![Page 119: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/119.jpg)
Wrap-up
✽ A look inside the sausage software factory
✽ No “best practices” in software, yet
✽ Just “common practices”
✽ These examples come from my experience; yours will be different in many ways
✽ “How to make software” reading list
✽ Posted on the course website as the semester goes on
![Page 120: Software development in the Real World™sys.cs.rice.edu/course/comp314/10/lectures/5-real-world-software.pdf · Software development in the Real World™ (in about fifty minutes)](https://reader036.fdocuments.us/reader036/viewer/2022071218/60503aade6b74a6dc04ed179/html5/thumbnails/120.jpg)
FIN
https://sys.cs.rice.edu/course/comp314/07/