SlideShare a Scribd company logo
1 of 21
Download to read offline
The 7 Sins of Software
   Engineers in HEP



Ioannis Baltopoulos
CERN Summer Student 2004



CSC Student Lectures (Vico Equence)
Monday, 6th September, 2004
Outline

• The Context (HEP)
• The Sins!
  • Observation
  • Problem
  • Solution (definitely not exclusive)
• Conclusion




                                          2
Establishing the Context

• Although these sins are applicable in many other
  situations, they are going to be addressed in the
  context of HEP.
• Agree that HEP Software Engineering is a special
  case because of the:
   •   Size of projects
   •   Amount of money invested
   •   Amount of people involved
   •   High expectations from research




                                                      3
Sin#1: Tool-coupled Productivity

Observation:
• We’ve used the same tools for the past 25 years
• Religious “wars” about the toolkit

Problem:
• Tools don’t scale.
• They slow us down.

Solution:
• New free tools can do the “dirty” repetitive work for you.
• Automate as much as you can!

                                                               4
Sin#2: Code Infected

Observation:
• Software Engineers love writing code.
• Write it in small chunks; its easier to understand.

Problem:
• Easy to write code.
• Easy to prototype a system.

Solution:
• Understand the problem & the solution before coding.
• Design first, code later.

                                                         5
Sin#3: Process Infected

Observation:
• Very detailed and specific processes
• Quality Assurance is postponed or flawed

Problem:
• Reduce productivity/creativity
• Create unnecessary overhead

Solution:
• Process Reengineering from the SE themselves
• Have bare minimum that will save us from chaos
• Describe only the functional aspects of the work

                                                     6
Sin#4: Reinventing The Wheel

Observation:
• Recurring problems get solved all over again
• Rewriting algorithms (sorting?)
• Several projects that do almost the same thing

Problem:
• Duplicated effort, wasted man-power/months
• Half completed projects (80% maybe?)

Solution:
• Use patterns/templates/existing code/catalogs
• Ask for other peoples’ experiences

                                                   7
Sin#5: Functional but not Usable

Observation:
• Overexposing interfaces
• Information packed applications/websites
• Inadequate help system/updated documentation

Problem:
• User’s given too much choice and makes wrong one

Solution:
• Get feedback. Don’t think for your users, ask them!
• Be consistent! Guide the users’ actions.
• Spend that 10% of time to make the application shine!

                                                          8
Sin#6: Documentation Paralysis

Observation:
• Huge amount of documentation

Problem:
• Out of date
• Manually produced
• Not informational/relevant

Solution:
• Source code metadata documentation
• Reverse engineer diagrams during implementation

                                                    9
Sin#7: Change Resistant

Observation:
• Pieces are only added, never taken away
• “This is how we do it here, try and adapt.”

Problem:
• People like to stay in their zone of comfort

Solution:
• Be flexible!
• “The reasonable man adapts himself to the
environment; the unreasonable man persists in trying to
adapt the environment to himself. If any progress has
been achieved it was due to the unreasonable man.”
                                                          10
Summary

Things to take home:
• Automate as much as you can.
• Over-design, under-engineer.
• Be lazy! Re-use code, Patterns, Templates.
• Looks matter!
• Be unreasonable! Change how things are done.




                                                 11
Thank You!



Ioannis Baltopoulos
CERN Summer Student 2004



CSC Student Lectures (Vico Equence)
Monday, 6th September, 2004
Tools of the Trade: Build tools

•   ANT (ant.apache.org)
•   Maven (maven.apache.org)
•   GNU Make (www.gnu.org/software/make)
•   NAnt (nant.sourceforge.net)




                                           13
Tools of the Trade: IDEs

•   Eclipse (www.eclipse.org)
•   NetBeans (www.netbeans.org)
•   JCreator (www.jcreator.com)
•   IntelliJ IDEA (www.jetbrains.com)
•   Sun Java Studio Creator (www.sun.com/jscreator)
•   JDeveloper (otn.oracle.com/products/jdev)
•   Visual Studio (http://msdn.microsoft.com/vstudio/)




                                                         14
Tools of the Trade: Testing

•   JUnit (www.junit.org)
•   Clover (www.cenqua.com/clover)
•   JCoverage (www.jcoverage.com)
•   SQLUnit (sqlunit.sourceforge.net)
•   DBUnit (dbunit.sourceforge.net)
•   HTTPUnit (httpunit.sourceforge.net)




                                          15
Tools of the Trade: Quality Assurance

• Checkstyle (checkstyle.sourceforge.net)




                                            16
Tools of the Trade: Auto Documentation

• JavaDoc (www.sun.com)
• Doxygen (www.doxygen.org)
• yDoc (www.yworks.com)




                                         17
Tools of the Trade: Design Tools

•   ArgoUML
•   Poseidon for UML
•   Rational Rose
•   MagicDraw
•   Visio
•   Together




                                   18
Tools of the Trade: Version Control

•   CVS (www.cvshome.org)
•   Subversion (subversion.tigris.org)
•   Visual SourceSafe (msdn.microsoft.com/ssafe)
•   RCS




                                                   19
Source Code Resources

•   Java Almanac
•   Java Forums (forums.java.sun.com)
•   Numerical Recipes in C
•   Stony Brook Algorithm Repository




                                        20
Design Patterns Resources




                            21

More Related Content

Similar to The 7 Sins of Software Engineers in HEP

Static Analysis Techniques For Testing Application Security - Houston Tech Fest
Static Analysis Techniques For Testing Application Security - Houston Tech FestStatic Analysis Techniques For Testing Application Security - Houston Tech Fest
Static Analysis Techniques For Testing Application Security - Houston Tech FestDenim Group
 
Scripting Recipes for Testers
Scripting Recipes for TestersScripting Recipes for Testers
Scripting Recipes for TestersAdam Goucher
 
Hey open source, don’t forget the user! - by Chad Kieffer
Hey open source,  don’t forget the user! - by Chad KiefferHey open source,  don’t forget the user! - by Chad Kieffer
Hey open source, don’t forget the user! - by Chad Kiefferdmthompson
 
Challenges In Managing Embedded Product Development
Challenges In Managing Embedded Product DevelopmentChallenges In Managing Embedded Product Development
Challenges In Managing Embedded Product DevelopmentAtul Nene
 
Jonathon Rochelle @ FOWA Feb 07
Jonathon Rochelle @ FOWA Feb 07Jonathon Rochelle @ FOWA Feb 07
Jonathon Rochelle @ FOWA Feb 07carsonsystems
 
Introduction To Software Engineering
Introduction To Software EngineeringIntroduction To Software Engineering
Introduction To Software EngineeringLeyla Bonilla
 
Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)Ivo Jansch
 
Pownce Lessons Learned
Pownce Lessons LearnedPownce Lessons Learned
Pownce Lessons Learnedleahculver
 
Presentations Unusual Java Bugs And Detecting Them Using Foss Tools
Presentations Unusual Java Bugs And Detecting Them Using Foss ToolsPresentations Unusual Java Bugs And Detecting Them Using Foss Tools
Presentations Unusual Java Bugs And Detecting Them Using Foss ToolsGanesh Samarthyam
 
Jun Heider - Flex Application Profiling By Example
Jun Heider - Flex Application Profiling By ExampleJun Heider - Flex Application Profiling By Example
Jun Heider - Flex Application Profiling By Example360|Conferences
 
Extracting Plugins And Gems From Rails Apps
Extracting Plugins And Gems From Rails AppsExtracting Plugins And Gems From Rails Apps
Extracting Plugins And Gems From Rails AppsJosh Nichols
 
Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008rajivmordani
 
Agile Development Methodologies
Agile Development MethodologiesAgile Development Methodologies
Agile Development MethodologiesNainil Chheda
 
Where's the Play in Programming?
Where's the Play in Programming?Where's the Play in Programming?
Where's the Play in Programming?Aaron VonderHaar
 
Understand Open Source ecosystems
Understand Open Source ecosystemsUnderstand Open Source ecosystems
Understand Open Source ecosystemsKnowmades.com
 
PHX Session #3 - "It Works on My Machine!" Closing the Loop Between Developme...
PHX Session #3 - "It Works on My Machine!" Closing the Loop Between Developme...PHX Session #3 - "It Works on My Machine!" Closing the Loop Between Developme...
PHX Session #3 - "It Works on My Machine!" Closing the Loop Between Developme...Steve Lange
 

Similar to The 7 Sins of Software Engineers in HEP (20)

Static Analysis Techniques For Testing Application Security - Houston Tech Fest
Static Analysis Techniques For Testing Application Security - Houston Tech FestStatic Analysis Techniques For Testing Application Security - Houston Tech Fest
Static Analysis Techniques For Testing Application Security - Houston Tech Fest
 
Scripting Recipes for Testers
Scripting Recipes for TestersScripting Recipes for Testers
Scripting Recipes for Testers
 
Hey open source, don’t forget the user! - by Chad Kieffer
Hey open source,  don’t forget the user! - by Chad KiefferHey open source,  don’t forget the user! - by Chad Kieffer
Hey open source, don’t forget the user! - by Chad Kieffer
 
Week7
Week7Week7
Week7
 
Challenges In Managing Embedded Product Development
Challenges In Managing Embedded Product DevelopmentChallenges In Managing Embedded Product Development
Challenges In Managing Embedded Product Development
 
Jonathon Rochelle @ FOWA Feb 07
Jonathon Rochelle @ FOWA Feb 07Jonathon Rochelle @ FOWA Feb 07
Jonathon Rochelle @ FOWA Feb 07
 
Introduction To Software Engineering
Introduction To Software EngineeringIntroduction To Software Engineering
Introduction To Software Engineering
 
Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)
 
Becoming A Php Ninja
Becoming A Php NinjaBecoming A Php Ninja
Becoming A Php Ninja
 
Pownce Lessons Learned
Pownce Lessons LearnedPownce Lessons Learned
Pownce Lessons Learned
 
2011_esc.pdf
2011_esc.pdf2011_esc.pdf
2011_esc.pdf
 
Presentations Unusual Java Bugs And Detecting Them Using Foss Tools
Presentations Unusual Java Bugs And Detecting Them Using Foss ToolsPresentations Unusual Java Bugs And Detecting Them Using Foss Tools
Presentations Unusual Java Bugs And Detecting Them Using Foss Tools
 
Jun Heider - Flex Application Profiling By Example
Jun Heider - Flex Application Profiling By ExampleJun Heider - Flex Application Profiling By Example
Jun Heider - Flex Application Profiling By Example
 
Extracting Plugins And Gems From Rails Apps
Extracting Plugins And Gems From Rails AppsExtracting Plugins And Gems From Rails Apps
Extracting Plugins And Gems From Rails Apps
 
Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008
 
Agile Development Methodologies
Agile Development MethodologiesAgile Development Methodologies
Agile Development Methodologies
 
Where's the Play in Programming?
Where's the Play in Programming?Where's the Play in Programming?
Where's the Play in Programming?
 
Understand Open Source ecosystems
Understand Open Source ecosystemsUnderstand Open Source ecosystems
Understand Open Source ecosystems
 
4gl code parser
4gl code parser 4gl code parser
4gl code parser
 
PHX Session #3 - "It Works on My Machine!" Closing the Loop Between Developme...
PHX Session #3 - "It Works on My Machine!" Closing the Loop Between Developme...PHX Session #3 - "It Works on My Machine!" Closing the Loop Between Developme...
PHX Session #3 - "It Works on My Machine!" Closing the Loop Between Developme...
 

More from Ioannis Baltopoulos

Advanced Issues and Future Trends
Advanced Issues and Future TrendsAdvanced Issues and Future Trends
Advanced Issues and Future TrendsIoannis Baltopoulos
 
Consuming, providing and publishing Web Services
Consuming, providing and publishing Web ServicesConsuming, providing and publishing Web Services
Consuming, providing and publishing Web ServicesIoannis Baltopoulos
 
Secure Compilation of a Multi-Tier Web Language (TLDI)
Secure Compilation of a Multi-Tier Web Language (TLDI)Secure Compilation of a Multi-Tier Web Language (TLDI)
Secure Compilation of a Multi-Tier Web Language (TLDI)Ioannis Baltopoulos
 
Secure Compilation of a Multi-Tier Web Language (Semantics Lunch)
Secure Compilation of a Multi-Tier Web Language (Semantics Lunch)Secure Compilation of a Multi-Tier Web Language (Semantics Lunch)
Secure Compilation of a Multi-Tier Web Language (Semantics Lunch)Ioannis Baltopoulos
 

More from Ioannis Baltopoulos (6)

Advanced Issues and Future Trends
Advanced Issues and Future TrendsAdvanced Issues and Future Trends
Advanced Issues and Future Trends
 
Consuming, providing and publishing Web Services
Consuming, providing and publishing Web ServicesConsuming, providing and publishing Web Services
Consuming, providing and publishing Web Services
 
Introduction to Web Services
Introduction to Web ServicesIntroduction to Web Services
Introduction to Web Services
 
Secure Compilation of a Multi-Tier Web Language (TLDI)
Secure Compilation of a Multi-Tier Web Language (TLDI)Secure Compilation of a Multi-Tier Web Language (TLDI)
Secure Compilation of a Multi-Tier Web Language (TLDI)
 
Secure Compilation of a Multi-Tier Web Language (Semantics Lunch)
Secure Compilation of a Multi-Tier Web Language (Semantics Lunch)Secure Compilation of a Multi-Tier Web Language (Semantics Lunch)
Secure Compilation of a Multi-Tier Web Language (Semantics Lunch)
 
Audio Walks
Audio WalksAudio Walks
Audio Walks
 

Recently uploaded

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
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 Servicegiselly40
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
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 slidevu2urc
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
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...apidays
 
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 AutomationSafe Software
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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.pdfsudhanshuwaghmare1
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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...
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

The 7 Sins of Software Engineers in HEP

  • 1. The 7 Sins of Software Engineers in HEP Ioannis Baltopoulos CERN Summer Student 2004 CSC Student Lectures (Vico Equence) Monday, 6th September, 2004
  • 2. Outline • The Context (HEP) • The Sins! • Observation • Problem • Solution (definitely not exclusive) • Conclusion 2
  • 3. Establishing the Context • Although these sins are applicable in many other situations, they are going to be addressed in the context of HEP. • Agree that HEP Software Engineering is a special case because of the: • Size of projects • Amount of money invested • Amount of people involved • High expectations from research 3
  • 4. Sin#1: Tool-coupled Productivity Observation: • We’ve used the same tools for the past 25 years • Religious “wars” about the toolkit Problem: • Tools don’t scale. • They slow us down. Solution: • New free tools can do the “dirty” repetitive work for you. • Automate as much as you can! 4
  • 5. Sin#2: Code Infected Observation: • Software Engineers love writing code. • Write it in small chunks; its easier to understand. Problem: • Easy to write code. • Easy to prototype a system. Solution: • Understand the problem & the solution before coding. • Design first, code later. 5
  • 6. Sin#3: Process Infected Observation: • Very detailed and specific processes • Quality Assurance is postponed or flawed Problem: • Reduce productivity/creativity • Create unnecessary overhead Solution: • Process Reengineering from the SE themselves • Have bare minimum that will save us from chaos • Describe only the functional aspects of the work 6
  • 7. Sin#4: Reinventing The Wheel Observation: • Recurring problems get solved all over again • Rewriting algorithms (sorting?) • Several projects that do almost the same thing Problem: • Duplicated effort, wasted man-power/months • Half completed projects (80% maybe?) Solution: • Use patterns/templates/existing code/catalogs • Ask for other peoples’ experiences 7
  • 8. Sin#5: Functional but not Usable Observation: • Overexposing interfaces • Information packed applications/websites • Inadequate help system/updated documentation Problem: • User’s given too much choice and makes wrong one Solution: • Get feedback. Don’t think for your users, ask them! • Be consistent! Guide the users’ actions. • Spend that 10% of time to make the application shine! 8
  • 9. Sin#6: Documentation Paralysis Observation: • Huge amount of documentation Problem: • Out of date • Manually produced • Not informational/relevant Solution: • Source code metadata documentation • Reverse engineer diagrams during implementation 9
  • 10. Sin#7: Change Resistant Observation: • Pieces are only added, never taken away • “This is how we do it here, try and adapt.” Problem: • People like to stay in their zone of comfort Solution: • Be flexible! • “The reasonable man adapts himself to the environment; the unreasonable man persists in trying to adapt the environment to himself. If any progress has been achieved it was due to the unreasonable man.” 10
  • 11. Summary Things to take home: • Automate as much as you can. • Over-design, under-engineer. • Be lazy! Re-use code, Patterns, Templates. • Looks matter! • Be unreasonable! Change how things are done. 11
  • 12. Thank You! Ioannis Baltopoulos CERN Summer Student 2004 CSC Student Lectures (Vico Equence) Monday, 6th September, 2004
  • 13. Tools of the Trade: Build tools • ANT (ant.apache.org) • Maven (maven.apache.org) • GNU Make (www.gnu.org/software/make) • NAnt (nant.sourceforge.net) 13
  • 14. Tools of the Trade: IDEs • Eclipse (www.eclipse.org) • NetBeans (www.netbeans.org) • JCreator (www.jcreator.com) • IntelliJ IDEA (www.jetbrains.com) • Sun Java Studio Creator (www.sun.com/jscreator) • JDeveloper (otn.oracle.com/products/jdev) • Visual Studio (http://msdn.microsoft.com/vstudio/) 14
  • 15. Tools of the Trade: Testing • JUnit (www.junit.org) • Clover (www.cenqua.com/clover) • JCoverage (www.jcoverage.com) • SQLUnit (sqlunit.sourceforge.net) • DBUnit (dbunit.sourceforge.net) • HTTPUnit (httpunit.sourceforge.net) 15
  • 16. Tools of the Trade: Quality Assurance • Checkstyle (checkstyle.sourceforge.net) 16
  • 17. Tools of the Trade: Auto Documentation • JavaDoc (www.sun.com) • Doxygen (www.doxygen.org) • yDoc (www.yworks.com) 17
  • 18. Tools of the Trade: Design Tools • ArgoUML • Poseidon for UML • Rational Rose • MagicDraw • Visio • Together 18
  • 19. Tools of the Trade: Version Control • CVS (www.cvshome.org) • Subversion (subversion.tigris.org) • Visual SourceSafe (msdn.microsoft.com/ssafe) • RCS 19
  • 20. Source Code Resources • Java Almanac • Java Forums (forums.java.sun.com) • Numerical Recipes in C • Stony Brook Algorithm Repository 20