• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Professional Software Development, Practices and Ethics
 

Professional Software Development, Practices and Ethics

on

  • 5,484 views

This is the slides of my talk in Marmara University Faculty of Engineering to undergraduate students. It is mainly about professionalism in software development, agile, scrum, test driven development, ...

This is the slides of my talk in Marmara University Faculty of Engineering to undergraduate students. It is mainly about professionalism in software development, agile, scrum, test driven development, practices and ethics

Statistics

Views

Total Views
5,484
Views on SlideShare
3,612
Embed Views
1,872

Actions

Likes
7
Downloads
13
Comments
0

8 Embeds 1,872

http://flyingtomoon.com 1842
http://local.syntel.com 8
http://flavors.me 7
http://www.linkedin.com 7
http://prlog.ru 3
http://131.253.14.66 2
http://www.365dailyjournal.com 2
http://translate.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Professional Software Development, Practices and Ethics Professional Software Development, Practices and Ethics Presentation Transcript

    • 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.2s 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 engineeringB.Sc. Marmara University, CSE, 1997 – 2002M.Sc. Marmara University, CSE, 2002 – 2005 @ Bilgisayarla yönetim ve mühendislikSoftware Engineer @ SONY EUROPEExpert Software Engineer, Technical CoordinatorLead DEVELOper, Scrum Master @ GittiGidiyor, eBaySenior 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 softwareEquals to US millitary spending in Iraq and Afghanistan wars How To Become An Ethical Software Professional @ May 2012
    • WHATS 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 inspectionCIA operatives allegedly planted a bug but fail in operationin a Canadian computer systempurchased 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 humanityDisaster ● Soviet early warning system indicated the U.S. had launched 5 ICBMs ● The human operator thankfully interpreted this as an errorCause ● 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 dayDisaster“Black Monday”, October 19, 1987Dow Jones lost 22.6% of its valueS&P 500 dropped 20.4%CauseTrading programs generated a flood of sellorders, overwhelming the marketSystems crashed and left investorseffectively blind How To Become An Ethical Software Professional @ May 2012
    • Mars Polar Lander… err, Crasher (1998)Cost : $125,000,000Disaster : After a 286-day journey from Earth, the Mars Climate Orbiter fell too farinto Mars’s atmosphere, causing it to crashCause : The software that controlled the Orbiter thrusters used imperial units (poundsof force), rather than metric units (Newtons) as specified by NASA How To Become An Ethical Software Professional @ May 2012
    • Sony lost 70 million users details (2011)Cost :Reputation & Approx. 3.2 billion of dollars LOST,Re-branding PSN to SENDisaster:PlayStation Network hacked and 70 millioncredentials, billing and user information may havebeen stolenHacked TWICE! in a rowCause: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 fromreaching 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 softwarecan only be developed byProfessionalSOFTWAREDEVELOPERS How To Become An Ethical Software Professional @ May 2012
    • waterfallAgile developmentsoftware craftsmanshıppractıces to knowethıcs ın software engıneerıngethıcs ın development AGENDA How To Become An Ethical Software Professional @ May 2012
    • The Horizon of PredictabilityUncertainty is part of every innovative and creative development process How To Become An Ethical Software Professional @ May 2012
    • Waterfall AproachHow 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
    • TraditionalCustomer knows what he wantsEngineer knows how to build itNothing changes along the wayAgileCustomer discovers what he wantsEngineer discovers how to build itThings 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
    • waterfallAgile developmentsoftware craftsmanshıppractıces to knowethıcs ın software engıneerıngethıcs ın development AGENDA How To Become An Ethical Software Professional @ May 2012
    • The Agile ManifestoIndividuals 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 customers 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 releaseAllows 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) EMPOWEREDCross-functional & Self-Organizing How To Become An Ethical Software Professional @ May 2012
    • KAIZEN INSPECT AND ADAPT Continuous ımprovementHow To Become An Ethical Software Professional @ May 2012
    • Focus on End-User and CustomerSource: Standish Group Study Report We tend to build the wrong things How To Become An Ethical Software Professional @ May 2012
    • Communication Temperature Increasing communication temperatureis 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 tocultivate 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 CraftsmanshipIT is an DISCIPLINE in software development that emphasizes thecoding skills of the software developers themselves. It is aresponse by software developers to the perceived ills of themainstream software industry, including the prioritization offinancial concerns over code quality. How To Become An Ethical Software Professional @ May 2012
    • Software craftsmanshıp ManifestoIndividuals 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 OVERCOLLABORATION 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
    • waterfallAgile developmentsoftware craftsmanshıppractıces to knowethıcs ın software engıneerıngethıcs ın development AGENDA How To Become An Ethical Software Professional @ May 2012
    • PROGRAMMING LANGUAGE SCALA C PHYTON JAVAC++ RUBY PHP GROOVY clojure How To Become An Ethical Software Professional @ May 2012
    • IDE rubymıneIntellıj ıdea netbeans eclıpse How To Become An Ethical Software Professional @ May 2012
    • VERSION Control SystemsGit IBM TeamConcert Bazaar CVS Subversion StartTeam Mercurial How To Become An Ethical Software Professional @ May 2012
    • Branchıng modelHow To Become An Ethical Software Professional @ May 2012
    • Code Hosting BitBucket Unfuddle In-HouseGitHub How To Become An Ethical Software Professional @ May 2012
    • Code Buıldermaven ıvy ant Gradle How To Become An Ethical Software Professional @ May 2012
    • “The secret oftesting 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 DEVELOPMENTADD 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ıtINTEGratıonfunctıonal Junıt testıng cucumberacceptance mockıto powermockregressıon gmock sellenıumuat jmeterPerformanceMANUAL How To Become An Ethical Software Professional @ May 2012
    • Its not Unless worth you havewriting 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ıllproHudson/jenkıns How To Become An Ethical Software Professional @ May 2012
    • Enterprise Environments Notification Services (email, messaging)DeveloperDeveloper SVC CI Super User Super User Super UserDeveloper 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
    • waterfallAgile developmentsoftware craftsmanshıppractıces to knowethıcs ın software engıneerıngethıcs ın software development AGENDA How To Become An Ethical Software Professional @ May 2012
    • Versıons of Code of ethıcsACM Code of Ethics and Professional Conducthttp://www.acm.org/constitution/code.htmlBitish Computer Society Code of Conducthttp://www1.bcs.org.uk/DocsRepository/03200/3224/default.htmIEEE-CS/ACM Software Engineering Code of EthicsAnd Professional Practicehttp://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 InterestSoftware engineers shall act consistently with thepublic 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 employerSoftware engineers shall act in a manner that is inthe 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 productproducts and related modifications meet thehighest 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
    • judgementSoftware engineers shall maintain integrity andindependence 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
    • managementSoftware engineering managers and leaders shallsubscribe to and promote an ethical approach tothe management of software development andmaintenance.  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ıonSoftware engineers shall advance the integrityand reputation of the profession consistent withthe 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
    • colleaguesSoftware engineers shall be fair to andsupportive 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 learningregarding the practice of their profession and shall selfpromote an ethical approach to the practice of theprofession.  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
    • waterfallAgile developmentsoftware craftsmanshıppractıces to knowethıcs ın software engıneerıngethıcs ın software development AGENDA How To Become An Ethical Software Professional @ May 2012
    • Ethıcs In Software development BE THRUSTable, Open & honest dont blame others dont 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.comTwitter:https://twitter.com/#!/lemiorhan Lemi orhan ergin lergin@ebay.comLinkedin:http://www.linkedin.com/in/lemiorhanBlog: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