Top Banner
LEMİ ORHAN ERGİN LEMİ ORHAN ERGİN PROFESSIONAL SOFTWARE DEVELOPMENT, PRACTICES AND ETHICS Senior Software Engineer @ Senior Software Engineer @ Gittigidiyor / eBay Gittigidiyor / eBay 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 [email protected]'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...
71

Professional Software Development, Practices and Ethics

Oct 19, 2014

Download

Technology

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Professional Software Development, Practices and Ethics

L E M İ O R H A N E R G İ NL E M İ O R H A N E R G İ N

PROFESSIONAL SOFTWARE DEVELOPMENT, PRACTICES AND ETHICS

S e n i o r S o f t w a r e E n g i n e e r @ S e n i o r S o f t w a r e E n g i n e e r @ G i t t i g i d i y o r / e B a yG i t t i g i d i y o r / e B a y

nmap run completed -- 1 IP address (1 host up) scanneds% sshnuke 10.2.2.2 -rootpw-"Z1ON0101"Connecting to 10.2.2.2:ssh ... successful.Attempting to exploit SSHv1 CRC32 ... successful.Reseting root password to "Z1ON0101".System open: Access Level (9)% ssh 10.2.2.2 -l [email protected]'s password:

RTF-CONTROL> disable grid nodes 21 - 48Warning: Disabling nodes 21-48 will disconnect sector 11 (27 nodes)

ARE YOU SURE ? (y/n)

Grid Node 21 offline...Grid Node 22 offline...Grid Node 23 offline...Grid Node 24 offline...Grid Node 25 offline...Grid Node 26 offline...Grid Node 27 offline...Grid Node 28 offline...Grid Node 29 offline...Grid Node 30 offline...Grid Node 31 offline...Grid Node 32 offline...Grid Node 33 offline...Grid Node 34 offline...Grid Node 35 offline...Grid Node 36 offline...Grid Node 37 offline...Grid Node 38 offline...

Page 2: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Expert Software Engineer, Technical CoordinatorLead DEVELOper, Scrum Master

Senior Software Engineer

https://twitter.com/#!/lemiorhanhttp://www.linkedin.com/in/lemiorhan

B.Sc. Marmara University, CSE, 1997 – 2002M.Sc. Marmara University, CSE, 2002 – 2005

Lemİ Orhan Ergİn

@ GittiGidiyor, eBay

@ SONY EUROPE

@ Bilgisayarla yönetim ve mühendislik

@ Marmara University, Faculty of engineering

Software Engineer

Page 3: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

AUTHORS EXPERIENCE● Developing software since 2002● Technical lead on development teams since 2005● Certified Scrum Master since 2009 (trained by Jim Coplien)● Played scrum master role for more than 1 year● Participated Scrum teams for more than 50 sprints

Page 4: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

SOFTWARES ARE BORN TO FAIL

Page 5: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

PROJECTS ARE FAILING!SATISH GROUP INVESTIGATES

If building engineers built buildings with the same care as software engineers build systems, the first woodpecker to come along would be the end of civilization as we know it.

“Top 10 Reasons Why Systems Projects Fail”Dr. Paul Dorsey

Page 6: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

60BIL LIO N D OL LAR S

Equals to US millitary spending in Iraq and Afghanistan wars

Annual cost to USA economy of poor quality software

Page 7: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

The basic problem is

LOW QUALITY SOFTWARE

WHAT'S THE PROBLEM WITH SOFTWARE?

● Lack of User Involvement● Lack of Transparency● Long or Unrealistic Time Scales● Poor or No Requirements● Bad Scope Management● Poor Development Quality● Poor Testing & Quality Assurance● Inaduequate Development Methodology● Poor Technical Knowledge and Experience 7th November 1940. Tacoma Narrows suspension bridge,

in Puget Sound, Washington, USA http://www.answers.com/topic/galloping-gertie-large-image#ixzz1q2uRmnLK

Page 8: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

CIA Gives the Soviets Gas

COST: Millions of dollarsSignificant damage to Soviet economy

(1982)

Control software produced intense pressure in the Trans-Siberian gas pipelineResulted in the largest man-made non-nuclear explosion in Earth’s history

CIA operatives allegedly planted a bug in a Canadian computer system purchased by the Soviets

The CIA sabotaged the software so that it would pass Soviet inspection

but fail in operation

Page 9: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

World War III… Almost (1983)

Cost

● Almost all of humanity

Disaster

● Soviet early warning system indicated the U.S. had launched 5 ICBMs

● The human operator thankfully interpreted this as an error

Cause

● A bug in the software failed to filter out false missile detections caused by sunlight reflecting off cloud-tops

Page 10: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Wall Street Crash (1987)

Cost

$500,000,000,000 in one day

Disaster

“Black Monday”, October 19, 1987Dow Jones lost 22.6% of its value S&P 500 dropped 20.4%

Cause

Trading programs generated a flood of sell orders, overwhelming the marketSystems crashed and left investors effectively blind

Page 11: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Mars Polar Lander… err, Crasher (1998)

Cost : $125,000,000

Disaster : After a 286-day journey from Earth, the Mars Climate Orbiter fell too far into Mars’s atmosphere, causing it to crash

Cause : The software that controlled the Orbiter thrusters used imperial units (pounds of force), rather than metric units (Newtons) as specified by NASA

Page 12: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Sony lost 70 million user's details (2011)

Cost :Reputation & Approx. 3.2 billion of dollars LOST, Re-branding PSN to SEN

Disaster:PlayStation Network hacked and 70 million credentials, billing and user information may have been stolenHacked TWICE! in a row

Cause:External intrusion by a security breach

Page 13: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Half day off in İMKB (2012)

Page 14: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Can you develop bug free code? NO WAY!Like no one is perfect, no code can be bug free!

code should have high quality standardsHowever...

Page 15: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

"The worst outcome is not failure — it’s mediocrity. Failure lets you move on, mediocrity stalls you and keeps you from

reaching your potential. Pursue something so important that even if you fail, the world is better off with you having tried."

Drew Houston (founder/CEO of Dropbox)

Page 16: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Good software is developed by good developers

High quality software can only be developed by

Professional SOFTWAREDEVELOPERS

Page 17: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

waterfallAgile developmentsoftware craftsmanshıppractıces to knowethıcs ın software engıneerıngethıcs ın development

AGENDA

Page 18: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

The Horizon of Predictability

Uncertainty is part of every innovative and creative development process

Page 19: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

WaterfallAproach

Page 20: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Features of a Waterfall Model

Easy to follow For any size project Every stage has to be done separately at

the right time so you cannot jump stages. Documentation is produced at every

stage allowing people to understand what has been done.

Testing is done at every stage.

Page 21: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Realities of Waterfall Model If requirements may change, the Waterfall model cannot

work. It is impossible to make one stage of the projects life cycle

perfect. Difficult to estimate time and cost for each stage of the

development process. Constant testing of the design is needed.

Page 22: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Original Paper of Waterfall Model

MANAGING THE DEVELOPMENT OF LARGE SOFTWARE SYSTEMS

Dr. Winston W. Royce, 1970

The implementation is risky and invites failure

Page 23: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

SIMPLICITY of Waterfall Model

Page 24: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

The Agile Paradigm emraces change, unpredictability and unforseen complexity as inescapable constants in all product development

Traditional

Customer knows what he wants Engineer knows how to build it Nothing changes along the way

Agile

Customer discovers what he wants Engineer discovers how to build it Things change along the way

Page 25: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

waterfallAgile developmentsoftware craftsmanshıppractıces to knowethıcs ın software engıneerıngethıcs ın development

AGENDA

Page 26: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

The Agile Manifesto

www.agilemanifesto.org

Individuals and interactions PROCESS AND TOOLS

WORKING SOFTWARE COMPREHENSIVE DOCUMENTATION

CUSTOMER COLLABORATION CONTRACT NEGOTIATION

RESPONDING TO CHANGE FOLLOWING A PLAN

OVER

OVER

OVER

OVER

Page 27: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Agile Principles - I

● Our highest priority is to satisfy the customer through early and continuous delivery of valuable software

● Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

● Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

● Business people and developers must work together daily throughout the project.

● Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

● The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

Page 28: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Agile Principles - II

● Working software is the primary measure of progress.

● Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

● Continuous attention to technical excellence and good design enhances agility.

● Simplicity -the art of maximizing the amount of work not done- is essential.

● The best architectures, requirements, and designs emerge from self-organizing teams.

● At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Page 29: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

The Agile Practices Family

● Extreme Programming (XP)

● Crystal

● Dynamic Systems Development Method (DSDM)

● Test Driven Development (TDD)

● Feature Driven Development (FDD)

● Essential Unified Process

● Scrum

● Kanban

● Lean

Page 30: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Time-boxed Activities

Task are broken down intosmall increments (2-4 weeks),

in which the team works througha full development lifecycle

Minimizes the overall project riskPlanning is easier with frequent release

Allows project to adapt to changes quickly

Page 31: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

People ınvolved are People ınvolved are replaceable resourcesreplaceable resources

Agile Teams are small (7 ± 2)Agile Teams are small (7 ± 2)EMPOWEREDEMPOWERED

Cross-functional & Self-OrganizingCross-functional & Self-Organizing

Page 32: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

KAIZENINSPECT AND ADAPTContinuous ımprovement

Page 33: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Focus on End-User and Customer

We tend to build the wrong things

Source: Standish Group Study Report

Page 34: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Communication Temperature

Increasing communication temperatureis an important goal of the Agile approach

Page 35: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Why Agile?

Page 36: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Agile Software Development

Agile is an iterative and adaptive approach to software development,

performed in a highly collaborative mannerby self-organizing teams,

with just enough ceremony that produces high quality softwarein a cost effective and timely manner,

which meets the changing needs of its stakeholders.

Page 37: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Page 38: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Page 39: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

If you want to move your project forward, the only reliable way to do that is to cultivate a deep sense of software craftsmanship and professionalism around it.

Control is ultimately illusory ON Software development projects

People who show up every day eager to improve their craft will ultimately succeed

TOM

DEM

ARKO

Page 40: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

IT is an DISCIPLINE in software development that emphasizes the coding skills of the software developers themselves. It is a response by software developers to the perceived ills of the mainstream software industry, including the prioritization of financial concerns over code quality.

Software Craftsmanship

Page 41: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Software craftsmanshıp Manifesto

manıfesto.softwarecraftsmanshıp.org

Individuals andinteractions

Community ofprofessıonals

WORKINGSOFTWARE

WELL craftedsoftware

CUSTOMERCOLLABORATION

Productıvepartnershıp

RESPONDINGTO CHANGE

Stadılyaddıng value

OVER

OVER

OVER

OVER

PROCESSAND TOOLS

COMPREHENSIVEDOCUMENTATION

CONTRACTNEGOTIATION

FOLLOWINGA PLAN

OVER

OVER

OVER

OVER

Page 42: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

waterfallAgile developmentsoftware craftsmanshıppractıces to knowethıcs ın software engıneerıngethıcs ın development

AGENDA

Page 43: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

PROGRAMMING LANGUAGE

SCALA

PHP

RUBY

JAVAGROOVY

clojur e

PHY TO N

C

C++

Page 44: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

IDE

Intellıj ıdea

eclıpsenetbeans

rubymıne

Page 45: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

VERSION Control Systems

CVS

StartTeam

Subversion

GitMercurial

IBM Te am

Co ncert Baz aa r

Page 46: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Branchıng model

Page 47: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Code Hosting

BitBucket

GitHubUn

fudd

le

In-House

Page 48: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Code Buılder

Gradlemaven ıvy

ant

Page 49: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Agile Coach at Googlewhere he is responsible for coaching Googlers

to maintain the high level of automated testing culture

http://misko.hevery.com/

“The secret of testing is writing

testable code”Miško Hevery

Page 50: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

TEST DRIVEN DEVELOPMENTADD Test – run test and faıl – wrıte code – run automated test and pass – refactor code – repeat

Page 51: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

tes tı ngUnıt INTEGratıon functıonal acceptance regressıon uat Performance

Junıtcucumber

mockıtopowermock

gmocksellenıum

jmeter

MANUAL

Page 52: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

It's not worth

writing tests

Unlessyou have

CONTINUOUS INTEGRATION

Page 53: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Continuous ıntegratıon

Jetbraıns teamcıty

Atlassıan bamboo

Hudson/jenkınsanthı llpro

Cruı se c ont rol

Page 54: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Enterprise Environments

Developer

Developer

Developer

SVC CI

Notification Services (email, messaging)

DEV TQA STG PRD

Super User Super User Super User

Page 55: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

PRAC

TICE

S Coding standards and guidelinesDatabase standars and guidelinestechnology standardsPair programing and code reviewsCode coverage monitoringOS-IDE-Tool free codingTest Driven Development (TDD)Multi level testing (Unit, Integration, Functional, Performance, Manual)

Enterprice architecture (Development, TestQA, Staging, Production)

Clean code & software craftsmanship principles

Page 56: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

waterfallAgile developmentsoftware craftsmanshıppractıces to knowethıcs ın software engıneerıngethıcs ın software development

AGENDA

Page 57: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

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

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

IEEE-CS/ACM Software Engineering Code of EthicsAnd Professional Practicehttp://www.computer.org/tab/seprof/code.htm

Versıons of Code of ethıcs

Page 58: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Joint IEEE-CS/ACM Code of Ethics and Professional Practice

● Built on 8 principles Public Interest Client and Employer Product Judgement Management Profession Colleagues Self

● The principle of Public Interest is central to the code.

Page 59: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Publ

ic In

tere

st

Software engineers shall act consistently with the public interest.

Approve software only if they have a well-founded belief that it is safe, meets standards, passes tests and does not diminsh quality of life, privacy or harm the environment.

Disclose any actual or potential danger to the user. Be fair and avoid deception in all statements concerning

software.

Page 60: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Software engineers shall act in a manner that is in the best interests of their client and employer, consistent with the public interest.

Be honest about any limitation of their experience and education.

Keep private any confidential information consistent with the public interest and the law.

Not knowingly use software that is obtained or retained either illegally or unethically.

Clie

nt a

nd em

ploy

er

Page 61: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.

Strive for high quality, acceptable cost, and a reasonable schedule, ensuring significant tradeoffs are clear.

Ensure adequate testing, debugging, and review of software and related documents on which they work.

Treat all forms of software maintenance with the same professionalism as new development.

prod

uct

Page 62: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Software engineers shall maintain integrity and independence in their professional judgment.

Not engage in deceptive financial practices. Disclose to all concerned parties those conflicts

of interest that cannot reasonably be avoided or escaped.

judg

emen

t

Page 63: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.

Ensure that software engineers are informed of standards before being held to them.

Offer fair and just remuneration. Not punish anyone for expressing ethical concerns

about a project. man

agem

ent

Page 64: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.

Promote public knowledge of software engineering. Be accurate in stating the characteristics of software on

which they work. Take responsibility for detecting, correcting, and

reporting errors in software and associated documents on which they work. pr

ofes

sıon

Page 65: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Software engineers shall be fair to and supportive of their colleagues.

Credit fully the work of others and refrain from taking undue credit.

Give a fair hearing to the opinions, concerns, or complaints of a colleague.

In situations outside of their own areas of competence, call upon the opinions of other professionals who have competence in that area. co

llea

gues

Page 66: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

Further their knowledge Improve their ability to create safe, reliable, and useful

quality software Improve their ability to produce accurate, informative, and

well-written documentation.

self

Page 67: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

waterfallAgile developmentsoftware craftsmanshıppractıces to knowethıcs ın software engıneerıngethıcs ın software development

AGENDA

Page 68: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Ethı

cs In

Soft

war

e dev

elop

men

tBE THRUSTable, Open & honestdon't blame othersdon't try to be software godshare your knowledgeUse the fırst rule of cooperatıon: help others fırst!Learn and obey copyright lıcenses (GLP, CC, MPL, etc.)resolve patent conflıctsBe careful on copy & pasteDo not steal code Reference to the orıgınal authordo not change references to the orıginal author

Page 69: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Ethı

cs In

Soft

war

e dev

elop

men

tDo not use cracked softwareDo not snıff network to catch credentıalsDo not sell commercial code without permissionDo not write backdoors or bugs on purposeAlways encrypt passwords and credıt card dataDo not sell or share users' dataReport any bugs, any issues noticedDo not close a task until it is really done

Page 70: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Emaıl:lemiorhan@gmaıl.com

Twitter:https://twitter.com/#!/lemiorhan

Linkedin:http://www.linkedin.com/in/lemiorhan

Blog:http://www.flyingtomoon.com

Lemi orhan [email protected]

My Office, Barbaros Mah. Çiğdem Sk. No: 1/14, 34746

Ataşehir / İstanbul

Page 71: Professional Software Development, Practices and Ethics

How To Become An Ethical Software Professional @ May 2012

Thank youVery much