Professional Software Development, Practices and Ethics
-
date post
19-Oct-2014 -
Category
Technology
-
view
5.976 -
download
16
description
Transcript of Professional Software Development, Practices and Ethics
![Page 1: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/1.jpg)
L E M İ O R H A N E R G İ NL E M İ O R H A N E R G İ N
PROFESSIONAL SOFTWARE DEVELOPMENT, PRACTICES AND ETHICS
S e n i o r S o f t w a r e E n g i n e e r @ S e n i o r S o f t w a r e E n g i n e e r @ G i t t i g i d i y o r / e B a yG i t t i g i d i y o r / e B a y
nmap run completed -- 1 IP address (1 host up) scanneds% sshnuke 10.2.2.2 -rootpw-"Z1ON0101"Connecting to 10.2.2.2:ssh ... successful.Attempting to exploit SSHv1 CRC32 ... successful.Reseting root password to "Z1ON0101".System open: Access Level (9)% ssh 10.2.2.2 -l [email protected]'s password:
RTF-CONTROL> disable grid nodes 21 - 48Warning: Disabling nodes 21-48 will disconnect sector 11 (27 nodes)
ARE YOU SURE ? (y/n)
Grid Node 21 offline...Grid Node 22 offline...Grid Node 23 offline...Grid Node 24 offline...Grid Node 25 offline...Grid Node 26 offline...Grid Node 27 offline...Grid Node 28 offline...Grid Node 29 offline...Grid Node 30 offline...Grid Node 31 offline...Grid Node 32 offline...Grid Node 33 offline...Grid Node 34 offline...Grid Node 35 offline...Grid Node 36 offline...Grid Node 37 offline...Grid Node 38 offline...
![Page 2: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/2.jpg)
How To Become An Ethical Software Professional @ May 2012
Expert Software Engineer, Technical CoordinatorLead DEVELOper, Scrum Master
Senior Software Engineer
https://twitter.com/#!/lemiorhanhttp://www.linkedin.com/in/lemiorhan
B.Sc. Marmara University, CSE, 1997 – 2002M.Sc. Marmara University, CSE, 2002 – 2005
Lemİ Orhan Ergİn
@ GittiGidiyor, eBay
@ SONY EUROPE
@ Bilgisayarla yönetim ve mühendislik
@ Marmara University, Faculty of engineering
Software Engineer
![Page 3: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/3.jpg)
How To Become An Ethical Software Professional @ May 2012
AUTHORS EXPERIENCE● Developing software since 2002● Technical lead on development teams since 2005● Certified Scrum Master since 2009 (trained by Jim Coplien)● Played scrum master role for more than 1 year● Participated Scrum teams for more than 50 sprints
![Page 4: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/4.jpg)
How To Become An Ethical Software Professional @ May 2012
SOFTWARES ARE BORN TO FAIL
![Page 5: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/5.jpg)
How To Become An Ethical Software Professional @ May 2012
PROJECTS ARE FAILING!SATISH GROUP INVESTIGATES
If building engineers built buildings with the same care as software engineers build systems, the first woodpecker to come along would be the end of civilization as we know it.
“Top 10 Reasons Why Systems Projects Fail”Dr. Paul Dorsey
![Page 6: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/6.jpg)
How To Become An Ethical Software Professional @ May 2012
60BIL LIO N D OL LAR S
Equals to US millitary spending in Iraq and Afghanistan wars
Annual cost to USA economy of poor quality software
![Page 7: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/7.jpg)
How To Become An Ethical Software Professional @ May 2012
The basic problem is
LOW QUALITY SOFTWARE
WHAT'S THE PROBLEM WITH SOFTWARE?
● Lack of User Involvement● Lack of Transparency● Long or Unrealistic Time Scales● Poor or No Requirements● Bad Scope Management● Poor Development Quality● Poor Testing & Quality Assurance● Inaduequate Development Methodology● Poor Technical Knowledge and Experience 7th November 1940. Tacoma Narrows suspension bridge,
in Puget Sound, Washington, USA http://www.answers.com/topic/galloping-gertie-large-image#ixzz1q2uRmnLK
![Page 8: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/8.jpg)
How To Become An Ethical Software Professional @ May 2012
CIA Gives the Soviets Gas
COST: Millions of dollarsSignificant damage to Soviet economy
(1982)
Control software produced intense pressure in the Trans-Siberian gas pipelineResulted in the largest man-made non-nuclear explosion in Earth’s history
CIA operatives allegedly planted a bug in a Canadian computer system purchased by the Soviets
The CIA sabotaged the software so that it would pass Soviet inspection
but fail in operation
![Page 9: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/9.jpg)
How To Become An Ethical Software Professional @ May 2012
World War III… Almost (1983)
Cost
● Almost all of humanity
Disaster
● Soviet early warning system indicated the U.S. had launched 5 ICBMs
● The human operator thankfully interpreted this as an error
Cause
● A bug in the software failed to filter out false missile detections caused by sunlight reflecting off cloud-tops
![Page 10: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/10.jpg)
How To Become An Ethical Software Professional @ May 2012
Wall Street Crash (1987)
Cost
$500,000,000,000 in one day
Disaster
“Black Monday”, October 19, 1987Dow Jones lost 22.6% of its value S&P 500 dropped 20.4%
Cause
Trading programs generated a flood of sell orders, overwhelming the marketSystems crashed and left investors effectively blind
![Page 11: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/11.jpg)
How To Become An Ethical Software Professional @ May 2012
Mars Polar Lander… err, Crasher (1998)
Cost : $125,000,000
Disaster : After a 286-day journey from Earth, the Mars Climate Orbiter fell too far into Mars’s atmosphere, causing it to crash
Cause : The software that controlled the Orbiter thrusters used imperial units (pounds of force), rather than metric units (Newtons) as specified by NASA
![Page 12: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/12.jpg)
How To Become An Ethical Software Professional @ May 2012
Sony lost 70 million user's details (2011)
Cost :Reputation & Approx. 3.2 billion of dollars LOST, Re-branding PSN to SEN
Disaster:PlayStation Network hacked and 70 million credentials, billing and user information may have been stolenHacked TWICE! in a row
Cause:External intrusion by a security breach
![Page 13: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/13.jpg)
How To Become An Ethical Software Professional @ May 2012
Half day off in İMKB (2012)
![Page 14: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/14.jpg)
How To Become An Ethical Software Professional @ May 2012
Can you develop bug free code? NO WAY!Like no one is perfect, no code can be bug free!
code should have high quality standardsHowever...
![Page 15: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/15.jpg)
How To Become An Ethical Software Professional @ May 2012
"The worst outcome is not failure — it’s mediocrity. Failure lets you move on, mediocrity stalls you and keeps you from
reaching your potential. Pursue something so important that even if you fail, the world is better off with you having tried."
Drew Houston (founder/CEO of Dropbox)
![Page 16: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/16.jpg)
How To Become An Ethical Software Professional @ May 2012
Good software is developed by good developers
High quality software can only be developed by
Professional SOFTWAREDEVELOPERS
![Page 17: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/17.jpg)
How To Become An Ethical Software Professional @ May 2012
waterfallAgile developmentsoftware craftsmanshıppractıces to knowethıcs ın software engıneerıngethıcs ın development
AGENDA
![Page 18: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/18.jpg)
How To Become An Ethical Software Professional @ May 2012
The Horizon of Predictability
Uncertainty is part of every innovative and creative development process
![Page 19: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/19.jpg)
How To Become An Ethical Software Professional @ May 2012
WaterfallAproach
![Page 20: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/20.jpg)
How To Become An Ethical Software Professional @ May 2012
Features of a Waterfall Model
Easy to follow For any size project Every stage has to be done separately at
the right time so you cannot jump stages. Documentation is produced at every
stage allowing people to understand what has been done.
Testing is done at every stage.
![Page 21: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/21.jpg)
How To Become An Ethical Software Professional @ May 2012
Realities of Waterfall Model If requirements may change, the Waterfall model cannot
work. It is impossible to make one stage of the projects life cycle
perfect. Difficult to estimate time and cost for each stage of the
development process. Constant testing of the design is needed.
![Page 22: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/22.jpg)
How To Become An Ethical Software Professional @ May 2012
Original Paper of Waterfall Model
MANAGING THE DEVELOPMENT OF LARGE SOFTWARE SYSTEMS
Dr. Winston W. Royce, 1970
The implementation is risky and invites failure
![Page 23: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/23.jpg)
How To Become An Ethical Software Professional @ May 2012
SIMPLICITY of Waterfall Model
![Page 24: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/24.jpg)
How To Become An Ethical Software Professional @ May 2012
The Agile Paradigm emraces change, unpredictability and unforseen complexity as inescapable constants in all product development
Traditional
Customer knows what he wants Engineer knows how to build it Nothing changes along the way
Agile
Customer discovers what he wants Engineer discovers how to build it Things change along the way
![Page 25: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/25.jpg)
How To Become An Ethical Software Professional @ May 2012
waterfallAgile developmentsoftware craftsmanshıppractıces to knowethıcs ın software engıneerıngethıcs ın development
AGENDA
![Page 26: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/26.jpg)
How To Become An Ethical Software Professional @ May 2012
The Agile Manifesto
www.agilemanifesto.org
Individuals and interactions PROCESS AND TOOLS
WORKING SOFTWARE COMPREHENSIVE DOCUMENTATION
CUSTOMER COLLABORATION CONTRACT NEGOTIATION
RESPONDING TO CHANGE FOLLOWING A PLAN
OVER
OVER
OVER
OVER
![Page 27: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/27.jpg)
How To Become An Ethical Software Professional @ May 2012
Agile Principles - I
● Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
● Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
● Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
● Business people and developers must work together daily throughout the project.
● Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
● The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
![Page 28: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/28.jpg)
How To Become An Ethical Software Professional @ May 2012
Agile Principles - II
● Working software is the primary measure of progress.
● Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
● Continuous attention to technical excellence and good design enhances agility.
● Simplicity -the art of maximizing the amount of work not done- is essential.
● The best architectures, requirements, and designs emerge from self-organizing teams.
● At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
![Page 29: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/29.jpg)
How To Become An Ethical Software Professional @ May 2012
The Agile Practices Family
● Extreme Programming (XP)
● Crystal
● Dynamic Systems Development Method (DSDM)
● Test Driven Development (TDD)
● Feature Driven Development (FDD)
● Essential Unified Process
● Scrum
● Kanban
● Lean
![Page 30: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/30.jpg)
How To Become An Ethical Software Professional @ May 2012
Time-boxed Activities
Task are broken down intosmall increments (2-4 weeks),
in which the team works througha full development lifecycle
Minimizes the overall project riskPlanning is easier with frequent release
Allows project to adapt to changes quickly
![Page 31: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/31.jpg)
How To Become An Ethical Software Professional @ May 2012
People ınvolved are People ınvolved are replaceable resourcesreplaceable resources
Agile Teams are small (7 ± 2)Agile Teams are small (7 ± 2)EMPOWEREDEMPOWERED
Cross-functional & Self-OrganizingCross-functional & Self-Organizing
![Page 32: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/32.jpg)
How To Become An Ethical Software Professional @ May 2012
KAIZENINSPECT AND ADAPTContinuous ımprovement
![Page 33: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/33.jpg)
How To Become An Ethical Software Professional @ May 2012
Focus on End-User and Customer
We tend to build the wrong things
Source: Standish Group Study Report
![Page 34: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/34.jpg)
How To Become An Ethical Software Professional @ May 2012
Communication Temperature
Increasing communication temperatureis an important goal of the Agile approach
![Page 35: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/35.jpg)
How To Become An Ethical Software Professional @ May 2012
Why Agile?
![Page 36: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/36.jpg)
How To Become An Ethical Software Professional @ May 2012
Agile Software Development
Agile is an iterative and adaptive approach to software development,
performed in a highly collaborative mannerby self-organizing teams,
with just enough ceremony that produces high quality softwarein a cost effective and timely manner,
which meets the changing needs of its stakeholders.
![Page 37: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/37.jpg)
How To Become An Ethical Software Professional @ May 2012
![Page 38: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/38.jpg)
How To Become An Ethical Software Professional @ May 2012
![Page 39: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/39.jpg)
How To Become An Ethical Software Professional @ May 2012
If you want to move your project forward, the only reliable way to do that is to cultivate a deep sense of software craftsmanship and professionalism around it.
Control is ultimately illusory ON Software development projects
People who show up every day eager to improve their craft will ultimately succeed
TOM
DEM
ARKO
![Page 40: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/40.jpg)
How To Become An Ethical Software Professional @ May 2012
IT is an DISCIPLINE in software development that emphasizes the coding skills of the software developers themselves. It is a response by software developers to the perceived ills of the mainstream software industry, including the prioritization of financial concerns over code quality.
Software Craftsmanship
![Page 41: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/41.jpg)
How To Become An Ethical Software Professional @ May 2012
Software craftsmanshıp Manifesto
manıfesto.softwarecraftsmanshıp.org
Individuals andinteractions
Community ofprofessıonals
WORKINGSOFTWARE
WELL craftedsoftware
CUSTOMERCOLLABORATION
Productıvepartnershıp
RESPONDINGTO CHANGE
Stadılyaddıng value
OVER
OVER
OVER
OVER
PROCESSAND TOOLS
COMPREHENSIVEDOCUMENTATION
CONTRACTNEGOTIATION
FOLLOWINGA PLAN
OVER
OVER
OVER
OVER
![Page 42: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/42.jpg)
How To Become An Ethical Software Professional @ May 2012
waterfallAgile developmentsoftware craftsmanshıppractıces to knowethıcs ın software engıneerıngethıcs ın development
AGENDA
![Page 43: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/43.jpg)
How To Become An Ethical Software Professional @ May 2012
PROGRAMMING LANGUAGE
SCALA
PHP
RUBY
JAVAGROOVY
clojur e
PHY TO N
C
C++
![Page 44: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/44.jpg)
How To Become An Ethical Software Professional @ May 2012
IDE
Intellıj ıdea
eclıpsenetbeans
rubymıne
![Page 45: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/45.jpg)
How To Become An Ethical Software Professional @ May 2012
VERSION Control Systems
CVS
StartTeam
Subversion
GitMercurial
IBM Te am
Co ncert Baz aa r
![Page 46: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/46.jpg)
How To Become An Ethical Software Professional @ May 2012
Branchıng model
![Page 47: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/47.jpg)
How To Become An Ethical Software Professional @ May 2012
Code Hosting
BitBucket
GitHubUn
fudd
le
In-House
![Page 48: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/48.jpg)
How To Become An Ethical Software Professional @ May 2012
Code Buılder
Gradlemaven ıvy
ant
![Page 49: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/49.jpg)
How To Become An Ethical Software Professional @ May 2012
Agile Coach at Googlewhere he is responsible for coaching Googlers
to maintain the high level of automated testing culture
http://misko.hevery.com/
“The secret of testing is writing
testable code”Miško Hevery
![Page 50: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/50.jpg)
How To Become An Ethical Software Professional @ May 2012
TEST DRIVEN DEVELOPMENTADD Test – run test and faıl – wrıte code – run automated test and pass – refactor code – repeat
![Page 51: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/51.jpg)
How To Become An Ethical Software Professional @ May 2012
tes tı ngUnıt INTEGratıon functıonal acceptance regressıon uat Performance
Junıtcucumber
mockıtopowermock
gmocksellenıum
jmeter
MANUAL
![Page 52: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/52.jpg)
How To Become An Ethical Software Professional @ May 2012
It's not worth
writing tests
Unlessyou have
CONTINUOUS INTEGRATION
![Page 53: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/53.jpg)
How To Become An Ethical Software Professional @ May 2012
Continuous ıntegratıon
Jetbraıns teamcıty
Atlassıan bamboo
Hudson/jenkınsanthı llpro
Cruı se c ont rol
![Page 54: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/54.jpg)
How To Become An Ethical Software Professional @ May 2012
Enterprise Environments
Developer
Developer
Developer
SVC CI
Notification Services (email, messaging)
DEV TQA STG PRD
Super User Super User Super User
![Page 55: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/55.jpg)
How To Become An Ethical Software Professional @ May 2012
PRAC
TICE
S Coding standards and guidelinesDatabase standars and guidelinestechnology standardsPair programing and code reviewsCode coverage monitoringOS-IDE-Tool free codingTest Driven Development (TDD)Multi level testing (Unit, Integration, Functional, Performance, Manual)
Enterprice architecture (Development, TestQA, Staging, Production)
Clean code & software craftsmanship principles
![Page 56: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/56.jpg)
How To Become An Ethical Software Professional @ May 2012
waterfallAgile developmentsoftware craftsmanshıppractıces to knowethıcs ın software engıneerıngethıcs ın software development
AGENDA
![Page 57: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/57.jpg)
How To Become An Ethical Software Professional @ May 2012
ACM Code of Ethics and Professional Conducthttp://www.acm.org/constitution/code.html
Bitish Computer Society Code of Conducthttp://www1.bcs.org.uk/DocsRepository/03200/3224/default.htm
IEEE-CS/ACM Software Engineering Code of EthicsAnd Professional Practicehttp://www.computer.org/tab/seprof/code.htm
Versıons of Code of ethıcs
![Page 58: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/58.jpg)
How To Become An Ethical Software Professional @ May 2012
Joint IEEE-CS/ACM Code of Ethics and Professional Practice
● Built on 8 principles Public Interest Client and Employer Product Judgement Management Profession Colleagues Self
● The principle of Public Interest is central to the code.
![Page 59: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/59.jpg)
How To Become An Ethical Software Professional @ May 2012
Publ
ic In
tere
st
Software engineers shall act consistently with the public interest.
Approve software only if they have a well-founded belief that it is safe, meets standards, passes tests and does not diminsh quality of life, privacy or harm the environment.
Disclose any actual or potential danger to the user. Be fair and avoid deception in all statements concerning
software.
![Page 60: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/60.jpg)
How To Become An Ethical Software Professional @ May 2012
Software engineers shall act in a manner that is in the best interests of their client and employer, consistent with the public interest.
Be honest about any limitation of their experience and education.
Keep private any confidential information consistent with the public interest and the law.
Not knowingly use software that is obtained or retained either illegally or unethically.
Clie
nt a
nd em
ploy
er
![Page 61: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/61.jpg)
How To Become An Ethical Software Professional @ May 2012
Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.
Strive for high quality, acceptable cost, and a reasonable schedule, ensuring significant tradeoffs are clear.
Ensure adequate testing, debugging, and review of software and related documents on which they work.
Treat all forms of software maintenance with the same professionalism as new development.
prod
uct
![Page 62: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/62.jpg)
How To Become An Ethical Software Professional @ May 2012
Software engineers shall maintain integrity and independence in their professional judgment.
Not engage in deceptive financial practices. Disclose to all concerned parties those conflicts
of interest that cannot reasonably be avoided or escaped.
judg
emen
t
![Page 63: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/63.jpg)
How To Become An Ethical Software Professional @ May 2012
Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.
Ensure that software engineers are informed of standards before being held to them.
Offer fair and just remuneration. Not punish anyone for expressing ethical concerns
about a project. man
agem
ent
![Page 64: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/64.jpg)
How To Become An Ethical Software Professional @ May 2012
Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.
Promote public knowledge of software engineering. Be accurate in stating the characteristics of software on
which they work. Take responsibility for detecting, correcting, and
reporting errors in software and associated documents on which they work. pr
ofes
sıon
![Page 65: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/65.jpg)
How To Become An Ethical Software Professional @ May 2012
Software engineers shall be fair to and supportive of their colleagues.
Credit fully the work of others and refrain from taking undue credit.
Give a fair hearing to the opinions, concerns, or complaints of a colleague.
In situations outside of their own areas of competence, call upon the opinions of other professionals who have competence in that area. co
llea
gues
![Page 66: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/66.jpg)
How To Become An Ethical Software Professional @ May 2012
Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
Further their knowledge Improve their ability to create safe, reliable, and useful
quality software Improve their ability to produce accurate, informative, and
well-written documentation.
self
![Page 67: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/67.jpg)
How To Become An Ethical Software Professional @ May 2012
waterfallAgile developmentsoftware craftsmanshıppractıces to knowethıcs ın software engıneerıngethıcs ın software development
AGENDA
![Page 68: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/68.jpg)
How To Become An Ethical Software Professional @ May 2012
Ethı
cs In
Soft
war
e dev
elop
men
tBE THRUSTable, Open & honestdon't blame othersdon't try to be software godshare your knowledgeUse the fırst rule of cooperatıon: help others fırst!Learn and obey copyright lıcenses (GLP, CC, MPL, etc.)resolve patent conflıctsBe careful on copy & pasteDo not steal code Reference to the orıgınal authordo not change references to the orıginal author
![Page 69: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/69.jpg)
How To Become An Ethical Software Professional @ May 2012
Ethı
cs In
Soft
war
e dev
elop
men
tDo not use cracked softwareDo not snıff network to catch credentıalsDo not sell commercial code without permissionDo not write backdoors or bugs on purposeAlways encrypt passwords and credıt card dataDo not sell or share users' dataReport any bugs, any issues noticedDo not close a task until it is really done
![Page 70: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/70.jpg)
How To Become An Ethical Software Professional @ May 2012
Emaıl:lemiorhan@gmaıl.com
Twitter:https://twitter.com/#!/lemiorhan
Linkedin:http://www.linkedin.com/in/lemiorhan
Blog:http://www.flyingtomoon.com
Lemi orhan [email protected]
My Office, Barbaros Mah. Çiğdem Sk. No: 1/14, 34746
Ataşehir / İstanbul
![Page 71: Professional Software Development, Practices and Ethics](https://reader030.fdocuments.us/reader030/viewer/2022013107/5443a721b1af9fbc0e8b45ec/html5/thumbnails/71.jpg)
How To Become An Ethical Software Professional @ May 2012
Thank youVery much