SlideShare a Scribd company logo
PROFESSIONAL SOFTWARE DEVELOPMENT,
       PRACTICES AND ETHICS
                                     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 root
                                     root@10.2.2.2's password:

                                     RTF-CONTROL> disable grid nodes 21 - 48
                                     Warning: 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...




                                      LEMÄ° ORHAN ERGÄ°N
             Senior Software Engineer @ Gittigidiyor / eBay
LemÄ° Orhan ErgÄ°n                  https://twitter.com/#!/lemiorhan
                                  http://www.linkedin.com/in/lemiorhan




        @ Marmara University, Faculty of engineering

B.Sc.   Marmara University, CSE, 1997 ā€“ 2002
M.Sc.   Marmara University, CSE, 2002 ā€“ 2005

             @ Bilgisayarla yƶnetim ve mĆ¼hendislik

Software Engineer

                           @ SONY EUROPE

Expert Software Engineer, Technical Coordinator
Lead DEVELOper, Scrum Master

                       @ GittiGidiyor, eBay

Senior Software Engineer
                           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




                      How To Become An Ethical Software Professional @ May 2012
SOFTWARES ARE BORN TO FAIL




     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


                        How To Become An Ethical Software Professional @ May 2012
60                                BILLION DOLLARS
                                                    Annual cost to
                                                    USA economy of
                                                    poor quality
                                                    software


Equals to US millitary spending in Iraq and Afghanistan wars
               How To Become An Ethical Software Professional @ May 2012
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




                                       The basic problem is
                            LOW QUALITY SOFTWARE
                         How To Become An Ethical Software Professional @ May 2012
(1982)
CIA Gives the Soviets Gas                          The CIA sabotaged the software so
                                                  that it would pass Soviet inspection
CIA operatives allegedly planted a bug                            but fail in operation
in a Canadian computer system
purchased by the Soviets                                      COST: Millions of dollars
                                                 Significant damage to Soviet economy

  Control software produced intense pressure in the Trans-Siberian gas pipeline
    Resulted in the largest man-made non-nuclear explosion in Earthā€™s history
                       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




                       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, 1987
Dow Jones lost 22.6% of its value
S&P 500 dropped 20.4%
Cause
Trading programs generated a flood of sell
orders, overwhelming the market
Systems crashed and left investors
effectively blind

                       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




                       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 stolen
Hacked TWICE! in a row


Cause:
External intrusion by a security breach


                        How To Become An Ethical Software Professional @ May 2012
Half day off in Ä°MKB (2012)




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!




However...

code should have high quality standards
                     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)




                  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
SOFTWARE
DEVELOPERS  How To Become An Ethical Software Professional @ May 2012
waterfall
Agile development
software craftsmanshıp
practıces to know
ethıcs ın software engıneerıng
ethıcs ın development



                     AGENDA
             How To Become An Ethical Software Professional @ May 2012
The Horizon of Predictability




Uncertainty is part of every innovative and
      creative development process
    How To Become An Ethical Software Professional @ May 2012
Waterfall
                                                 Aproach




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.


                   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.




                   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




    How To Become An Ethical Software Professional @ May 2012
SIMPLICITY of Waterfall Model




  How To Become An Ethical Software Professional @ May 2012
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




    The Agile Paradigm emraces change, unpredictability and unforseen
     complexity as inescapable constants in all product development
                    How To Become An Ethical Software Professional @ May 2012
waterfall
Agile development
software craftsmanshıp
practıces to know
ethıcs ın software engıneerıng
ethıcs ın development



                     AGENDA
             How To Become An Ethical Software Professional @ May 2012
The Agile Manifesto


Individuals and interactions              OVER             PROCESS AND TOOLS

          WORKING SOFTWARE                OVER             COMPREHENSIVE DOCUMENTATION

   CUSTOMER COLLABORATION                 OVER             CONTRACT NEGOTIATION

      RESPONDING TO CHANGE                OVER             FOLLOWING A PLAN




                                 www.agilemanifesto.org
                   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.


                       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.




                       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
                   How To Become An Ethical Software Professional @ May 2012
Time-boxed Activities
                                            Task are broken down into
                                          small increments (2-4 weeks),
                                        in which the team works through
                                           a full development lifecycle




    Minimizes the overall project risk
 Planning is easier with frequent release
Allows project to adapt to changes quickly
       How To Become An Ethical Software Professional @ May 2012
People ınvolved are
   replaceable resources




   Agile Teams are small (7 Ā± 2)
            EMPOWERED
Cross-functional & Self-Organizing
           How To Become An Ethical Software Professional @ May 2012
KAIZEN
                        INSPECT AND ADAPT
                       Continuous ımprovement



How To Become An Ethical Software Professional @ May 2012
Focus on End-User and Customer




Source: Standish Group Study Report



  We tend to build the wrong things

             How To Become An Ethical Software Professional @ May 2012
Communication Temperature




  Increasing communication temperature
is an important goal of the Agile approach
      How To Become An Ethical Software Professional @ May 2012
Why Agile?




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 manner
                 by self-organizing teams,
with just enough ceremony that produces high quality software
             in a cost effective and timely manner,
     which meets the changing needs of its stakeholders.



              How To Become An Ethical Software Professional @ May 2012
How To Become An Ethical Software Professional @ May 2012
How To Become An Ethical Software Professional @ May 2012
Control is ultimately illusory ON

            TOM DEMARKO
                           Software development projects
 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.


                                                                                         People who
                                                                                         show up every
                                                                                         day eager to
                                                                                         improve their
                                                                                         craft will
                                                                                         ultimately
                                                                                         succeed
                             How To Become An Ethical Software Professional @ May 2012
Software Craftsmanship



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.
                How To Become An Ethical Software Professional @ May 2012
Software craftsmanshıp Manifesto

Individuals and                          PROCESS                                Community of
                     OVER                                         OVER
   interactions                         AND TOOLS                               professıonals
      WORKING                      COMPREHENSIVE                                WELL crafted
                     OVER                                         OVER
     SOFTWARE                      DOCUMENTATION                                software

    CUSTOMER                           CONTRACT                                 Productıve
                     OVER                                         OVER
COLLABORATION                         NEGOTIATION                               partnershıp

   RESPONDING                          FOLLOWING                                Stadıly
                     OVER                                         OVER
    TO CHANGE                            A PLAN                                 addıng value

                            manıfesto.softwarecraftsmanshıp.org
                    How To Become An Ethical Software Professional @ May 2012
waterfall
Agile development
software craftsmanshıp
practıces to know
ethıcs ın software engıneerıng
ethıcs ın development



                     AGENDA
             How To Become An Ethical Software Professional @ May 2012
PROGRAMMING LANGUAGE




   SCALA
                   C
                          PHYTON
                                      JAVA
C++             RUBY
 PHP   GROOVY                                         clojure
       How To Become An Ethical Software Professional @ May 2012
IDE



                         rubymıne
Intellıj ıdea
                           netbeans
    eclıpse
    How To Become An Ethical Software Professional @ May 2012
VERSION Control Systems




Git      IBM TeamConcert


                           Bazaar
          CVS
                                    Subversion
  StartTeam                Mercurial
      How To Become An Ethical Software Professional @ May 2012
Branchıng model




How To Become An Ethical Software Professional @ May 2012
Code Hosting


                                        BitBucket



                                       Unfuddle
                     In-House




GitHub
 How To Become An Ethical Software Professional @ May 2012
Code Buılder




maven                                                         ıvy


               ant
                   Gradle
  How To Become An Ethical Software Professional @ May 2012
ā€œThe secret of
testing is writing
 testable codeā€
                                MiŔko Hevery
                           Agile Coach at Google
          where he is responsible for coaching Googlers
 to maintain the high level of automated testing culture
                                  http://misko.hevery.com/




                           How To Become An Ethical Software Professional @ May 2012
TEST DRIVEN DEVELOPMENT
ADD Test ā€“ run test and faıl ā€“ wrıte code ā€“ run automated test and pass ā€“ refactor code ā€“ repeat



                         How To Become An Ethical Software Professional @ May 2012
Unıt
INTEGratıon
functıonal                                                   Junıt




                                                                 testıng
                                                        cucumber
acceptance                                                mockıto
                                                       powermock
regressıon                                                  gmock
                                                        sellenıum
uat                                                        jmeter

Performance
MANUAL
     How To Become An Ethical Software Professional @ May 2012
It's not                                                        Unless
 worth                                                         you have
writing                                                CONTINUOUS
 tests                                                 INTEGRATION
           How To Become An Ethical Software Professional @ May 2012
Continuous ıntegratıon


   Atlassıan bamboo
  Cruıse control


                                Jetbraıns teamcıty
                   anthıllpro




Hudson/jenkıns
             How To Become An Ethical Software Professional @ May 2012
Enterprise Environments
 Notification Services (email, messaging)



Developer

Developer              SVC               CI              Super User        Super User   Super User


Developer




                                        DEV                 TQA                 STG       PRD




                    How To Become An Ethical Software Professional @ May 2012
PRACTICES   Coding standards and guidelines
            Database standars and guidelines
            technology standards
            Pair programing and code reviews
            Code coverage monitoring
            OS-IDE-Tool free coding
            Test Driven Development (TDD)
            Multi level testing (Unit, Integration, Functional, Performance, Manual)
            Enterprice architecture (Development, TestQA, Staging, Production)
            Clean code & software craftsmanship principles

                   How To Become An Ethical Software Professional @ May 2012
waterfall
Agile development
software craftsmanshıp
practıces to know
ethıcs ın software engıneerıng
ethıcs ın software development



                    AGENDA
            How To Become An Ethical Software Professional @ May 2012
Versıons of Code of ethıcs

ACM Code of Ethics and Professional Conduct
http://www.acm.org/constitution/code.html

Bitish Computer Society Code of Conduct
http://www1.bcs.org.uk/DocsRepository/03200/3224/default.htm

IEEE-CS/ACM Software Engineering Code of Ethics
And Professional Practice
http://www.computer.org/tab/seprof/code.htm




                     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.
                 How To Become An Ethical Software Professional @ May 2012
Public Interest
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.




                  How To Become An Ethical Software Professional @ May 2012
Client and employer
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.



                  How To Become An Ethical Software Professional @ May 2012
Software engineers shall ensure that their




                                                                            product
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.



                How To Become An Ethical Software Professional @ May 2012
judgement
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.




                 How To Become An Ethical Software Professional @ May 2012
management
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.


               How To Become An Ethical Software Professional @ May 2012
professıon
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.



                How To Become An Ethical Software Professional @ May 2012
colleagues
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.



                How To Become An Ethical Software Professional @ May 2012
Software engineers shall participate in lifelong learning
regarding the practice of their profession and shall




                                                                             self
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.


                 How To Become An Ethical Software Professional @ May 2012
waterfall
Agile development
software craftsmanshıp
practıces to know
ethıcs ın software engıneerıng
ethıcs ın software development



                    AGENDA
            How To Become An Ethical Software Professional @ May 2012
Ethıcs In Software development   BE THRUSTable, Open & honest
                                 don't blame others
                                 don't try to be software god
                                 share your knowledge
                                 Use the fırst rule of cooperatıon: help others fırst!
                                 Learn and obey copyright lıcenses (GLP, CC, MPL, etc.)
                                 resolve patent conflıcts
                                 Be careful on copy & paste
                                 Do not steal code
                                 Reference to the orıgınal author
                                 do not change references to the orıginal author

                                        How To Become An Ethical Software Professional @ May 2012
Ethıcs In Software development
                                 Do not use cracked software
                                 Do not snıff network to catch credentıals
                                 Do not sell commercial code without permission
                                 Do not write backdoors or bugs on purpose
                                 Always encrypt passwords and credıt card data
                                 Do not sell or share users' data
                                 Report any bugs, any issues noticed
                                 Do not close a task until it is really done



                                        How To Become An Ethical Software Professional @ May 2012
Emaıl:
lemiorhan@gmaıl.com

Twitter:
https://twitter.com/#!/lemiorhan
                                                                      Lemi orhan ergin
                                                                            lergin@ebay.com
Linkedin:
http://www.linkedin.com/in/lemiorhan

Blog:
http://www.flyingtomoon.com
                                                                                    My Office, Barbaros
                                                                                      Mah. Ƈiğdem Sk.
                                                                                      No: 1/14, 34746
                How To Become An Ethical Software Professional @ May 2012
                                                                                    Ataşehir / İstanbul
Thank you
 Very much
  How To Become An Ethical Software Professional @ May 2012

More Related Content

What's hot

Software Engineering Practice
Software Engineering PracticeSoftware Engineering Practice
Software Engineering Practice
Research & Development LAB QUEST Nawabshah
Ā 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9koolkampus
Ā 
Software engineering : Layered Architecture
Software engineering : Layered ArchitectureSoftware engineering : Layered Architecture
Software engineering : Layered Architecture
Muhammed Afsal Villan
Ā 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
farazimlak
Ā 
UML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptxUML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptx
Nwabueze Obioma
Ā 
Software Development Process
Software Development ProcessSoftware Development Process
Software Development ProcessAmira Elsayed Ismail
Ā 
Software Engineering Code Of Ethics And Professional Practice
Software Engineering Code Of Ethics And Professional PracticeSoftware Engineering Code Of Ethics And Professional Practice
Software Engineering Code Of Ethics And Professional Practice
Saqib Raza
Ā 
Software Myths
Software MythsSoftware Myths
Software Myths
Rajat Bajaj
Ā 
PROTOTYPE MODEL
PROTOTYPE MODELPROTOTYPE MODEL
PROTOTYPE MODEL
shenagarg44
Ā 
A presentation on software crisis
A presentation on software crisisA presentation on software crisis
A presentation on software crisis
chandan sharma
Ā 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.ppt
JAYAPRIYAR7
Ā 
Software development process models
Software development process modelsSoftware development process models
Software development process models
Muhammed Afsal Villan
Ā 
Context model
Context modelContext model
Context model
Ubaid423
Ā 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
Hassan A-j
Ā 
Software Engineering by Pankaj Jalote
Software Engineering by Pankaj JaloteSoftware Engineering by Pankaj Jalote
Software Engineering by Pankaj Jalote
Golda Margret Sheeba J
Ā 
How Do You Build Software? Software Engineering Practices of an Agile Developer
How Do You Build Software? Software Engineering Practices of an Agile DeveloperHow Do You Build Software? Software Engineering Practices of an Agile Developer
How Do You Build Software? Software Engineering Practices of an Agile Developer
Lemi Orhan Ergin
Ā 
Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineering
kirupasuchi1996
Ā 
Software Reuse
Software ReuseSoftware Reuse
Software Reuse
prince mukherjee
Ā 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
Preeti Mishra
Ā 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
Fadhil Ismail
Ā 

What's hot (20)

Software Engineering Practice
Software Engineering PracticeSoftware Engineering Practice
Software Engineering Practice
Ā 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9
Ā 
Software engineering : Layered Architecture
Software engineering : Layered ArchitectureSoftware engineering : Layered Architecture
Software engineering : Layered Architecture
Ā 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
Ā 
UML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptxUML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptx
Ā 
Software Development Process
Software Development ProcessSoftware Development Process
Software Development Process
Ā 
Software Engineering Code Of Ethics And Professional Practice
Software Engineering Code Of Ethics And Professional PracticeSoftware Engineering Code Of Ethics And Professional Practice
Software Engineering Code Of Ethics And Professional Practice
Ā 
Software Myths
Software MythsSoftware Myths
Software Myths
Ā 
PROTOTYPE MODEL
PROTOTYPE MODELPROTOTYPE MODEL
PROTOTYPE MODEL
Ā 
A presentation on software crisis
A presentation on software crisisA presentation on software crisis
A presentation on software crisis
Ā 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.ppt
Ā 
Software development process models
Software development process modelsSoftware development process models
Software development process models
Ā 
Context model
Context modelContext model
Context model
Ā 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
Ā 
Software Engineering by Pankaj Jalote
Software Engineering by Pankaj JaloteSoftware Engineering by Pankaj Jalote
Software Engineering by Pankaj Jalote
Ā 
How Do You Build Software? Software Engineering Practices of an Agile Developer
How Do You Build Software? Software Engineering Practices of an Agile DeveloperHow Do You Build Software? Software Engineering Practices of an Agile Developer
How Do You Build Software? Software Engineering Practices of an Agile Developer
Ā 
Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineering
Ā 
Software Reuse
Software ReuseSoftware Reuse
Software Reuse
Ā 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
Ā 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
Ā 

Viewers also liked

Git Branching Model
Git Branching ModelGit Branching Model
Git Branching Model
Lemi Orhan Ergin
Ā 
The Engines of Software Development: Testing and Test Driven Development
The Engines of Software Development: Testing and Test Driven DevelopmentThe Engines of Software Development: Testing and Test Driven Development
The Engines of Software Development: Testing and Test Driven Development
Lemi Orhan Ergin
Ā 
The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...
The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...
The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...
Lemi Orhan Ergin
Ā 
Everyone needs a portfolio: a workshop
Everyone needs a portfolio: a workshopEveryone needs a portfolio: a workshop
Everyone needs a portfolio: a workshop
Abby Covert
Ā 
India Festival of Colors 2013
India Festival of Colors 2013India Festival of Colors 2013
India Festival of Colors 2013maditabalnco
Ā 
Software Houses - Conflict Resolution in Teams
Software Houses - Conflict Resolution in TeamsSoftware Houses - Conflict Resolution in Teams
Software Houses - Conflict Resolution in Teams
Enablistics.com
Ā 
Survey Of Software Houses
Survey Of Software HousesSurvey Of Software Houses
Survey Of Software Houses
A-Tech and Software Development
Ā 
You Don't Scale: Why Today's Leaders are Engineering Trust Into Their Company...
You Don't Scale: Why Today's Leaders are Engineering Trust Into Their Company...You Don't Scale: Why Today's Leaders are Engineering Trust Into Their Company...
You Don't Scale: Why Today's Leaders are Engineering Trust Into Their Company...
David Bland
Ā 
Git How Does That Work Then
Git How Does That Work ThenGit How Does That Work Then
Git How Does That Work Then
David Greaves
Ā 
Libvirt and bhyve under FreeBSD
Libvirt and bhyve under FreeBSDLibvirt and bhyve under FreeBSD
Libvirt and bhyve under FreeBSD
Craig Rodrigues
Ā 
Commit messages - Good practices
Commit messages - Good practicesCommit messages - Good practices
Commit messages - Good practices
Tarin Gamberini
Ā 
The Importance of Software Development
The Importance of Software Development The Importance of Software Development
The Importance of Software Development
EffOne_Technologies
Ā 
Agile tales of creative customer collaboration
Agile tales of creative customer collaborationAgile tales of creative customer collaboration
Agile tales of creative customer collaboration
Claudio Perrone
Ā 
How to Improve Knowledge Motivation Innovation in Agile Organizations
How to Improve Knowledge Motivation Innovation in Agile OrganizationsHow to Improve Knowledge Motivation Innovation in Agile Organizations
How to Improve Knowledge Motivation Innovation in Agile Organizations
Lemi Orhan Ergin
Ā 
Economic Freedom of Indian States - Report 2013-14
Economic Freedom of Indian States - Report 2013-14Economic Freedom of Indian States - Report 2013-14
Economic Freedom of Indian States - Report 2013-14
Arun Prabhudesai
Ā 
e2e frameworks - czyli kij ma dwa końce
e2e frameworks - czyli kij ma dwa końcee2e frameworks - czyli kij ma dwa końce
e2e frameworks - czyli kij ma dwa końce
The Software House
Ā 
SPEL (Social, professional, ethical and legal) issues in Usability
SPEL (Social, professional, ethical and legal) issues in UsabilitySPEL (Social, professional, ethical and legal) issues in Usability
SPEL (Social, professional, ethical and legal) issues in Usability
Andres Baravalle
Ā 
Git branching-model
Git branching-modelGit branching-model
Git branching-model
Aaron Huang
Ā 
Git - Bildiğiniz Gibi Değil
Git - Bildiğiniz Gibi DeğilGit - Bildiğiniz Gibi Değil
Git - Bildiğiniz Gibi Değil
Lemi Orhan Ergin
Ā 
Slides chapter 10
Slides chapter 10Slides chapter 10
Slides chapter 10
Priyanka Shetty
Ā 

Viewers also liked (20)

Git Branching Model
Git Branching ModelGit Branching Model
Git Branching Model
Ā 
The Engines of Software Development: Testing and Test Driven Development
The Engines of Software Development: Testing and Test Driven DevelopmentThe Engines of Software Development: Testing and Test Driven Development
The Engines of Software Development: Testing and Test Driven Development
Ā 
The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...
The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...
The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...
Ā 
Everyone needs a portfolio: a workshop
Everyone needs a portfolio: a workshopEveryone needs a portfolio: a workshop
Everyone needs a portfolio: a workshop
Ā 
India Festival of Colors 2013
India Festival of Colors 2013India Festival of Colors 2013
India Festival of Colors 2013
Ā 
Software Houses - Conflict Resolution in Teams
Software Houses - Conflict Resolution in TeamsSoftware Houses - Conflict Resolution in Teams
Software Houses - Conflict Resolution in Teams
Ā 
Survey Of Software Houses
Survey Of Software HousesSurvey Of Software Houses
Survey Of Software Houses
Ā 
You Don't Scale: Why Today's Leaders are Engineering Trust Into Their Company...
You Don't Scale: Why Today's Leaders are Engineering Trust Into Their Company...You Don't Scale: Why Today's Leaders are Engineering Trust Into Their Company...
You Don't Scale: Why Today's Leaders are Engineering Trust Into Their Company...
Ā 
Git How Does That Work Then
Git How Does That Work ThenGit How Does That Work Then
Git How Does That Work Then
Ā 
Libvirt and bhyve under FreeBSD
Libvirt and bhyve under FreeBSDLibvirt and bhyve under FreeBSD
Libvirt and bhyve under FreeBSD
Ā 
Commit messages - Good practices
Commit messages - Good practicesCommit messages - Good practices
Commit messages - Good practices
Ā 
The Importance of Software Development
The Importance of Software Development The Importance of Software Development
The Importance of Software Development
Ā 
Agile tales of creative customer collaboration
Agile tales of creative customer collaborationAgile tales of creative customer collaboration
Agile tales of creative customer collaboration
Ā 
How to Improve Knowledge Motivation Innovation in Agile Organizations
How to Improve Knowledge Motivation Innovation in Agile OrganizationsHow to Improve Knowledge Motivation Innovation in Agile Organizations
How to Improve Knowledge Motivation Innovation in Agile Organizations
Ā 
Economic Freedom of Indian States - Report 2013-14
Economic Freedom of Indian States - Report 2013-14Economic Freedom of Indian States - Report 2013-14
Economic Freedom of Indian States - Report 2013-14
Ā 
e2e frameworks - czyli kij ma dwa końce
e2e frameworks - czyli kij ma dwa końcee2e frameworks - czyli kij ma dwa końce
e2e frameworks - czyli kij ma dwa końce
Ā 
SPEL (Social, professional, ethical and legal) issues in Usability
SPEL (Social, professional, ethical and legal) issues in UsabilitySPEL (Social, professional, ethical and legal) issues in Usability
SPEL (Social, professional, ethical and legal) issues in Usability
Ā 
Git branching-model
Git branching-modelGit branching-model
Git branching-model
Ā 
Git - Bildiğiniz Gibi Değil
Git - Bildiğiniz Gibi DeğilGit - Bildiğiniz Gibi Değil
Git - Bildiğiniz Gibi Değil
Ā 
Slides chapter 10
Slides chapter 10Slides chapter 10
Slides chapter 10
Ā 

Similar to Professional Software Development, Practices and Ethics

Professional Code of Ethics in Software Engineering
Professional Code of Ethics in Software EngineeringProfessional Code of Ethics in Software Engineering
Professional Code of Ethics in Software EngineeringLemi Orhan Ergin
Ā 
chapt_1_Introduction_computer_science.pptx
chapt_1_Introduction_computer_science.pptxchapt_1_Introduction_computer_science.pptx
chapt_1_Introduction_computer_science.pptx
LeandroCamargo52
Ā 
Journey from Monolith to a Modularized Application - Approach and Key Learnin...
Journey from Monolith to a Modularized Application - Approach and Key Learnin...Journey from Monolith to a Modularized Application - Approach and Key Learnin...
Journey from Monolith to a Modularized Application - Approach and Key Learnin...
mfrancis
Ā 
SBC 2012 - Malware Memory Forensics (Nguyį»…n Chįŗ„n Viį»‡t)
SBC 2012 - Malware Memory Forensics (Nguyį»…n Chįŗ„n Viį»‡t)SBC 2012 - Malware Memory Forensics (Nguyį»…n Chįŗ„n Viį»‡t)
SBC 2012 - Malware Memory Forensics (Nguyį»…n Chįŗ„n Viį»‡t)Security Bootcamp
Ā 
Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013Aron Ahmadia
Ā 
Blockchain solutions leading to better security practices
Blockchain solutions leading to better security practicesBlockchain solutions leading to better security practices
Blockchain solutions leading to better security practices
Eric Larcheveque
Ā 
LonghornPHP - CVE 101.pdf
LonghornPHP - CVE 101.pdfLonghornPHP - CVE 101.pdf
LonghornPHP - CVE 101.pdf
Theresa Mammarella
Ā 
BNYMellon - CVE 101.pdf
BNYMellon - CVE 101.pdfBNYMellon - CVE 101.pdf
BNYMellon - CVE 101.pdf
Theresa Mammarella
Ā 
Layer8 exploitation: Lock'n Load Target
Layer8 exploitation: Lock'n Load TargetLayer8 exploitation: Lock'n Load Target
Layer8 exploitation: Lock'n Load TargetPrathan Phongthiproek
Ā 
"Introduction to Software Engineering: concepts, processes, and methodologies."
"Introduction to Software Engineering: concepts, processes, and methodologies.""Introduction to Software Engineering: concepts, processes, and methodologies."
"Introduction to Software Engineering: concepts, processes, and methodologies."
RISABKUMAR4
Ā 
JacksonvilleJUG_CVE101.pdf
JacksonvilleJUG_CVE101.pdfJacksonvilleJUG_CVE101.pdf
JacksonvilleJUG_CVE101.pdf
Theresa Mammarella
Ā 
Programming The Real World
Programming The Real WorldProgramming The Real World
Programming The Real Worldpauldeng
Ā 
Android Hacking
Android HackingAndroid Hacking
Android Hacking
antitree
Ā 
From reactive toproactive mobile security
From reactive toproactive mobile securityFrom reactive toproactive mobile security
From reactive toproactive mobile security
MobileSoft
Ā 
Rootkit Hunting & Compromise Detection
Rootkit Hunting & Compromise DetectionRootkit Hunting & Compromise Detection
Rootkit Hunting & Compromise Detection
amiable_indian
Ā 
Introduction to Software Engineering Notes
Introduction to Software Engineering NotesIntroduction to Software Engineering Notes
Introduction to Software Engineering Notes
Dr Anuranjan Misra
Ā 
SRS REPORT ON A ANDROID GAME
SRS REPORT ON A ANDROID GAMESRS REPORT ON A ANDROID GAME
SRS REPORT ON A ANDROID GAME
milan tripathi
Ā 
Why AppSec Matters
Why AppSec MattersWhy AppSec Matters
Why AppSec Matters
InnoTech
Ā 
IEEE College of Technology MAES SE 2020 - Coding Fun
IEEE College of Technology MAES SE 2020 - Coding FunIEEE College of Technology MAES SE 2020 - Coding Fun
IEEE College of Technology MAES SE 2020 - Coding Fun
MadelenReyes
Ā 

Similar to Professional Software Development, Practices and Ethics (20)

Professional Code of Ethics in Software Engineering
Professional Code of Ethics in Software EngineeringProfessional Code of Ethics in Software Engineering
Professional Code of Ethics in Software Engineering
Ā 
chapt_1_Introduction_computer_science.pptx
chapt_1_Introduction_computer_science.pptxchapt_1_Introduction_computer_science.pptx
chapt_1_Introduction_computer_science.pptx
Ā 
Journey from Monolith to a Modularized Application - Approach and Key Learnin...
Journey from Monolith to a Modularized Application - Approach and Key Learnin...Journey from Monolith to a Modularized Application - Approach and Key Learnin...
Journey from Monolith to a Modularized Application - Approach and Key Learnin...
Ā 
SBC 2012 - Malware Memory Forensics (Nguyį»…n Chįŗ„n Viį»‡t)
SBC 2012 - Malware Memory Forensics (Nguyį»…n Chįŗ„n Viį»‡t)SBC 2012 - Malware Memory Forensics (Nguyį»…n Chįŗ„n Viį»‡t)
SBC 2012 - Malware Memory Forensics (Nguyį»…n Chįŗ„n Viį»‡t)
Ā 
Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013
Ā 
Blockchain solutions leading to better security practices
Blockchain solutions leading to better security practicesBlockchain solutions leading to better security practices
Blockchain solutions leading to better security practices
Ā 
LonghornPHP - CVE 101.pdf
LonghornPHP - CVE 101.pdfLonghornPHP - CVE 101.pdf
LonghornPHP - CVE 101.pdf
Ā 
BNYMellon - CVE 101.pdf
BNYMellon - CVE 101.pdfBNYMellon - CVE 101.pdf
BNYMellon - CVE 101.pdf
Ā 
Layer8 exploitation: Lock'n Load Target
Layer8 exploitation: Lock'n Load TargetLayer8 exploitation: Lock'n Load Target
Layer8 exploitation: Lock'n Load Target
Ā 
"Introduction to Software Engineering: concepts, processes, and methodologies."
"Introduction to Software Engineering: concepts, processes, and methodologies.""Introduction to Software Engineering: concepts, processes, and methodologies."
"Introduction to Software Engineering: concepts, processes, and methodologies."
Ā 
JacksonvilleJUG_CVE101.pdf
JacksonvilleJUG_CVE101.pdfJacksonvilleJUG_CVE101.pdf
JacksonvilleJUG_CVE101.pdf
Ā 
Programming The Real World
Programming The Real WorldProgramming The Real World
Programming The Real World
Ā 
Android Hacking
Android HackingAndroid Hacking
Android Hacking
Ā 
From reactive toproactive mobile security
From reactive toproactive mobile securityFrom reactive toproactive mobile security
From reactive toproactive mobile security
Ā 
Rootkit Hunting & Compromise Detection
Rootkit Hunting & Compromise DetectionRootkit Hunting & Compromise Detection
Rootkit Hunting & Compromise Detection
Ā 
Introduction to Software Engineering Notes
Introduction to Software Engineering NotesIntroduction to Software Engineering Notes
Introduction to Software Engineering Notes
Ā 
Advanced Malware Analysis
Advanced Malware AnalysisAdvanced Malware Analysis
Advanced Malware Analysis
Ā 
SRS REPORT ON A ANDROID GAME
SRS REPORT ON A ANDROID GAMESRS REPORT ON A ANDROID GAME
SRS REPORT ON A ANDROID GAME
Ā 
Why AppSec Matters
Why AppSec MattersWhy AppSec Matters
Why AppSec Matters
Ā 
IEEE College of Technology MAES SE 2020 - Coding Fun
IEEE College of Technology MAES SE 2020 - Coding FunIEEE College of Technology MAES SE 2020 - Coding Fun
IEEE College of Technology MAES SE 2020 - Coding Fun
Ā 

More from Lemi Orhan Ergin

Clean Software Design: The Practices to Make The Design Simple
Clean Software Design: The Practices to Make The Design SimpleClean Software Design: The Practices to Make The Design Simple
Clean Software Design: The Practices to Make The Design Simple
Lemi Orhan Ergin
Ā 
Unwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingUnwritten Manual for Pair Programming
Unwritten Manual for Pair Programming
Lemi Orhan Ergin
Ā 
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 201810 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
Lemi Orhan Ergin
Ā 
Yeni Nesil Yazılım KĆ¼ltĆ¼rĆ¼: Daha Ä°yi Profesyoneller, Daha Kaliteli Yazılım, D...
Yeni Nesil Yazılım KĆ¼ltĆ¼rĆ¼: Daha Ä°yi Profesyoneller, Daha Kaliteli Yazılım, D...Yeni Nesil Yazılım KĆ¼ltĆ¼rĆ¼: Daha Ä°yi Profesyoneller, Daha Kaliteli Yazılım, D...
Yeni Nesil Yazılım KĆ¼ltĆ¼rĆ¼: Daha Ä°yi Profesyoneller, Daha Kaliteli Yazılım, D...
Lemi Orhan Ergin
Ā 
Irresponsible Disclosure: Short Handbook of an Ethical Developer
Irresponsible Disclosure: Short Handbook of an Ethical DeveloperIrresponsible Disclosure: Short Handbook of an Ethical Developer
Irresponsible Disclosure: Short Handbook of an Ethical Developer
Lemi Orhan Ergin
Ā 
Scrum Events and Artifacts in Action
Scrum Events and Artifacts in ActionScrum Events and Artifacts in Action
Scrum Events and Artifacts in Action
Lemi Orhan Ergin
Ā 
DevOps & Technical Agility: From Theory to Practice
DevOps & Technical Agility: From Theory to PracticeDevOps & Technical Agility: From Theory to Practice
DevOps & Technical Agility: From Theory to Practice
Lemi Orhan Ergin
Ā 
Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017
Lemi Orhan Ergin
Ā 
Git Anti Patterns - XP Days Ukraine 2017
Git Anti Patterns - XP Days Ukraine 2017Git Anti Patterns - XP Days Ukraine 2017
Git Anti Patterns - XP Days Ukraine 2017
Lemi Orhan Ergin
Ā 
Waste Driven Development - Agile Coaching Serbia Meetup
Waste Driven Development - Agile Coaching Serbia MeetupWaste Driven Development - Agile Coaching Serbia Meetup
Waste Driven Development - Agile Coaching Serbia Meetup
Lemi Orhan Ergin
Ā 
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...
Lemi Orhan Ergin
Ā 
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Lemi Orhan Ergin
Ā 
Yazılım Geliştirme KĆ¼ltĆ¼rĆ¼nĆ¼n Kodları: Motivasyon, Teknik MĆ¼kemmellik ve Ä°nov...
Yazılım Geliştirme KĆ¼ltĆ¼rĆ¼nĆ¼n Kodları: Motivasyon, Teknik MĆ¼kemmellik ve Ä°nov...Yazılım Geliştirme KĆ¼ltĆ¼rĆ¼nĆ¼n Kodları: Motivasyon, Teknik MĆ¼kemmellik ve Ä°nov...
Yazılım Geliştirme KĆ¼ltĆ¼rĆ¼nĆ¼n Kodları: Motivasyon, Teknik MĆ¼kemmellik ve Ä°nov...
Lemi Orhan Ergin
Ā 
Git Anti-Patterns: How To Mess Up With Git and Love it Again
Git Anti-Patterns: How To Mess Up With Git and Love it AgainGit Anti-Patterns: How To Mess Up With Git and Love it Again
Git Anti-Patterns: How To Mess Up With Git and Love it Again
Lemi Orhan Ergin
Ā 
Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017
Lemi Orhan Ergin
Ā 
Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design - GDG DevFest Istanbul 2016Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design - GDG DevFest Istanbul 2016
Lemi Orhan Ergin
Ā 
Let The Elephants Leave The Room - Remove Waste in Software Development - Bos...
Let The Elephants Leave The Room - Remove Waste in Software Development - Bos...Let The Elephants Leave The Room - Remove Waste in Software Development - Bos...
Let The Elephants Leave The Room - Remove Waste in Software Development - Bos...
Lemi Orhan Ergin
Ā 
Happy Developer's Guide to the Galaxy: Thinking About Motivation of Developers
Happy Developer's Guide to the Galaxy: Thinking About Motivation of DevelopersHappy Developer's Guide to the Galaxy: Thinking About Motivation of Developers
Happy Developer's Guide to the Galaxy: Thinking About Motivation of Developers
Lemi Orhan Ergin
Ā 
Code Your Agility - Tips for Boosting Technical Agility in Your Organization
Code Your Agility - Tips for Boosting Technical Agility in Your OrganizationCode Your Agility - Tips for Boosting Technical Agility in Your Organization
Code Your Agility - Tips for Boosting Technical Agility in Your Organization
Lemi Orhan Ergin
Ā 
Lost in Motivation in an Agile World
Lost in Motivation in an Agile WorldLost in Motivation in an Agile World
Lost in Motivation in an Agile World
Lemi Orhan Ergin
Ā 

More from Lemi Orhan Ergin (20)

Clean Software Design: The Practices to Make The Design Simple
Clean Software Design: The Practices to Make The Design SimpleClean Software Design: The Practices to Make The Design Simple
Clean Software Design: The Practices to Make The Design Simple
Ā 
Unwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingUnwritten Manual for Pair Programming
Unwritten Manual for Pair Programming
Ā 
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 201810 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
Ā 
Yeni Nesil Yazılım KĆ¼ltĆ¼rĆ¼: Daha Ä°yi Profesyoneller, Daha Kaliteli Yazılım, D...
Yeni Nesil Yazılım KĆ¼ltĆ¼rĆ¼: Daha Ä°yi Profesyoneller, Daha Kaliteli Yazılım, D...Yeni Nesil Yazılım KĆ¼ltĆ¼rĆ¼: Daha Ä°yi Profesyoneller, Daha Kaliteli Yazılım, D...
Yeni Nesil Yazılım KĆ¼ltĆ¼rĆ¼: Daha Ä°yi Profesyoneller, Daha Kaliteli Yazılım, D...
Ā 
Irresponsible Disclosure: Short Handbook of an Ethical Developer
Irresponsible Disclosure: Short Handbook of an Ethical DeveloperIrresponsible Disclosure: Short Handbook of an Ethical Developer
Irresponsible Disclosure: Short Handbook of an Ethical Developer
Ā 
Scrum Events and Artifacts in Action
Scrum Events and Artifacts in ActionScrum Events and Artifacts in Action
Scrum Events and Artifacts in Action
Ā 
DevOps & Technical Agility: From Theory to Practice
DevOps & Technical Agility: From Theory to PracticeDevOps & Technical Agility: From Theory to Practice
DevOps & Technical Agility: From Theory to Practice
Ā 
Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017
Ā 
Git Anti Patterns - XP Days Ukraine 2017
Git Anti Patterns - XP Days Ukraine 2017Git Anti Patterns - XP Days Ukraine 2017
Git Anti Patterns - XP Days Ukraine 2017
Ā 
Waste Driven Development - Agile Coaching Serbia Meetup
Waste Driven Development - Agile Coaching Serbia MeetupWaste Driven Development - Agile Coaching Serbia Meetup
Waste Driven Development - Agile Coaching Serbia Meetup
Ā 
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...
Ā 
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Ā 
Yazılım Geliştirme KĆ¼ltĆ¼rĆ¼nĆ¼n Kodları: Motivasyon, Teknik MĆ¼kemmellik ve Ä°nov...
Yazılım Geliştirme KĆ¼ltĆ¼rĆ¼nĆ¼n Kodları: Motivasyon, Teknik MĆ¼kemmellik ve Ä°nov...Yazılım Geliştirme KĆ¼ltĆ¼rĆ¼nĆ¼n Kodları: Motivasyon, Teknik MĆ¼kemmellik ve Ä°nov...
Yazılım Geliştirme KĆ¼ltĆ¼rĆ¼nĆ¼n Kodları: Motivasyon, Teknik MĆ¼kemmellik ve Ä°nov...
Ā 
Git Anti-Patterns: How To Mess Up With Git and Love it Again
Git Anti-Patterns: How To Mess Up With Git and Love it AgainGit Anti-Patterns: How To Mess Up With Git and Love it Again
Git Anti-Patterns: How To Mess Up With Git and Love it Again
Ā 
Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017
Ā 
Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design - GDG DevFest Istanbul 2016Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design - GDG DevFest Istanbul 2016
Ā 
Let The Elephants Leave The Room - Remove Waste in Software Development - Bos...
Let The Elephants Leave The Room - Remove Waste in Software Development - Bos...Let The Elephants Leave The Room - Remove Waste in Software Development - Bos...
Let The Elephants Leave The Room - Remove Waste in Software Development - Bos...
Ā 
Happy Developer's Guide to the Galaxy: Thinking About Motivation of Developers
Happy Developer's Guide to the Galaxy: Thinking About Motivation of DevelopersHappy Developer's Guide to the Galaxy: Thinking About Motivation of Developers
Happy Developer's Guide to the Galaxy: Thinking About Motivation of Developers
Ā 
Code Your Agility - Tips for Boosting Technical Agility in Your Organization
Code Your Agility - Tips for Boosting Technical Agility in Your OrganizationCode Your Agility - Tips for Boosting Technical Agility in Your Organization
Code Your Agility - Tips for Boosting Technical Agility in Your Organization
Ā 
Lost in Motivation in an Agile World
Lost in Motivation in an Agile WorldLost in Motivation in an Agile World
Lost in Motivation in an Agile World
Ā 

Recently uploaded

GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
Ā 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
Ā 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
Ā 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
Ā 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
Ā 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
Ā 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
Ā 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
Ā 
Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...
UiPathCommunity
Ā 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
Ā 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
Ā 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
Ā 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
Ā 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
Ā 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
Ā 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
Ā 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
Ā 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
Ā 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
Ā 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
Ā 

Recently uploaded (20)

GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Ā 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
Ā 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Ā 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
Ā 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
Ā 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Ā 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Ā 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Ā 
Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...
Ā 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ā 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
Ā 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Ā 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Ā 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
Ā 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Ā 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
Ā 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Ā 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Ā 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
Ā 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Ā 

Professional Software Development, Practices and Ethics

  • 1. PROFESSIONAL SOFTWARE DEVELOPMENT, PRACTICES AND ETHICS 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 root root@10.2.2.2's password: RTF-CONTROL> disable grid nodes 21 - 48 Warning: 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... LEMÄ° ORHAN ERGÄ°N Senior Software Engineer @ Gittigidiyor / eBay
  • 2. LemÄ° Orhan ErgÄ°n https://twitter.com/#!/lemiorhan http://www.linkedin.com/in/lemiorhan @ Marmara University, Faculty of engineering B.Sc. Marmara University, CSE, 1997 ā€“ 2002 M.Sc. Marmara University, CSE, 2002 ā€“ 2005 @ Bilgisayarla yƶnetim ve mĆ¼hendislik Software Engineer @ SONY EUROPE Expert Software Engineer, Technical Coordinator Lead DEVELOper, Scrum Master @ GittiGidiyor, eBay Senior Software Engineer How To Become An Ethical Software Professional @ May 2012
  • 3. 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 How To Become An Ethical Software Professional @ May 2012
  • 4. SOFTWARES ARE BORN TO FAIL How To Become An Ethical Software Professional @ May 2012
  • 5. 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 How To Become An Ethical Software Professional @ May 2012
  • 6. 60 BILLION DOLLARS Annual cost to USA economy of poor quality software Equals to US millitary spending in Iraq and Afghanistan wars How To Become An Ethical Software Professional @ May 2012
  • 7. 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 The basic problem is LOW QUALITY SOFTWARE How To Become An Ethical Software Professional @ May 2012
  • 8. (1982) CIA Gives the Soviets Gas The CIA sabotaged the software so that it would pass Soviet inspection CIA operatives allegedly planted a bug but fail in operation in a Canadian computer system purchased by the Soviets COST: Millions of dollars Significant damage to Soviet economy Control software produced intense pressure in the Trans-Siberian gas pipeline Resulted in the largest man-made non-nuclear explosion in Earthā€™s history How To Become An Ethical Software Professional @ May 2012
  • 9. 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 How To Become An Ethical Software Professional @ May 2012
  • 10. Wall Street Crash (1987) Cost $500,000,000,000 in one day Disaster ā€œBlack Mondayā€, October 19, 1987 Dow Jones lost 22.6% of its value S&P 500 dropped 20.4% Cause Trading programs generated a flood of sell orders, overwhelming the market Systems crashed and left investors effectively blind How To Become An Ethical Software Professional @ May 2012
  • 11. 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 How To Become An Ethical Software Professional @ May 2012
  • 12. 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 stolen Hacked TWICE! in a row Cause: External intrusion by a security breach How To Become An Ethical Software Professional @ May 2012
  • 13. Half day off in Ä°MKB (2012) How To Become An Ethical Software Professional @ May 2012
  • 14. Can you develop bug free code? NO WAY! Like no one is perfect, no code can be bug free! However... code should have high quality standards How To Become An Ethical Software Professional @ May 2012
  • 15. "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) How To Become An Ethical Software Professional @ May 2012
  • 16. Good software is developed by good developers High quality software can only be developed by Professional SOFTWARE DEVELOPERS How To Become An Ethical Software Professional @ May 2012
  • 17. waterfall Agile development software craftsmanshıp practıces to know ethıcs ın software engıneerıng ethıcs ın development AGENDA How To Become An Ethical Software Professional @ May 2012
  • 18. The Horizon of Predictability Uncertainty is part of every innovative and creative development process How To Become An Ethical Software Professional @ May 2012
  • 19. Waterfall Aproach How To Become An Ethical Software Professional @ May 2012
  • 20. 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. How To Become An Ethical Software Professional @ May 2012
  • 21. 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. How To Become An Ethical Software Professional @ May 2012
  • 22. Original Paper of Waterfall Model MANAGING THE DEVELOPMENT OF LARGE SOFTWARE SYSTEMS Dr. Winston W. Royce, 1970 The implementation is risky and invites failure How To Become An Ethical Software Professional @ May 2012
  • 23. SIMPLICITY of Waterfall Model How To Become An Ethical Software Professional @ May 2012
  • 24. 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 The Agile Paradigm emraces change, unpredictability and unforseen complexity as inescapable constants in all product development How To Become An Ethical Software Professional @ May 2012
  • 25. waterfall Agile development software craftsmanshıp practıces to know ethıcs ın software engıneerıng ethıcs ın development AGENDA How To Become An Ethical Software Professional @ May 2012
  • 26. The Agile Manifesto Individuals and interactions OVER PROCESS AND TOOLS WORKING SOFTWARE OVER COMPREHENSIVE DOCUMENTATION CUSTOMER COLLABORATION OVER CONTRACT NEGOTIATION RESPONDING TO CHANGE OVER FOLLOWING A PLAN www.agilemanifesto.org How To Become An Ethical Software Professional @ May 2012
  • 27. 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. How To Become An Ethical Software Professional @ May 2012
  • 28. 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. How To Become An Ethical Software Professional @ May 2012
  • 29. 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 How To Become An Ethical Software Professional @ May 2012
  • 30. Time-boxed Activities Task are broken down into small increments (2-4 weeks), in which the team works through a full development lifecycle Minimizes the overall project risk Planning is easier with frequent release Allows project to adapt to changes quickly How To Become An Ethical Software Professional @ May 2012
  • 31. People ınvolved are replaceable resources Agile Teams are small (7 Ā± 2) EMPOWERED Cross-functional & Self-Organizing How To Become An Ethical Software Professional @ May 2012
  • 32. KAIZEN INSPECT AND ADAPT Continuous ımprovement How To Become An Ethical Software Professional @ May 2012
  • 33. Focus on End-User and Customer Source: Standish Group Study Report We tend to build the wrong things How To Become An Ethical Software Professional @ May 2012
  • 34. Communication Temperature Increasing communication temperature is an important goal of the Agile approach How To Become An Ethical Software Professional @ May 2012
  • 35. Why Agile? How To Become An Ethical Software Professional @ May 2012
  • 36. Agile Software Development Agile is an iterative and adaptive approach to software development, performed in a highly collaborative manner by self-organizing teams, with just enough ceremony that produces high quality software in a cost effective and timely manner, which meets the changing needs of its stakeholders. How To Become An Ethical Software Professional @ May 2012
  • 37. How To Become An Ethical Software Professional @ May 2012
  • 38. How To Become An Ethical Software Professional @ May 2012
  • 39. Control is ultimately illusory ON TOM DEMARKO Software development projects 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. People who show up every day eager to improve their craft will ultimately succeed How To Become An Ethical Software Professional @ May 2012
  • 40. Software Craftsmanship 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. How To Become An Ethical Software Professional @ May 2012
  • 41. Software craftsmanshıp Manifesto Individuals and PROCESS Community of OVER OVER interactions AND TOOLS professıonals WORKING COMPREHENSIVE WELL crafted OVER OVER SOFTWARE DOCUMENTATION software CUSTOMER CONTRACT Productıve OVER OVER COLLABORATION NEGOTIATION partnershıp RESPONDING FOLLOWING Stadıly OVER OVER TO CHANGE A PLAN addıng value manıfesto.softwarecraftsmanshıp.org How To Become An Ethical Software Professional @ May 2012
  • 42. waterfall Agile development software craftsmanshıp practıces to know ethıcs ın software engıneerıng ethıcs ın development AGENDA How To Become An Ethical Software Professional @ May 2012
  • 43. PROGRAMMING LANGUAGE SCALA C PHYTON JAVA C++ RUBY PHP GROOVY clojure How To Become An Ethical Software Professional @ May 2012
  • 44. IDE rubymıne Intellıj ıdea netbeans eclıpse How To Become An Ethical Software Professional @ May 2012
  • 45. VERSION Control Systems Git IBM TeamConcert Bazaar CVS Subversion StartTeam Mercurial How To Become An Ethical Software Professional @ May 2012
  • 46. Branchıng model How To Become An Ethical Software Professional @ May 2012
  • 47. Code Hosting BitBucket Unfuddle In-House GitHub How To Become An Ethical Software Professional @ May 2012
  • 48. Code Buılder maven ıvy ant Gradle How To Become An Ethical Software Professional @ May 2012
  • 49. ā€œThe secret of testing is writing testable codeā€ MiÅ”ko Hevery Agile Coach at Google where he is responsible for coaching Googlers to maintain the high level of automated testing culture http://misko.hevery.com/ How To Become An Ethical Software Professional @ May 2012
  • 50. TEST DRIVEN DEVELOPMENT ADD Test ā€“ run test and faıl ā€“ wrıte code ā€“ run automated test and pass ā€“ refactor code ā€“ repeat How To Become An Ethical Software Professional @ May 2012
  • 51. Unıt INTEGratıon functıonal Junıt testıng cucumber acceptance mockıto powermock regressıon gmock sellenıum uat jmeter Performance MANUAL How To Become An Ethical Software Professional @ May 2012
  • 52. It's not Unless worth you have writing CONTINUOUS tests INTEGRATION How To Become An Ethical Software Professional @ May 2012
  • 53. Continuous ıntegratıon Atlassıan bamboo Cruıse control Jetbraıns teamcıty anthıllpro Hudson/jenkıns How To Become An Ethical Software Professional @ May 2012
  • 54. Enterprise Environments Notification Services (email, messaging) Developer Developer SVC CI Super User Super User Super User Developer DEV TQA STG PRD How To Become An Ethical Software Professional @ May 2012
  • 55. PRACTICES Coding standards and guidelines Database standars and guidelines technology standards Pair programing and code reviews Code coverage monitoring OS-IDE-Tool free coding Test Driven Development (TDD) Multi level testing (Unit, Integration, Functional, Performance, Manual) Enterprice architecture (Development, TestQA, Staging, Production) Clean code & software craftsmanship principles How To Become An Ethical Software Professional @ May 2012
  • 56. waterfall Agile development software craftsmanshıp practıces to know ethıcs ın software engıneerıng ethıcs ın software development AGENDA How To Become An Ethical Software Professional @ May 2012
  • 57. Versıons of Code of ethıcs ACM Code of Ethics and Professional Conduct http://www.acm.org/constitution/code.html Bitish Computer Society Code of Conduct http://www1.bcs.org.uk/DocsRepository/03200/3224/default.htm IEEE-CS/ACM Software Engineering Code of Ethics And Professional Practice http://www.computer.org/tab/seprof/code.htm How To Become An Ethical Software Professional @ May 2012
  • 58. 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. How To Become An Ethical Software Professional @ May 2012
  • 59. Public Interest 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. How To Become An Ethical Software Professional @ May 2012
  • 60. Client and employer 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. How To Become An Ethical Software Professional @ May 2012
  • 61. Software engineers shall ensure that their product 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. How To Become An Ethical Software Professional @ May 2012
  • 62. judgement 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. How To Become An Ethical Software Professional @ May 2012
  • 63. management 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. How To Become An Ethical Software Professional @ May 2012
  • 64. professıon 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. How To Become An Ethical Software Professional @ May 2012
  • 65. colleagues 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. How To Become An Ethical Software Professional @ May 2012
  • 66. Software engineers shall participate in lifelong learning regarding the practice of their profession and shall self 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. How To Become An Ethical Software Professional @ May 2012
  • 67. waterfall Agile development software craftsmanshıp practıces to know ethıcs ın software engıneerıng ethıcs ın software development AGENDA How To Become An Ethical Software Professional @ May 2012
  • 68. Ethıcs In Software development BE THRUSTable, Open & honest don't blame others don't try to be software god share your knowledge Use the fırst rule of cooperatıon: help others fırst! Learn and obey copyright lıcenses (GLP, CC, MPL, etc.) resolve patent conflıcts Be careful on copy & paste Do not steal code Reference to the orıgınal author do not change references to the orıginal author How To Become An Ethical Software Professional @ May 2012
  • 69. Ethıcs In Software development Do not use cracked software Do not snıff network to catch credentıals Do not sell commercial code without permission Do not write backdoors or bugs on purpose Always encrypt passwords and credıt card data Do not sell or share users' data Report any bugs, any issues noticed Do not close a task until it is really done How To Become An Ethical Software Professional @ May 2012
  • 70. Emaıl: lemiorhan@gmaıl.com Twitter: https://twitter.com/#!/lemiorhan Lemi orhan ergin lergin@ebay.com Linkedin: http://www.linkedin.com/in/lemiorhan Blog: http://www.flyingtomoon.com My Office, Barbaros Mah. Ƈiğdem Sk. No: 1/14, 34746 How To Become An Ethical Software Professional @ May 2012 Ataşehir / Ä°stanbul
  • 71. Thank you Very much How To Become An Ethical Software Professional @ May 2012