SlideShare uma empresa Scribd logo
1 de 40
Short Introduction to Software
engineering for bioinformatics
Joe Miyamoto
Progress of software development practice
Waterfall Agile DevOps
There is no silver bullet for software engineering and every each has own advantage
But in terms of bioinformatics, there is very little chance for adopting Waterfall.
Evolution rather than progress?
Waterfall Agile DevOps
In more precise…
Non-spiralSpiral Scrum
eXtreme
Programming(XP)
Waterfall Agile DevOps
Waterfall Agile DevOps
Waterfull stlyle development
• Very old and popular style of product
development
Do not go back to previous section
It has to be clear about what we really want to make
Suited for Large-scale development
“Few A-Class architect and the mass of C-class programmer”Ref: http://fireside.gamejolt.com/post/the-game-creation-process-part-2-designing-the-idea-viq5rk2t
Waterfull style development
Advantage
•Easy to manage the progress(if we found no contingency)
Disadvantage
•Hard to manage the progress
(if we do found contingency)
waterfull(spiral)
• Iteration of waterfull
Advantage
• Task becomes clear by each iteration
Disadvantage
• Time consuming
• Hard to determine how much we have to
elaborate on first iteration
ref: http://www.qmetry.com/spiral.html
Waterfall Agile DevOps
Agile
• Antithesis for waterfull
• Not Technique, it’s Phiosophy
• 1 iteration is 1~4 week,and 1 feature for each iteration.
Ref: https://www.linkedin.com/pulse/essential-resources-services-technologies-your-startup-jason-oh
Agile
Advantage
• Easy to adopt changes
• Make clear where we are and where we want to go
Disadvantage
• Necessity for refactoring -> CI(We will see later)
• Communication cost -> No more than about 20 people
Difference of agile and spiral
• Spiral … makes every feature in
each iteration
• Agile … implements only one
feature for each iteration.
Non-spiralSpiral Scrum
eXtreme
Programming(XP)
Waterfall Agile DevOps
One way of agile incarnation
Focus on communication of developers
• Make a list for features we one to implement and
update constantly
• Each iteration is 30 days and software has to be
deployable in the end
• 15 minutes standing meeting everyday
• No partitioning
Scrum
Non-spiralSpiral Scrum
eXtreme
Programming(XP)
Waterfall Agile DevOps
eXtreme Programming(XP)
One way of agile incarnation
Focus on maintainability of Code
• Test Driven Development(TDD)
• Pare Programming
• Joint ownership of code
• Continuous Integration (CI)
• Issue Tracking
eXtreme Programming(XP)
One way of agile incarnation
Focus on maintainability of Code
• Test Driven Development(TDD)
• Pare Programming
• Joint ownership of code
• Continuous Integration (CI)
• Issue Tracking
2 purpose of software test
Test for users
Focused in Agile
Run test everytime we make a
change to source code
Test for developers
eXtreme Programming(XP)
One way of agile incarnation
Focus on maintainability of Code
• Test Driven Development(TDD)
• Pare Programming
• Joint ownership of code
• Continuous Integration (CI)
• Issue Tracking
• Distributed Version Control
System(DVCS)
• Able to share history of changes
• Cut a brunch for every single
feature or subproject
Ref: http://gotgroove.com/ecommerce-blog/guide-to-version-control-for-magento-using-git-and-beanstalk/
Mercurial (more simple DVCS for pythonista) could be enough for some bioinformaticians, though…
Workflow using git(≒ how to branch)
There are several practice of
branching but the following are
the principle rule
• 1 feature 1 branch
• Master always have to be
deployable
出典:https://www.atlassian.com/ja/git/workflows#!workflow-gitflow
• Hosting service for Git
• Filing issue for every subject
makes project trackable
Coding -> Pull Request -> Review -> merge
By following this flow, Source code becomes less dependent to particular person
Workflow using Git&github
Work in local
repository
push
Pull Request
Code Review
merge
Fork & clone
Ref: http://acrl.ala.org/techconnect/post/coding-collaboration-on-github
Workflow using Git&github
Work in local
repository
push
Pull Request
Code Review
merge
Fork & clone
Ref: http://acrl.ala.org/techconnect/post/coding-collaboration-on-github
Ticketing
↓
Issue Tracking
Buid test
↓
CI
eXtreme Programming(XP)
One way of agile incarnation
Focus on maintainability of Code
• Test Driven Development(TDD)
• Pare Programming
• Joint ownership of code
• Continuous Integration (CI)
• Issue Tracking
Continuous Integration(CI)
• Run automated test
constantly
• Makes easy to track a
Problem
Jenkins: The CI tool
Ref: http://www.slideshare.net/whyme/jenkins-reviewbot
Github and CI tool
Run test every time pushing remote
Common Combination is
Github + [travisCI or jenkins]
Ref: https://github.com/hltfbk/Excitement-Open-Platform/wiki/Developers
eXtreme Programming(XP)
One way of agile incarnation
Focus on maintainability of Code
• Test Driven Development(TDD)
• Pare Programming
• Joint ownership of code
• Continuous Integration (CI)
• Issue Tracking
Practice for Issue tracking
• Rough schedule is tracked by
Gantt chart, burn down chart
Ref: https://en.wikipedia.org/wiki/Gantt_chart
Ref: http://chandoo.org/wp/2009/07/21/burn-down-charts/
• More precise schedule
will be managed by
Tickets or issues
Redmine Github + Zenhub
Burn down chart
Gantt chart
Test Driven Development(TDD)
• Manage task Centrally as Ticket
• Make small tasks clear and
trackable
出典:http://itpro.nikkeibp.co.jp/article/COLUMN/20130927/507265/?SS=imgview&FD=55983188&ST=devops
Is a commonly used tool
Waterfall Agile DevOps
DevOps
• Extending “Agile” from
Development to operation
That is ..
• Reflect changes to working system
instantly when we update a code. Not only developing a
software.
But to Develop a
Whole System.
Technologies for Devops
•Virtualization using container
• Configuration Management tool
http://blog.xebialabs.com/2014/12/05/rocket-vs-docker-myth-simple-lightweight-enterprise-platform/
Fabric
Technologies for Devops
•Virtualization using container
• Configuration Management tool
http://blog.xebialabs.com/2014/12/05/rocket-vs-docker-myth-simple-lightweight-enterprise-platform/
Fabric
Tipical Situation in bioinformatics
•
Small daily analysis
on laptop
Realize necessity of
computation power
Move pipeline to High-
performance server
Able to use Cloud?
Use CloudBiolinux or other VM image
From bioimg.org
_人人人人人人人人人人_
> dependency hell<
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
Software (or package) Version difference
_人人人人人人人人人人_
> No Reproducibility<
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
Container Virtualization(docker)
• Include wholeThird-Party
developed software into one
container.
• Build Once Run Anywhere
• Version-controlable and has
Github-like Hosting service
Easy to transport between servers
Develop whole container as “Software”
Progress of Virtualization
chroot、cgroups KVM、Virtualbox
Isolation of file and process space OS Virtualization
• Heavy
• Non-easy for Provisioning
• Hard to use base image
• (chroot has) a danger for depletion of
computation resource by 1 user.
Tries to take advantage of both
Emergence
of Counterforce
• Security problem
• Dockerfile problem
• Portablity problem
Some bugs around caching?
Peculiar way of writing
->Better to use packer
Become root is must
Better to be run on Linux
kernel version (>= 3.8)
Cloudius OSV
Problem of Docker
Not user-friendly enough so far
Not enough community resource such as Base image
Not mature enough to use
Technologies for Devops
•Virtualization using container
• Configuration Management tool
http://blog.xebialabs.com/2014/12/05/rocket-vs-docker-myth-simple-lightweight-enterprise-platform/
Fabric
Infrastructure as code
• Maintain Server condfiguration as
Code
• Assure to be idempotent
• Easily transport pipelines
between servers
Fabric
Ruby base Python base
Chef
Zero
simple
• Chef requires users to remember fancy jargons
• CloudBiolinux supports Fabric
Better to start from fabric
complex

Mais conteúdo relacionado

Mais procurados

Continuous deployment
Continuous deploymentContinuous deployment
Continuous deployment
Daniel
 
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Simplilearn
 

Mais procurados (20)

Continuous deployment
Continuous deploymentContinuous deployment
Continuous deployment
 
TMF2014 CI-CD Workshop Michael Palotas
TMF2014 CI-CD Workshop Michael PalotasTMF2014 CI-CD Workshop Michael Palotas
TMF2014 CI-CD Workshop Michael Palotas
 
Understanding DevOps in simpler way with Continuous Delivery
Understanding DevOps in simpler way with Continuous DeliveryUnderstanding DevOps in simpler way with Continuous Delivery
Understanding DevOps in simpler way with Continuous Delivery
 
DevOps in 5 minutes
DevOps in 5 minutesDevOps in 5 minutes
DevOps in 5 minutes
 
Top DevOps tools
Top DevOps toolsTop DevOps tools
Top DevOps tools
 
CI/CD in the serverless era
CI/CD in the serverless eraCI/CD in the serverless era
CI/CD in the serverless era
 
Scaling DevOps To The Enterprise
Scaling DevOps To The EnterpriseScaling DevOps To The Enterprise
Scaling DevOps To The Enterprise
 
Dev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops toolsDev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops tools
 
DevOps?!@
DevOps?!@DevOps?!@
DevOps?!@
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CD
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 
TDD anche su iOS
TDD anche su iOSTDD anche su iOS
TDD anche su iOS
 
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to BeKeeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
 
Progressive exposure using deployment rings and feature flags
Progressive exposure using deployment rings and feature flagsProgressive exposure using deployment rings and feature flags
Progressive exposure using deployment rings and feature flags
 
Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...
Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...
Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...
 
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle
 
From 0 to DevOps: Lessons Learned Moving from On-Prem to Cloud Native
From 0 to DevOps: Lessons Learned Moving from On-Prem to Cloud NativeFrom 0 to DevOps: Lessons Learned Moving from On-Prem to Cloud Native
From 0 to DevOps: Lessons Learned Moving from On-Prem to Cloud Native
 
Devops Mindset Essentials
Devops Mindset EssentialsDevops Mindset Essentials
Devops Mindset Essentials
 

Destaque

Evolving To A New Dominant Logic For Marketing By Nikhil Nigam
Evolving To A New Dominant Logic For Marketing By Nikhil NigamEvolving To A New Dominant Logic For Marketing By Nikhil Nigam
Evolving To A New Dominant Logic For Marketing By Nikhil Nigam
Nikhil Nigam
 
Services Marketing vs Service Science
Services Marketing vs Service ScienceServices Marketing vs Service Science
Services Marketing vs Service Science
Michael Hanacek
 
Service Dominant Logic. Changing Perspective, Revising the Toolbox - Nicola M...
Service Dominant Logic. Changing Perspective, Revising the Toolbox - Nicola M...Service Dominant Logic. Changing Perspective, Revising the Toolbox - Nicola M...
Service Dominant Logic. Changing Perspective, Revising the Toolbox - Nicola M...
ServDes
 

Destaque (9)

Evolving To A New Dominant Logic For Marketing By Nikhil Nigam
Evolving To A New Dominant Logic For Marketing By Nikhil NigamEvolving To A New Dominant Logic For Marketing By Nikhil Nigam
Evolving To A New Dominant Logic For Marketing By Nikhil Nigam
 
Toward a Value Metrics -A Service-Dominant Logic View-
Toward a Value Metrics -A Service-Dominant Logic View-Toward a Value Metrics -A Service-Dominant Logic View-
Toward a Value Metrics -A Service-Dominant Logic View-
 
Towards an ontological foundation of service dominant logic
Towards an ontological foundation of service dominant logicTowards an ontological foundation of service dominant logic
Towards an ontological foundation of service dominant logic
 
Services Marketing vs Service Science
Services Marketing vs Service ScienceServices Marketing vs Service Science
Services Marketing vs Service Science
 
An Exploration of Service Ecosystems in Microfinance: A Service Dominant Logi...
An Exploration of Service Ecosystems in Microfinance: A Service Dominant Logi...An Exploration of Service Ecosystems in Microfinance: A Service Dominant Logi...
An Exploration of Service Ecosystems in Microfinance: A Service Dominant Logi...
 
Vii 1 Resource Service System
Vii 1 Resource Service SystemVii 1 Resource Service System
Vii 1 Resource Service System
 
Service Dominant Logic. Changing Perspective, Revising the Toolbox - Nicola M...
Service Dominant Logic. Changing Perspective, Revising the Toolbox - Nicola M...Service Dominant Logic. Changing Perspective, Revising the Toolbox - Nicola M...
Service Dominant Logic. Changing Perspective, Revising the Toolbox - Nicola M...
 
Enigmaの解説
Enigmaの解説Enigmaの解説
Enigmaの解説
 
Digital Media Sectors and Audiences
Digital Media Sectors and AudiencesDigital Media Sectors and Audiences
Digital Media Sectors and Audiences
 

Semelhante a Short Introduction of software engineering for bioinformatics

The challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automationThe challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automation
DBmaestro - Database DevOps
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
 

Semelhante a Short Introduction of software engineering for bioinformatics (20)

Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
 
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
Agile & ALM tools
Agile & ALM toolsAgile & ALM tools
Agile & ALM tools
 
KubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfKubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdf
 
The challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automationThe challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automation
 
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
 
SQL Server DevOps Jumpstart
SQL Server DevOps JumpstartSQL Server DevOps Jumpstart
SQL Server DevOps Jumpstart
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
 
Building environment of #UserDevOps and not only DevOps
Building environment of #UserDevOps and not only DevOpsBuilding environment of #UserDevOps and not only DevOps
Building environment of #UserDevOps and not only DevOps
 
DevOps-Ebook
DevOps-EbookDevOps-Ebook
DevOps-Ebook
 
CICD_BestPractices.pdf
CICD_BestPractices.pdfCICD_BestPractices.pdf
CICD_BestPractices.pdf
 
Edureka-DevOps-Ebook.pdf
Edureka-DevOps-Ebook.pdfEdureka-DevOps-Ebook.pdf
Edureka-DevOps-Ebook.pdf
 
DevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay ApplicationDevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay Application
 

Último

Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
Epec Engineered Technologies
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
HenryBriggs2
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
MayuraD1
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
jaanualu31
 
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
Health
 

Último (20)

Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
Air Compressor reciprocating single stage
Air Compressor reciprocating single stageAir Compressor reciprocating single stage
Air Compressor reciprocating single stage
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 

Short Introduction of software engineering for bioinformatics

  • 1. Short Introduction to Software engineering for bioinformatics Joe Miyamoto
  • 2. Progress of software development practice Waterfall Agile DevOps There is no silver bullet for software engineering and every each has own advantage But in terms of bioinformatics, there is very little chance for adopting Waterfall.
  • 3. Evolution rather than progress? Waterfall Agile DevOps
  • 4. In more precise… Non-spiralSpiral Scrum eXtreme Programming(XP) Waterfall Agile DevOps
  • 6. Waterfull stlyle development • Very old and popular style of product development Do not go back to previous section It has to be clear about what we really want to make Suited for Large-scale development “Few A-Class architect and the mass of C-class programmer”Ref: http://fireside.gamejolt.com/post/the-game-creation-process-part-2-designing-the-idea-viq5rk2t
  • 7. Waterfull style development Advantage •Easy to manage the progress(if we found no contingency) Disadvantage •Hard to manage the progress (if we do found contingency)
  • 8. waterfull(spiral) • Iteration of waterfull Advantage • Task becomes clear by each iteration Disadvantage • Time consuming • Hard to determine how much we have to elaborate on first iteration ref: http://www.qmetry.com/spiral.html
  • 10. Agile • Antithesis for waterfull • Not Technique, it’s Phiosophy • 1 iteration is 1~4 week,and 1 feature for each iteration. Ref: https://www.linkedin.com/pulse/essential-resources-services-technologies-your-startup-jason-oh
  • 11. Agile Advantage • Easy to adopt changes • Make clear where we are and where we want to go Disadvantage • Necessity for refactoring -> CI(We will see later) • Communication cost -> No more than about 20 people
  • 12. Difference of agile and spiral • Spiral … makes every feature in each iteration • Agile … implements only one feature for each iteration.
  • 14. One way of agile incarnation Focus on communication of developers • Make a list for features we one to implement and update constantly • Each iteration is 30 days and software has to be deployable in the end • 15 minutes standing meeting everyday • No partitioning Scrum
  • 16. eXtreme Programming(XP) One way of agile incarnation Focus on maintainability of Code • Test Driven Development(TDD) • Pare Programming • Joint ownership of code • Continuous Integration (CI) • Issue Tracking
  • 17. eXtreme Programming(XP) One way of agile incarnation Focus on maintainability of Code • Test Driven Development(TDD) • Pare Programming • Joint ownership of code • Continuous Integration (CI) • Issue Tracking
  • 18. 2 purpose of software test Test for users Focused in Agile Run test everytime we make a change to source code Test for developers
  • 19. eXtreme Programming(XP) One way of agile incarnation Focus on maintainability of Code • Test Driven Development(TDD) • Pare Programming • Joint ownership of code • Continuous Integration (CI) • Issue Tracking
  • 20. • Distributed Version Control System(DVCS) • Able to share history of changes • Cut a brunch for every single feature or subproject Ref: http://gotgroove.com/ecommerce-blog/guide-to-version-control-for-magento-using-git-and-beanstalk/ Mercurial (more simple DVCS for pythonista) could be enough for some bioinformaticians, though…
  • 21. Workflow using git(≒ how to branch) There are several practice of branching but the following are the principle rule • 1 feature 1 branch • Master always have to be deployable 出典:https://www.atlassian.com/ja/git/workflows#!workflow-gitflow
  • 22. • Hosting service for Git • Filing issue for every subject makes project trackable Coding -> Pull Request -> Review -> merge By following this flow, Source code becomes less dependent to particular person
  • 23. Workflow using Git&github Work in local repository push Pull Request Code Review merge Fork & clone Ref: http://acrl.ala.org/techconnect/post/coding-collaboration-on-github
  • 24. Workflow using Git&github Work in local repository push Pull Request Code Review merge Fork & clone Ref: http://acrl.ala.org/techconnect/post/coding-collaboration-on-github Ticketing ↓ Issue Tracking Buid test ↓ CI
  • 25. eXtreme Programming(XP) One way of agile incarnation Focus on maintainability of Code • Test Driven Development(TDD) • Pare Programming • Joint ownership of code • Continuous Integration (CI) • Issue Tracking
  • 26. Continuous Integration(CI) • Run automated test constantly • Makes easy to track a Problem Jenkins: The CI tool Ref: http://www.slideshare.net/whyme/jenkins-reviewbot
  • 27. Github and CI tool Run test every time pushing remote Common Combination is Github + [travisCI or jenkins] Ref: https://github.com/hltfbk/Excitement-Open-Platform/wiki/Developers
  • 28. eXtreme Programming(XP) One way of agile incarnation Focus on maintainability of Code • Test Driven Development(TDD) • Pare Programming • Joint ownership of code • Continuous Integration (CI) • Issue Tracking
  • 29. Practice for Issue tracking • Rough schedule is tracked by Gantt chart, burn down chart Ref: https://en.wikipedia.org/wiki/Gantt_chart Ref: http://chandoo.org/wp/2009/07/21/burn-down-charts/ • More precise schedule will be managed by Tickets or issues Redmine Github + Zenhub Burn down chart Gantt chart
  • 30. Test Driven Development(TDD) • Manage task Centrally as Ticket • Make small tasks clear and trackable 出典:http://itpro.nikkeibp.co.jp/article/COLUMN/20130927/507265/?SS=imgview&FD=55983188&ST=devops Is a commonly used tool
  • 32. DevOps • Extending “Agile” from Development to operation That is .. • Reflect changes to working system instantly when we update a code. Not only developing a software. But to Develop a Whole System.
  • 33. Technologies for Devops •Virtualization using container • Configuration Management tool http://blog.xebialabs.com/2014/12/05/rocket-vs-docker-myth-simple-lightweight-enterprise-platform/ Fabric
  • 34. Technologies for Devops •Virtualization using container • Configuration Management tool http://blog.xebialabs.com/2014/12/05/rocket-vs-docker-myth-simple-lightweight-enterprise-platform/ Fabric
  • 35. Tipical Situation in bioinformatics • Small daily analysis on laptop Realize necessity of computation power Move pipeline to High- performance server Able to use Cloud? Use CloudBiolinux or other VM image From bioimg.org _人人人人人人人人人人_ > dependency hell<  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄ Software (or package) Version difference _人人人人人人人人人人_ > No Reproducibility<  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
  • 36. Container Virtualization(docker) • Include wholeThird-Party developed software into one container. • Build Once Run Anywhere • Version-controlable and has Github-like Hosting service Easy to transport between servers Develop whole container as “Software”
  • 37. Progress of Virtualization chroot、cgroups KVM、Virtualbox Isolation of file and process space OS Virtualization • Heavy • Non-easy for Provisioning • Hard to use base image • (chroot has) a danger for depletion of computation resource by 1 user. Tries to take advantage of both
  • 38. Emergence of Counterforce • Security problem • Dockerfile problem • Portablity problem Some bugs around caching? Peculiar way of writing ->Better to use packer Become root is must Better to be run on Linux kernel version (>= 3.8) Cloudius OSV Problem of Docker Not user-friendly enough so far Not enough community resource such as Base image Not mature enough to use
  • 39. Technologies for Devops •Virtualization using container • Configuration Management tool http://blog.xebialabs.com/2014/12/05/rocket-vs-docker-myth-simple-lightweight-enterprise-platform/ Fabric
  • 40. Infrastructure as code • Maintain Server condfiguration as Code • Assure to be idempotent • Easily transport pipelines between servers Fabric Ruby base Python base Chef Zero simple • Chef requires users to remember fancy jargons • CloudBiolinux supports Fabric Better to start from fabric complex

Notas do Editor

  1. 一度似たようなプロジェクトで失敗しなければ成功しないといわれる。 時間がないと破綻する すべて完成してから問題が発覚するなんてことも…
  2. 結構厳しいので、メンバーに経験が要求される