SlideShare uma empresa Scribd logo
1 de 11
10 Things You Should Have Learned with
Your Computer Science Degree…
But Probably Didn’t
BY ANDY LESTER
Every programmer should know how to create repositories, edit and
commit code, and branch and merge effectively as part of a project
workflow using Git or Subversion.
1. VersionControl Systems
Working as a programmer also involved writing release notes for your
projects. You also write commit messages for version control and tickets
for bugs in the system. All of these and many more require clear, effective
English communication – a skill that computer science programs seldom
emphasize.
2. How To Write
Regexes are a language all their own, and every modern programmer
needs to be adept in their use. If part of your code assignment is to
validate that a part number is five letters, a dash and a digit, you should be
immediately able to express that as /^[A-Z]{5}-d$/.
3. Regular Expressions
Every modern programming language offers access to a standard library
of common functionality. Code that has already been written, tested, and
debugged is going to be better quality and faster to implement than new
code that has to be created.
4. Using Libraries
The era of storing data in flat files is over. Everything goes into and out of
a database, and SQL is the language that’s used to retrieve it. SQL is also
a declarative language, not a procedural language, and so requires
learning a new way of thinking about problem solving. But every
programmer should understand the basics of database normalization and
be able to do SELECTs (including basic INNER and OUTER JOINs),
INSERTs, UPDATEs and DELETEs.
5. SQL
It’s astonishing that schools can turn out CS graduates who know only
Notepad or pico. It’s the job of programming tools to help manipulate the
source code and all other data in the computer to make the programmer’s
life easier. The Unix command line, shell scripting, find, grep, and sed
should be part of every programmer’s knowledge set.
6. Tool Usage:IDEs,Editors,CLI Tools
Every programmer should be able to debug with an interactive debugger
or by sprinkling print statements liberally throughout the code. The ability
to track down a problem through stepwise refinement is too important to
be left for programmers to learn by the seat of their pants.
7. Debugging
If things didn’t go wrong, we wouldn’t have to check file opens for success,
assert that customer IDs are valid integers, or to test our code to make
sure that it works properly.
Programmers need to grasp that compiler warnings are helpful tools that
make life easier, not nuisances to be avoided. Every programmer should
know why each PHP program should start with
error_reporting(E_ALL), or each Perl program with use strict; use
warnings;.
8. DefensiveProgramming
Few programming jobs let you work entirely on your own. Your code must
interact with code written by others, or often be intermingled with code
from others. A programmer who can’t collaborate on projects with others
has negative productivity, and quickly becomes a liability to the
organization.
9. Teamwork
School assignments are new, greenfield projects. But the first thing that
happens to new hires is they get assigned to fix ticket #8347 in the bug
tracking system. Then they have to add a small new complementary
feature to an existing system with an established codebase. Designing
new code comes months later, if they’re lucky.
10. WorkingOn ExistingCode

Mais conteúdo relacionado

Mais procurados

MikroBasic
MikroBasicMikroBasic
MikroBasic
butest
 

Mais procurados (16)

Should you be your own judge?
Should you be your own judge?Should you be your own judge?
Should you be your own judge?
 
Top 10 programming languages
Top 10 programming languagesTop 10 programming languages
Top 10 programming languages
 
Importance of the quality of code
Importance of the quality of codeImportance of the quality of code
Importance of the quality of code
 
Required computer skills program devlopment
Required computer skills program devlopmentRequired computer skills program devlopment
Required computer skills program devlopment
 
Algorithm pseudocode flowchart program notes
Algorithm pseudocode flowchart program notesAlgorithm pseudocode flowchart program notes
Algorithm pseudocode flowchart program notes
 
Python certification
Python certificationPython certification
Python certification
 
Lepus
LepusLepus
Lepus
 
Error hanadling in c programming presentation
Error hanadling in c programming presentationError hanadling in c programming presentation
Error hanadling in c programming presentation
 
MikroBasic
MikroBasicMikroBasic
MikroBasic
 
Debugging with NetBeans IDE
Debugging with NetBeans IDEDebugging with NetBeans IDE
Debugging with NetBeans IDE
 
Learning java from scratch
Learning java from scratchLearning java from scratch
Learning java from scratch
 
Practices of the Python Pro: coding best practices
Practices of the Python Pro: coding best practicesPractices of the Python Pro: coding best practices
Practices of the Python Pro: coding best practices
 
Computer programming tools and building process
Computer programming tools and building processComputer programming tools and building process
Computer programming tools and building process
 
IHTM Python PCEP Welcome Opening
IHTM Python PCEP Welcome OpeningIHTM Python PCEP Welcome Opening
IHTM Python PCEP Welcome Opening
 
Code Quality
Code QualityCode Quality
Code Quality
 
Python Usefulness
Python UsefulnessPython Usefulness
Python Usefulness
 

Destaque

Computer Repair Portfolio 2013
Computer Repair Portfolio 2013Computer Repair Portfolio 2013
Computer Repair Portfolio 2013
Alexander080
 
World literature 2
World literature 2World literature 2
World literature 2
christok77
 

Destaque (8)

Computer Repair Portfolio 2013
Computer Repair Portfolio 2013Computer Repair Portfolio 2013
Computer Repair Portfolio 2013
 
World literature 2
World literature 2World literature 2
World literature 2
 
Monitoring the Dynamic Nature of the Cloud [FutureStack16 NYC]
Monitoring the Dynamic Nature of the Cloud [FutureStack16 NYC]Monitoring the Dynamic Nature of the Cloud [FutureStack16 NYC]
Monitoring the Dynamic Nature of the Cloud [FutureStack16 NYC]
 
On a Journey from Forensic Operations to 99.99 Uptime
On a Journey from Forensic Operations to 99.99 UptimeOn a Journey from Forensic Operations to 99.99 Uptime
On a Journey from Forensic Operations to 99.99 Uptime
 
Data First [FutureStack16]
Data First [FutureStack16]Data First [FutureStack16]
Data First [FutureStack16]
 
It's What's Inside that Counts!
It's What's Inside that Counts!It's What's Inside that Counts!
It's What's Inside that Counts!
 
Get Greater Monitoring Coverage with APM Essentials
Get Greater Monitoring Coverage with APM EssentialsGet Greater Monitoring Coverage with APM Essentials
Get Greater Monitoring Coverage with APM Essentials
 
Application Architecture Summit - Monitoring the Dynamic Cloud
Application Architecture Summit - Monitoring the Dynamic Cloud Application Architecture Summit - Monitoring the Dynamic Cloud
Application Architecture Summit - Monitoring the Dynamic Cloud
 

Semelhante a 10 Things You Probably Should Have Learned With Your Computer Science Degree... But Didn't

Top 5 advances in software development
Top 5 advances in software developmentTop 5 advances in software development
Top 5 advances in software development
David
 
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel Corporation
 

Semelhante a 10 Things You Probably Should Have Learned With Your Computer Science Degree... But Didn't (20)

DEVELOPMENT TOOLS FOR MICROCONTROLLERS.pdf
DEVELOPMENT TOOLS FOR MICROCONTROLLERS.pdfDEVELOPMENT TOOLS FOR MICROCONTROLLERS.pdf
DEVELOPMENT TOOLS FOR MICROCONTROLLERS.pdf
 
Top 10 IDEs for React.js Developers in 2021
Top 10 IDEs for React.js Developers in 2021Top 10 IDEs for React.js Developers in 2021
Top 10 IDEs for React.js Developers in 2021
 
Programming vs Coding: Unveiling The Key Differences
Programming vs Coding: Unveiling The Key DifferencesProgramming vs Coding: Unveiling The Key Differences
Programming vs Coding: Unveiling The Key Differences
 
grade 10 2023.pptx
grade 10 2023.pptxgrade 10 2023.pptx
grade 10 2023.pptx
 
Qualidade de Software em zOS usando IBM Debug Tool e RDz
Qualidade de Software em zOS usando IBM Debug Tool e RDzQualidade de Software em zOS usando IBM Debug Tool e RDz
Qualidade de Software em zOS usando IBM Debug Tool e RDz
 
PROBLEM SOLVING
PROBLEM SOLVINGPROBLEM SOLVING
PROBLEM SOLVING
 
Stnotes doc 5
Stnotes doc 5Stnotes doc 5
Stnotes doc 5
 
Ide description
Ide descriptionIde description
Ide description
 
Programming tools for developers
Programming tools for developersProgramming tools for developers
Programming tools for developers
 
Best 5 Swift IDEs and Code Editors for Your Next iOS Project.pdf
Best 5 Swift IDEs and Code Editors for Your Next iOS Project.pdfBest 5 Swift IDEs and Code Editors for Your Next iOS Project.pdf
Best 5 Swift IDEs and Code Editors for Your Next iOS Project.pdf
 
Quick Intro to Clean Coding
Quick Intro to Clean CodingQuick Intro to Clean Coding
Quick Intro to Clean Coding
 
Five essential elements for successful software development
Five essential elements for successful software developmentFive essential elements for successful software development
Five essential elements for successful software development
 
The pragmatic programmer
The pragmatic programmerThe pragmatic programmer
The pragmatic programmer
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
 
The Best Python IDEs and Code Editors.pdf
The Best Python IDEs and Code Editors.pdfThe Best Python IDEs and Code Editors.pdf
The Best Python IDEs and Code Editors.pdf
 
Basic programming and data structure
Basic programming and data structureBasic programming and data structure
Basic programming and data structure
 
Top 5 advances in software development
Top 5 advances in software developmentTop 5 advances in software development
Top 5 advances in software development
 
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
 
Quality Software Development
Quality Software DevelopmentQuality Software Development
Quality Software Development
 
Top 10 static code analysis tool
Top 10 static code analysis toolTop 10 static code analysis tool
Top 10 static code analysis tool
 

Mais de New Relic

Mais de New Relic (20)

7 Tips & Tricks to Having Happy Customers at Scale
7 Tips & Tricks to Having Happy Customers at Scale7 Tips & Tricks to Having Happy Customers at Scale
7 Tips & Tricks to Having Happy Customers at Scale
 
7 Tips & Tricks to Having Happy Customers at Scale
7 Tips & Tricks to Having Happy Customers at Scale7 Tips & Tricks to Having Happy Customers at Scale
7 Tips & Tricks to Having Happy Customers at Scale
 
New Relic University at Future Stack Tokyo 2019
New Relic University at Future Stack Tokyo 2019New Relic University at Future Stack Tokyo 2019
New Relic University at Future Stack Tokyo 2019
 
FutureStack Tokyo 19 -[事例講演]株式会社リクルートライフスタイル:年間9300万件以上のサロン予約を支えるホットペッパービューティ...
FutureStack Tokyo 19 -[事例講演]株式会社リクルートライフスタイル:年間9300万件以上のサロン予約を支えるホットペッパービューティ...FutureStack Tokyo 19 -[事例講演]株式会社リクルートライフスタイル:年間9300万件以上のサロン予約を支えるホットペッパービューティ...
FutureStack Tokyo 19 -[事例講演]株式会社リクルートライフスタイル:年間9300万件以上のサロン予約を支えるホットペッパービューティ...
 
FutureStack Tokyo 19 -[New Relic テクニカル講演]モニタリングと可視化がデジタルトランスフォーメーションを救う! - サ...
FutureStack  Tokyo 19 -[New Relic テクニカル講演]モニタリングと可視化がデジタルトランスフォーメーションを救う! - サ...FutureStack  Tokyo 19 -[New Relic テクニカル講演]モニタリングと可視化がデジタルトランスフォーメーションを救う! - サ...
FutureStack Tokyo 19 -[New Relic テクニカル講演]モニタリングと可視化がデジタルトランスフォーメーションを救う! - サ...
 
FutureStack Tokyo 19 -[特別講演]システム開発によろこびと驚きの連鎖を
FutureStack Tokyo 19 -[特別講演]システム開発によろこびと驚きの連鎖をFutureStack Tokyo 19 -[特別講演]システム開発によろこびと驚きの連鎖を
FutureStack Tokyo 19 -[特別講演]システム開発によろこびと驚きの連鎖を
 
FutureStack Tokyo 19 -[パートナー講演]アマゾン ウェブ サービス ジャパン株式会社: New Relicを活用したAWSへのアプリ...
FutureStack Tokyo 19 -[パートナー講演]アマゾン ウェブ サービス ジャパン株式会社: New Relicを活用したAWSへのアプリ...FutureStack Tokyo 19 -[パートナー講演]アマゾン ウェブ サービス ジャパン株式会社: New Relicを活用したAWSへのアプリ...
FutureStack Tokyo 19 -[パートナー講演]アマゾン ウェブ サービス ジャパン株式会社: New Relicを活用したAWSへのアプリ...
 
FutureStack Tokyo 19_インサイトとデータを組織の力にする_株式会社ドワンゴ 池田 明啓 氏
FutureStack Tokyo 19_インサイトとデータを組織の力にする_株式会社ドワンゴ 池田 明啓 氏FutureStack Tokyo 19_インサイトとデータを組織の力にする_株式会社ドワンゴ 池田 明啓 氏
FutureStack Tokyo 19_インサイトとデータを組織の力にする_株式会社ドワンゴ 池田 明啓 氏
 
Three Monitoring Mistakes and How to Avoid Them
Three Monitoring Mistakes and How to Avoid ThemThree Monitoring Mistakes and How to Avoid Them
Three Monitoring Mistakes and How to Avoid Them
 
Intro to Multidimensional Kubernetes Monitoring
Intro to Multidimensional Kubernetes MonitoringIntro to Multidimensional Kubernetes Monitoring
Intro to Multidimensional Kubernetes Monitoring
 
FS18 Chicago Keynote
FS18 Chicago Keynote FS18 Chicago Keynote
FS18 Chicago Keynote
 
SRE-iously
SRE-iouslySRE-iously
SRE-iously
 
10 Things You Can Do With New Relic - Number 9 Will Shock You
10 Things You Can Do With New Relic - Number 9 Will Shock You10 Things You Can Do With New Relic - Number 9 Will Shock You
10 Things You Can Do With New Relic - Number 9 Will Shock You
 
Ground Rules for Code Reviews
Ground Rules for Code ReviewsGround Rules for Code Reviews
Ground Rules for Code Reviews
 
Understanding Microservice Latency for DevOps Teams: An Introduction to New R...
Understanding Microservice Latency for DevOps Teams: An Introduction to New R...Understanding Microservice Latency for DevOps Teams: An Introduction to New R...
Understanding Microservice Latency for DevOps Teams: An Introduction to New R...
 
Monitor all your Kubernetes and EKS stack with New Relic
Monitor all your Kubernetes and EKS stack with New Relic	Monitor all your Kubernetes and EKS stack with New Relic
Monitor all your Kubernetes and EKS stack with New Relic
 
Host for the Most: Cloud Cost Optimization
Host for the Most: Cloud Cost OptimizationHost for the Most: Cloud Cost Optimization
Host for the Most: Cloud Cost Optimization
 
New Relic Infrastructure in the Real World: AWS
New Relic Infrastructure in the Real World: AWSNew Relic Infrastructure in the Real World: AWS
New Relic Infrastructure in the Real World: AWS
 
Best Practices for Measuring your Code Pipeline
Best Practices for Measuring your Code PipelineBest Practices for Measuring your Code Pipeline
Best Practices for Measuring your Code Pipeline
 
Top Three Mistakes People Make with Monitoring
Top Three Mistakes People Make with MonitoringTop Three Mistakes People Make with Monitoring
Top Three Mistakes People Make with Monitoring
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

10 Things You Probably Should Have Learned With Your Computer Science Degree... But Didn't

  • 1. 10 Things You Should Have Learned with Your Computer Science Degree… But Probably Didn’t BY ANDY LESTER
  • 2. Every programmer should know how to create repositories, edit and commit code, and branch and merge effectively as part of a project workflow using Git or Subversion. 1. VersionControl Systems
  • 3. Working as a programmer also involved writing release notes for your projects. You also write commit messages for version control and tickets for bugs in the system. All of these and many more require clear, effective English communication – a skill that computer science programs seldom emphasize. 2. How To Write
  • 4. Regexes are a language all their own, and every modern programmer needs to be adept in their use. If part of your code assignment is to validate that a part number is five letters, a dash and a digit, you should be immediately able to express that as /^[A-Z]{5}-d$/. 3. Regular Expressions
  • 5. Every modern programming language offers access to a standard library of common functionality. Code that has already been written, tested, and debugged is going to be better quality and faster to implement than new code that has to be created. 4. Using Libraries
  • 6. The era of storing data in flat files is over. Everything goes into and out of a database, and SQL is the language that’s used to retrieve it. SQL is also a declarative language, not a procedural language, and so requires learning a new way of thinking about problem solving. But every programmer should understand the basics of database normalization and be able to do SELECTs (including basic INNER and OUTER JOINs), INSERTs, UPDATEs and DELETEs. 5. SQL
  • 7. It’s astonishing that schools can turn out CS graduates who know only Notepad or pico. It’s the job of programming tools to help manipulate the source code and all other data in the computer to make the programmer’s life easier. The Unix command line, shell scripting, find, grep, and sed should be part of every programmer’s knowledge set. 6. Tool Usage:IDEs,Editors,CLI Tools
  • 8. Every programmer should be able to debug with an interactive debugger or by sprinkling print statements liberally throughout the code. The ability to track down a problem through stepwise refinement is too important to be left for programmers to learn by the seat of their pants. 7. Debugging
  • 9. If things didn’t go wrong, we wouldn’t have to check file opens for success, assert that customer IDs are valid integers, or to test our code to make sure that it works properly. Programmers need to grasp that compiler warnings are helpful tools that make life easier, not nuisances to be avoided. Every programmer should know why each PHP program should start with error_reporting(E_ALL), or each Perl program with use strict; use warnings;. 8. DefensiveProgramming
  • 10. Few programming jobs let you work entirely on your own. Your code must interact with code written by others, or often be intermingled with code from others. A programmer who can’t collaborate on projects with others has negative productivity, and quickly becomes a liability to the organization. 9. Teamwork
  • 11. School assignments are new, greenfield projects. But the first thing that happens to new hires is they get assigned to fix ticket #8347 in the bug tracking system. Then they have to add a small new complementary feature to an existing system with an established codebase. Designing new code comes months later, if they’re lucky. 10. WorkingOn ExistingCode