SlideShare ist ein Scribd-Unternehmen logo
1 von 71
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Incremental model
Incremental modelIncremental model
Incremental modelHpibmx
 
Software engineering layers
Software engineering layersSoftware engineering layers
Software engineering layersSelf-employed
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality AttributesHayim Makabee
 
Requirement specification (SRS)
Requirement specification (SRS)Requirement specification (SRS)
Requirement specification (SRS)kunj desai
 
Advanced topics in software engineering
Advanced topics in software engineeringAdvanced topics in software engineering
Advanced topics in software engineeringRupesh Vaishnav
 
Computer architectural design methodology
Computer architectural design methodologyComputer architectural design methodology
Computer architectural design methodologyASHIK MAHMUD
 
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.pptJAYAPRIYAR7
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxKarthigaiSelviS3
 
Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Sudarshan Dhondaley
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural designdevika g
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressmanRohitGoyal183
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software designMr. Swapnil G. Thaware
 
Phased life cycle model
Phased life cycle modelPhased life cycle model
Phased life cycle modelStephennancy
 

Was ist angesagt? (20)

Incremental model
Incremental modelIncremental model
Incremental model
 
Software engineering layers
Software engineering layersSoftware engineering layers
Software engineering layers
 
Sqa plan
Sqa planSqa plan
Sqa plan
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality Attributes
 
Requirement specification (SRS)
Requirement specification (SRS)Requirement specification (SRS)
Requirement specification (SRS)
 
Advanced topics in software engineering
Advanced topics in software engineeringAdvanced topics in software engineering
Advanced topics in software engineering
 
Computer architectural design methodology
Computer architectural design methodologyComputer architectural design methodology
Computer architectural design methodology
 
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
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Computer aided software engineering
Computer aided software engineeringComputer aided software engineering
Computer aided software engineering
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2
 
Software design
Software designSoftware design
Software design
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
 
Software maintenance
Software maintenance Software maintenance
Software maintenance
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Phased life cycle model
Phased life cycle modelPhased life cycle model
Phased life cycle model
 

Andere mochten auch

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 DevelopmentLemi 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 workshopAbby 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 TeamsEnablistics.com
 
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 ThenDavid Greaves
 
Libvirt and bhyve under FreeBSD
Libvirt and bhyve under FreeBSDLibvirt and bhyve under FreeBSD
Libvirt and bhyve under FreeBSDCraig Rodrigues
 
Commit messages - Good practices
Commit messages - Good practicesCommit messages - Good practices
Commit messages - Good practicesTarin 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 collaborationClaudio 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 OrganizationsLemi 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-14Arun 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ńceThe 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 UsabilityAndres Baravalle
 
Git branching-model
Git branching-modelGit branching-model
Git branching-modelAaron Huang
 
Git - Bildiğiniz Gibi Değil
Git - Bildiğiniz Gibi DeğilGit - Bildiğiniz Gibi Değil
Git - Bildiğiniz Gibi DeğilLemi Orhan Ergin
 

Andere mochten auch (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
 

Ähnlich wie 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.pptxLeandroCamargo52
 
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 practicesEric Larcheveque
 
Layer8 exploitation: Lock'n Load Target
Layer8 exploitation: Lock'n Load TargetLayer8 exploitation: Lock'n Load Target
Layer8 exploitation: Lock'n Load TargetPrathan Phongthiproek
 
Programming The Real World
Programming The Real WorldProgramming The Real World
Programming The Real Worldpauldeng
 
Android Hacking
Android HackingAndroid Hacking
Android Hackingantitree
 
From reactive toproactive mobile security
From reactive toproactive mobile securityFrom reactive toproactive mobile security
From reactive toproactive mobile securityMobileSoft
 
Rootkit Hunting & Compromise Detection
Rootkit Hunting & Compromise DetectionRootkit Hunting & Compromise Detection
Rootkit Hunting & Compromise Detectionamiable_indian
 
SRS REPORT ON A ANDROID GAME
SRS REPORT ON A ANDROID GAMESRS REPORT ON A ANDROID GAME
SRS REPORT ON A ANDROID GAMEmilan tripathi
 
Why AppSec Matters
Why AppSec MattersWhy AppSec Matters
Why AppSec MattersInnoTech
 
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 FunMadelenReyes
 
Securing your Cloud Environment v2
Securing your Cloud Environment v2Securing your Cloud Environment v2
Securing your Cloud Environment v2ShapeBlue
 
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...Marcel Bruch
 

Ähnlich wie 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
 
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
 
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
 
Securing your Cloud Environment v2
Securing your Cloud Environment v2Securing your Cloud Environment v2
Securing your Cloud Environment v2
 
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
 

Mehr von 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 SimpleLemi Orhan Ergin
 
Unwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingUnwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingLemi 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 2018Lemi 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 DeveloperLemi Orhan Ergin
 
Scrum Events and Artifacts in Action
Scrum Events and Artifacts in ActionScrum Events and Artifacts in Action
Scrum Events and Artifacts in ActionLemi 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 PracticeLemi 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 2017Lemi 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 2017Lemi 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 MeetupLemi 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 2017Lemi 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 AgainLemi 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 2017Lemi 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 2016Lemi 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 DevelopersLemi 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 OrganizationLemi 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 WorldLemi Orhan Ergin
 

Mehr von 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
 

Kürzlich hochgeladen

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 

Kürzlich hochgeladen (20)

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 

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