The document discusses professional software development practices and ethics. It begins by showing code for hacking into a system using SSH and resetting the root password. It then discusses disabling grid nodes in a system. The rest of the document discusses the experience and background of Lemi Orhan Ergin, a senior software engineer, including his education and work history. It also provides an agenda for a presentation on how to become an ethical software developer, covering topics like waterfall development, Agile development, software craftsmanship practices, ethics in software engineering, and ethics in development.
This Presentation contains all the topics in design concept of software engineering. This is much more helpful in designing new product. You have to consider some of the design concepts that are given in the ppt
This Presentation contains all the topics in design concept of software engineering. This is much more helpful in designing new product. You have to consider some of the design concepts that are given in the ppt
Software development process models
Rapid Application Development (RAD) Model
Evolutionary Process Models
Spiral Model
THE FORMAL METHODS MODEL
Specialized Process Models
The Concurrent Development Model
How Do You Build Software? Software Engineering Practices of an Agile DeveloperLemi Orhan Ergin
Ā
These are the slides of my latest talk about agile software engineering practices in Etohum's Software Developers Day. In my talk, I am trying to figure out how to build software by obeying the rules of the nature of software development.
The Engines of Software Development: Testing and Test Driven DevelopmentLemi Orhan Ergin
Ā
This talk in GittiGidiyor/eBay is about the followings:
1) How to write testable code
2) Multi level testing
3) Continuous Integration
4) Test driven development
5) Testing Legacy Software
Software development process models
Rapid Application Development (RAD) Model
Evolutionary Process Models
Spiral Model
THE FORMAL METHODS MODEL
Specialized Process Models
The Concurrent Development Model
How Do You Build Software? Software Engineering Practices of an Agile DeveloperLemi Orhan Ergin
Ā
These are the slides of my latest talk about agile software engineering practices in Etohum's Software Developers Day. In my talk, I am trying to figure out how to build software by obeying the rules of the nature of software development.
The Engines of Software Development: Testing and Test Driven DevelopmentLemi Orhan Ergin
Ā
This talk in GittiGidiyor/eBay is about the followings:
1) How to write testable code
2) Multi level testing
3) Continuous Integration
4) Test driven development
5) Testing Legacy Software
The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...Lemi Orhan Ergin
Ā
This is the slides of my talk in the seminar of IPYD - Istanbul Proje Yƶnetimi DerneÄi / Istanbul Project Management Institute (4th of December, 2012)
Whether you are a designer, a developer, a marketer, a student or anything in between - in today's creative job market every differentiator will count towards getting the job. Gone are the days of being able to talk over your future employer's head, just showing the latest deliverable you are working on, even worse showing nothing at all. Welcome instead to a world where your work is being measured not by what you say it was, but by what it really was.
This workshop was developed for General Assembly in NYC. It is meant to be run in 90 minutes.
Software Houses - Conflict Resolution in TeamsEnablistics.com
Ā
For continuous improvement of startups personnel on work-related and associated topics, Enablistics.com brings on-board, a series of in-house workshops on soft skills. These presentations are part of in-house seminars series being conducted in a few technology startups that have grown in an accelerated fashion.
Any suggestions, comments are most welcome. Please contact us at info at enablistics dot com
You Don't Scale: Why Today's Leaders are Engineering Trust Into Their Company...David Bland
Ā
As we enter this new era of a trust based economy, our organizations and leadership styles are becoming woefully outdated. No longer is it sufficient to scale an organization on the shoulders of a heroic leader who has all of the answers and vision. Managers are inadvertently slowing product development down to a crawl, mostly by replacing trust with process. Soon, not only will your organization be unable to scale, but it won't be able to do anything quickly.
In this webinar David J Bland will explain how today's leaders are engineering for trust and embracing a new, antiheroic leadership style. You'll leave this session with actionable advice on how you can effectively engineer and cultivate trust into your growing organization.
Explain a little about git and how we use it in Mer and Maemo.
Please note that there are notes for these slides (click the 'Notes' link/tab by the 'Comments' tab below)
This presentation discusses using the libvirt virtualization API for controlling bhyve virtual machines under FreeBSD.
Video for this presentation is available at:
https://www.youtube.com/watch?v=LRLV_SZo6Sw
An extremely little set of rules to write good commit messages.
History (how code changes over time) become a very useful tool if associated with good commit messages.
These slides would make developers more aware about how good commit messages could improve their work.
Economic Freedom of Indian States - Report 2013-14Arun Prabhudesai
Ā
Gujarat has been ranked #1 among all Indian states in the just released āThe Economic Freedom of States of Indiaā report ā 2013. The report has analyzed and studied economic development metrics of the 20 biggest states of India.
Szymon Stanisz - e2e frameworks - czyli kij ma dwa koÅce
www.tsh.io
Automatyczne testy end-to-end aplikacji React i Angular. Wprowadzenie w Åwiat testowania przyszÅoÅci. Dlaczego warto automatyzowaÄ i dlaczego kij ma dwa koÅce.ā
KarabĆ¼k Ćniversitesi Programlama GĆ¼nleri 2016'da gerƧekleÅtirdiÄim Git sunumu yansılarıdır.
These are the slides of my talk at Karabuk University Programming Days 2016. The slides are in Turkish.
Journey from Monolith to a Modularized Application - Approach and Key Learnin...mfrancis
Ā
OSGi Community Event 2017 Presentation by Emanoel Xavier (Intel) and Tim Ward (Paremus)
Open Security Controller (OSC) aims to increase the security of workloads running in cloud and data centers by orchestrating security virtual network functions (VNFs). To achieve that, one of the main design goals of OSC is to allow vendor customization while keeping its core code neutral. Additionally, as an open source project, another import design principal for OSC is code habitability. Evolving from a legacy monolithic application to a modularized one through OSGi has enabled OSC to implement these goals.
Bringing together a diverse group of security services and software defined network (SDN) providers was key to building the OSC community. This was possible due to the OSC plugin model using OSGi which allows specific vendors to integrate OSC with their existing solutions with minimum effort. Beyond its plugin model OSC also makes use of OSGi in its core components. This enables better extensibility, testability and overall maintainability of its code base. These aspects are key to OSC as it relates to the new and dynamic areas of SDN and security VNFs in cloud and data center environments and it must be able to easily adapt to the constantly changing requirements and technologies pertaining these fields.
In this talk we will explore the journey for turning OSC into a modularized application using OSGi, highlighting some of the achieved results, key learned lessons and the next steps for this work.
https://www.opensecuritycontroller.org/
From reactive toproactive mobile securityMobileSoft
Ā
"From reactive toproactive mobile security" by Eric Boddenwith with Siegfried Rasthofer, Steven Arzt,Marc Miltenberger and Michael Pradel.
MobileSoft2017, Buenos Aires, Argentina, 2017.
This document contains detail information about the srs of a android game. This document contains all the resources needed to develop a game srs. The format of the document was given by ER Pratik Adhikari Software Engineering Course Lab Instructor and Class Teacher,ACEM,Nepal.
Irresponsible Disclosure: Short Handbook of an Ethical DeveloperLemi Orhan Ergin
Ā
Ethics... It could be the most important and underrated topic in software industry. It is directly related with professionalism, craftsmanship and professional discipline. From time to time we have to jump into the discussions, however we never discuss it deeper.
I have found himself in a huge blast of discussions when he tweeted about a **HUGE** security issue at the most popular operating system. Then I had deep thoughts about ethics and the behaviours of ethical developers.
In this session I talk about the followings:
* I refer to real-life stories of many good practices for professional ethics that are critical in the software development world.
* I mention technical and non-technical aspects of being an ethical developer.
* I deep dive into the arguments against the ethical controversies and the debate over the sharing of a major error in MacOS via Twitter.
DevOps & Technical Agility: From Theory to PracticeLemi Orhan Ergin
Ā
This is the content I presented in meetups for giving brief information about Agile, Devops, Software Craftsmanship, Opertions and Continuous Delivery and their connection with each other.
Yazılım GeliÅtirme KĆ¼ltĆ¼rĆ¼nĆ¼n Kodları: Motivasyon, Teknik MĆ¼kemmellik ve Ä°nov...Lemi Orhan Ergin
Ā
BugĆ¼nĆ¼n acımasız rekabet ortamında hayatta kalabilmek iƧin her Åirketin bir yazılım Åirketi olması gerekir. Bu Ƨok bĆ¼yĆ¼k bir mĆ¼cadele demek. Kaliteli yazlımcılar iÅe alınmalı, projeler doÄru yƶnetilmeli ve proje teslim tarihleri belirlenmelidir. Ancak, gerƧekte Ƨok farklı bir tabloyla karÅılaÅıyoruz. YĆ¼zlerce geliÅtiriciyle iÅ gƶrĆ¼Åmesi yapılıyor ancak bulunamıyor. GeliÅtiricilerden oluÅan bir ekip oluÅturulsa bile, motivasyonel sorunlar, sĆ¼rekli artan teknik problemler, iletiÅim sorunları, inovasyon eksikliÄi ve iÅten ayrılmalar ile ediyoruz. MĆ¼Återiler, kaƧırılan tarihler ve Ƨıktının dĆ¼ÅĆ¼k kalitesi nedeniyle hayal kırıklıÄına uÄruyor.
Her yazılım geliÅtirme ekibi kendi dinamiklerini yaratır. ĆalıÅanların davranıÅlarıyla ekiplerin gizli dinamiklerini toplandıÄımızda Åirketteki yazılım geliÅtirme kĆ¼ltĆ¼rĆ¼nĆ¼ oluÅturuyoruz. Bu, bir yazılım geliÅtirme takımının ne kadar baÅarılı olabileceÄini tanımlayan, en ƶnemli faktƶrlerden biridir.
Bu oturumda, motivasyon, teknik mĆ¼kemmellik, iÅbirliÄi, yardımlaÅma, yenilikƧilik ve baÅarı saÄlayan bir yazılım geliÅtirme kĆ¼ltĆ¼rĆ¼nĆ¼n nasıl kurulacaÄından bahsedeceÄim. Yazılım dĆ¼nyasına girmiÅ ve ilgilenen herkes katılabilir.
Bu sunum Dinamikler 2017 Kongresinde kullanılmıÅtır.
Git Anti-Patterns: How To Mess Up With Git and Love it AgainLemi Orhan Ergin
Ā
Git is one of the most powerful tool in developers' toolbox. If you use it correctly, it dramatically increases productivity of developers and eliminates the waste products continuously. Developers cultivate a development culture on top Git most of the time.
It's powerful but its power is untamed. Many teams fall into several traps of misusing commands and therefore feel uncomfortable while using Git. We mess up Git history, the codebase and the whole preferred branching strategy in seconds. We use branches, merge/rebase strategies, creating commits in wrong ways. Even we never take committing paradigms into account while using Git.
As a software craftsman, I've been using Git for years and I've already educated Git to hundreds of developers in all levels. I'm so lucky; I had a chance to experience huge amount of anti-patterns in time. In this talk, I will talk about what those anti-patterns are and what should we do in order not to fall into them.
TDD is the elengant way of designing software. People scares from it so much, because software design is hard and it requires discipline. In this talk, I tried to describe what TDD is from software design perspective.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Ā
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Ā
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
Ā
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. Whatās changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Ā
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
Ā
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Ā
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Ā
Are you looking to streamline your workflows and boost your projectsā efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, youāre in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part āEssentials of Automationā series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Hereās what youāll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
Weāll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Donāt miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
Ā
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more āmechanicalā approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Ā
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Ā
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
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
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
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
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
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
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
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