SlideShare a Scribd company logo
//@roofimon
“ ”
“ ”
You can not find the best
solution but you can find the
optimal one.
Agenda
• Software Development in my perspective
• Methodology
• TDD
• Tools
• Q n A
• Little bit about @roofimon
• 26 2518 1 2
• A-F
• IT Technical Architect DTAC
• Architect ?
• “ ”
Software Development
•
• ?
• “ ”
•
• IT
?
Just an Example
• Programmer
• Project Management
• Solution Architecture
• System Integration
• Database Administration
• Testing
• Security
• Operation
• Infrastructure
- -
English for Communication
000102 - -
English for Academic Purposes (EAP
II)
000103 - -
English for Academic Purposes I
(EAP II)
000112 - -
Thai for Academic Purposrs(???
Software Development
and Operation is like
grocery store
How to build software like 7-11
• Work
• Not over budget
• In time
• Easy to transition
• Easy to operate and maintain
We need
• Methodology
• Good Programmer
• Tools
Lack of Methodology
How to survive?
Methodology
Methodology reflect …
Methodology
Team
Structure
Individual
Behavior
Discipline
Which one is the best?
Which one is the suitable for us?
The Greatest Waterfall
The Greatest Waterfall
Requirement
Analysis
Design
Implementation
Integration
Testing
Maintenance
Waterfall Team
Waterfall Discipline
• Project is divided into sequential phases.
• Emphasis an entire system at one time.
• Tight control is maintained through the use of
extensive written documentation.
Waterfall s..ks?
Waterfall not wrong
• 90% of enterprise firm in Thailand still using
waterfall model.
• It’s big , really big. 100 people involve with
project.
• Match with their procurement process
• Strong Audit process.
• “Trust ??”.
Developer Discipline
• Depends on developers themselves
• Mostly, make it fast.
• Mostly, make it done.
• Deadline ahead
• Quality ummmmm QA team will cover it for
somehow
• Aggressive Regression Test
• Customer will come when our software is “done”.
• Change request, Change request, Change request
What about small organization?
• They need something that is really “work”.
• They can spend time with your team.
• So Waterfall again?
• We need methodology that focus on
delivering software that working.
Agile Development Methodology
WhyAgile?
Requirement
Analysis
Design
Implementation
Integration
Testing
Maintenance
Customers
Analyst
Architect
Labor
Labor
Tester
Three simple truths
• 1. It is impossible to gather all the
requirements at the beginning of a project.
• 2. Whatever requirements you do gather are
guaranteed to change.
• 3. There will always be more to do than time
and money will allow.
Agile Team
Discipline
• Customer satisfaction by rapid delivery of useful software
• Welcome changing requirements, even late in development
• Working software is delivered frequently (weeks rather than
months)
• Working software is the principal measure of progress
• …
• …
• …
• Regular adaptation to changing circumstances
Developer Discipline
• According to 3 simple truth
• Agile coder will carry these four basic activities
along with them
– Coding
– Testing
– Listening
– designing
Anyway
• Grocery Store does exist but …?
• Waterfall and Agile
• Waterfall still dominate the market.
• Waterfall itself doesn’t encourage
programmer to write good code.
• We need something.
• Applied TDD into development phase in
Waterfall 
We understand the story, so we
Happy.
Produce good code
Good Programmer = Good Software
• Understandable
• Testable
Understandable
The Program
• a1 is a yng and gftd sftwreng attempting to
hackMnfrm() of sftw company ENCOM in
order to fndEvdc() that senior executive
a2 stole() a1's cde and prsnt() it as his own,
earning him a rapid series of promotions. a1 is
blcked() by the MCP, an ai that ctrl the ENCOM
mnfrm.
The Program
kevinFlynn is a young and gifted
SOFTWARE_ENGINEER attempting to hack() into
the mainframe of encom =
SoftwareCompany(“ENCOM”) in order to
findEvidence() that ENIOR_EXECUTIVE
edDillinger stole(kevinFlynn) code and presented
it as his own, earning him a rapid series of
promotions. kevinFlynn is blocked() by the
MasterControlProgram , an
artificialIntelligence that controls(encom) the
ENCOM mainframe.
Understandable
• Use Intention-Revealing Names
• Make Meaningful Distinctions
• Use Pronounceable Names
• Use Searchable Names
• Avoid Encodings
Use Intention-Revealing Names
//================================
int d // elapsed time in days
//=================================
int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;
Use Intention-Revealing Names
public List<int[]> getThem() {
List<int[]> list1 = new
ArrayList<int[]>();
for (int[] x : theList)
if (x[0] == 4) list1.add(x);
return list1;
}
Use Intention-Revealing Names
public List<Cell> getFlaggedCells() {
List<Cell> flaggedCells =
new ArrayList<Cell>();
for (Cell cell : gameBoard)
if (cell.isFlagged())
flaggedCells.add(cell);
return flaggedCells;
}
Use Searchable Names
int realDaysPerIdealDay = 4;
const int WORK_DAYS_PER_WEEK = 5;
int sum = 0;
for(int j=0; j<NUMBER_OF_TASKS; j++){
int realTaskDays =
taskEstimate[j]*realDaysPerIdealDay;
int realTaskWeeks =
(realdays / WORK_DAYS_PER_WEEK);
sum += realTaskWeeks;
}
Avoid Side Effect
public class UserValidator {
private Cryptographer cryptographer;
public boolean checkPassword(String userName,
String password) {
User user = UserGateway.findByName(userName);
if (user != User.NULL) {
String codedPhrase =
user.getPhraseEncodedByPassword();
String phrase =
cryptographer.decrypt(codedPhrase,
password);
if ("Valid Password".equals(phrase)) {
Session.initialize();
return true; }
} return false;
}
}
Testable
• What?
• We just understand our code.
• Dependency?
Test Driven Development AKA TDD
– Executable Document Spec
– Executable functional checking
– Executable dependency checking
– Executable integration test
Normal Cycle
• Read function spec
• Start coding
• Monkey see and monkey do
• It might not effect to other functions
• Waiting for defect ticket
TDD cycle
• Read function spec
• (Re)Write Test
• Run Test fail
• Write Production Code
• Run all test
• Refactor
• Cool 
Demo
Code
Part II Tools
• Project Management
• Collaboration
• Development Environment
• Development Tools
• Testing
• Continuous Integration
• Deployment
• Monitoring
Project Management and
Collaboration
# Flexible issue tracking system
# Gantt chart and calendar
# News, documents & files management
# Feeds & e-mail notifications.
# Per project wiki
# Per project forums
Redmine Demo
Version Control
• You are not alone
• Code is your asset
• Choose one:
• GIT, SVN, CVS
Development Tools
• Build Tool
• Library dependency checking
• Single Repository
• Check Style
• IDE
Testing
• Junit
• DB Unit
• Mockito
• Selenium
JUnit
• JUnit is a unit testing framework
• Unit test itself is not enough we need
company
DBUnit
• Why do we need to test our database?
• You need [multiple] databases
Mock Object
• Mock objects are simulated objects that mimic
the behavior of real objects in controlled ways.
• supplies non-deterministic results
• has states that are difficult to create or reproduce
• is slow
• does not yet exist or may change behavior;
• would have to include information and methods
exclusively for testing purposes
Web App Test
• Selenium is a suite of tools to automate web
app testing across many platforms.
Continuous Integration
• Execute all unit test in integration
environment
• Code coverage checking
• Automatic Branch/Tag
Deployment
Monitoring

More Related Content

What's hot

Increasing Quality with DevOps
Increasing Quality with DevOpsIncreasing Quality with DevOps
Increasing Quality with DevOps
Coveros, Inc.
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
drluckyspin
 
10 Things You Might Not Know: Continuous Integration
10 Things You Might Not Know: Continuous Integration10 Things You Might Not Know: Continuous Integration
10 Things You Might Not Know: Continuous Integration
Coveros, Inc.
 
Matt carroll - "Security patching system packages is fun" said no-one ever
Matt carroll - "Security patching system packages is fun" said no-one everMatt carroll - "Security patching system packages is fun" said no-one ever
Matt carroll - "Security patching system packages is fun" said no-one ever
DevSecCon
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database Objects
Prabhu Ramasamy
 
Migrate to microservices
Migrate to microservicesMigrate to microservices
Migrate to microservices
Andrey Trubitsyn
 
Shifting left – embedding security into the devops pipeline by Mike d. Kail
Shifting left – embedding security into the devops pipeline by Mike d. KailShifting left – embedding security into the devops pipeline by Mike d. Kail
Shifting left – embedding security into the devops pipeline by Mike d. Kail
DevSecCon
 
Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?
Kris Buytaert
 
Connect Ops and Security with Flexible Web App and API Protection
Connect Ops and Security with Flexible Web App and API ProtectionConnect Ops and Security with Flexible Web App and API Protection
Connect Ops and Security with Flexible Web App and API Protection
DevOps.com
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
Amazon Web Services
 
DevSecCon London 2017: Shift happens ... by Colin Domoney
DevSecCon London 2017: Shift happens ... by Colin Domoney DevSecCon London 2017: Shift happens ... by Colin Domoney
DevSecCon London 2017: Shift happens ... by Colin Domoney
DevSecCon
 
How to Introduce Continuous Delivery
How to Introduce Continuous DeliveryHow to Introduce Continuous Delivery
How to Introduce Continuous Delivery
Dr. Alexander Schwartz
 
DevSecOps - It can change your life (cycle)
DevSecOps - It can change your life (cycle)DevSecOps - It can change your life (cycle)
DevSecOps - It can change your life (cycle)
Qualitest
 
Building Security in Using CI
Building Security in Using CIBuilding Security in Using CI
Building Security in Using CI
Coveros, Inc.
 
Why source control your Oracle Database?
Why source control your Oracle Database?Why source control your Oracle Database?
Why source control your Oracle Database?
Red Gate Software
 
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Sauce Labs
 
ATAGTR2017 Static and dynamic code analysis for mobile applications - Act ear...
ATAGTR2017 Static and dynamic code analysis for mobile applications - Act ear...ATAGTR2017 Static and dynamic code analysis for mobile applications - Act ear...
ATAGTR2017 Static and dynamic code analysis for mobile applications - Act ear...
Agile Testing Alliance
 
DevSecCon Asia 2017 Ofer Maor: AppSec DevOps automation – real world cases
DevSecCon Asia 2017 Ofer Maor: AppSec DevOps automation – real world casesDevSecCon Asia 2017 Ofer Maor: AppSec DevOps automation – real world cases
DevSecCon Asia 2017 Ofer Maor: AppSec DevOps automation – real world cases
DevSecCon
 
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
Edureka!
 
The Coming Earthquake in IIS and SQL Configuration Management
The Coming Earthquake  in IIS and SQL Configuration ManagementThe Coming Earthquake  in IIS and SQL Configuration Management
The Coming Earthquake in IIS and SQL Configuration Management
Jules Pierre-Louis
 

What's hot (20)

Increasing Quality with DevOps
Increasing Quality with DevOpsIncreasing Quality with DevOps
Increasing Quality with DevOps
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
10 Things You Might Not Know: Continuous Integration
10 Things You Might Not Know: Continuous Integration10 Things You Might Not Know: Continuous Integration
10 Things You Might Not Know: Continuous Integration
 
Matt carroll - "Security patching system packages is fun" said no-one ever
Matt carroll - "Security patching system packages is fun" said no-one everMatt carroll - "Security patching system packages is fun" said no-one ever
Matt carroll - "Security patching system packages is fun" said no-one ever
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database Objects
 
Migrate to microservices
Migrate to microservicesMigrate to microservices
Migrate to microservices
 
Shifting left – embedding security into the devops pipeline by Mike d. Kail
Shifting left – embedding security into the devops pipeline by Mike d. KailShifting left – embedding security into the devops pipeline by Mike d. Kail
Shifting left – embedding security into the devops pipeline by Mike d. Kail
 
Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?
 
Connect Ops and Security with Flexible Web App and API Protection
Connect Ops and Security with Flexible Web App and API ProtectionConnect Ops and Security with Flexible Web App and API Protection
Connect Ops and Security with Flexible Web App and API Protection
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
 
DevSecCon London 2017: Shift happens ... by Colin Domoney
DevSecCon London 2017: Shift happens ... by Colin Domoney DevSecCon London 2017: Shift happens ... by Colin Domoney
DevSecCon London 2017: Shift happens ... by Colin Domoney
 
How to Introduce Continuous Delivery
How to Introduce Continuous DeliveryHow to Introduce Continuous Delivery
How to Introduce Continuous Delivery
 
DevSecOps - It can change your life (cycle)
DevSecOps - It can change your life (cycle)DevSecOps - It can change your life (cycle)
DevSecOps - It can change your life (cycle)
 
Building Security in Using CI
Building Security in Using CIBuilding Security in Using CI
Building Security in Using CI
 
Why source control your Oracle Database?
Why source control your Oracle Database?Why source control your Oracle Database?
Why source control your Oracle Database?
 
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
 
ATAGTR2017 Static and dynamic code analysis for mobile applications - Act ear...
ATAGTR2017 Static and dynamic code analysis for mobile applications - Act ear...ATAGTR2017 Static and dynamic code analysis for mobile applications - Act ear...
ATAGTR2017 Static and dynamic code analysis for mobile applications - Act ear...
 
DevSecCon Asia 2017 Ofer Maor: AppSec DevOps automation – real world cases
DevSecCon Asia 2017 Ofer Maor: AppSec DevOps automation – real world casesDevSecCon Asia 2017 Ofer Maor: AppSec DevOps automation – real world cases
DevSecCon Asia 2017 Ofer Maor: AppSec DevOps automation – real world cases
 
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
 
The Coming Earthquake in IIS and SQL Configuration Management
The Coming Earthquake  in IIS and SQL Configuration ManagementThe Coming Earthquake  in IIS and SQL Configuration Management
The Coming Earthquake in IIS and SQL Configuration Management
 

Viewers also liked

ATDD
ATDDATDD
กระบวนการเชิงประจักษ์ (Empirical Process)
กระบวนการเชิงประจักษ์ (Empirical Process)กระบวนการเชิงประจักษ์ (Empirical Process)
กระบวนการเชิงประจักษ์ (Empirical Process)
ทวิร พานิชสมบัติ
 
Legacy Code For Management
Legacy Code For ManagementLegacy Code For Management

Viewers also liked (8)

Agile xptdd@gosoft
Agile xptdd@gosoftAgile xptdd@gosoft
Agile xptdd@gosoft
 
Agile for sipa
Agile for sipaAgile for sipa
Agile for sipa
 
Geek Academy Schedule
Geek Academy ScheduleGeek Academy Schedule
Geek Academy Schedule
 
การทำซอฟท์แวร์ภายใน 30 วัน
การทำซอฟท์แวร์ภายใน 30 วันการทำซอฟท์แวร์ภายใน 30 วัน
การทำซอฟท์แวร์ภายใน 30 วัน
 
ATDD
ATDDATDD
ATDD
 
Geeky Ademy Schedule 2nd Batch
Geeky Ademy Schedule 2nd BatchGeeky Ademy Schedule 2nd Batch
Geeky Ademy Schedule 2nd Batch
 
กระบวนการเชิงประจักษ์ (Empirical Process)
กระบวนการเชิงประจักษ์ (Empirical Process)กระบวนการเชิงประจักษ์ (Empirical Process)
กระบวนการเชิงประจักษ์ (Empirical Process)
 
Legacy Code For Management
Legacy Code For ManagementLegacy Code For Management
Legacy Code For Management
 

Similar to Kku2011

Kku2011
Kku2011Kku2011
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)
Peter Kofler
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
Amazon Web Services
 
Agile, DevOps & Test
Agile, DevOps & TestAgile, DevOps & Test
Agile, DevOps & Test
Qualitest
 
Agile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce ApproachAgile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce Approach
Ampersand
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
Omar Al-Sabek
 
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps JourneyGartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Kelly Looney
 
Agile
AgileAgile
Agile
Komal2525
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
SPC Adriatics
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
David Funaro
 
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
Rajnish Chauhan
 
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareLessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
DevOps for Enterprise Systems
 
BrainQuest-DevOps
BrainQuest-DevOpsBrainQuest-DevOps
BrainQuest-DevOps
Eric Phan
 
6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices
Dynatrace
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
Amazon Web Services
 
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro - Database DevOps
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
Xebia India
 
Critical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WayCritical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right Way
SmartBear
 
In (database) automation we trust
In (database) automation we trustIn (database) automation we trust
In (database) automation we trust
DBmaestro - Database DevOps
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
SUBHENDU KARMAKAR
 

Similar to Kku2011 (20)

Kku2011
Kku2011Kku2011
Kku2011
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
Agile, DevOps & Test
Agile, DevOps & TestAgile, DevOps & Test
Agile, DevOps & Test
 
Agile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce ApproachAgile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce Approach
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps JourneyGartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
 
Agile
AgileAgile
Agile
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 
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
 
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareLessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
 
BrainQuest-DevOps
BrainQuest-DevOpsBrainQuest-DevOps
BrainQuest-DevOps
 
6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
 
Critical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WayCritical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right Way
 
In (database) automation we trust
In (database) automation we trustIn (database) automation we trust
In (database) automation we trust
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
 

More from ทวิร พานิชสมบัติ

Devops maturity model
Devops maturity modelDevops maturity model
Crafting Culture
Crafting CultureCrafting Culture
Go: Programming Language for Cloud
Go: Programming Language for CloudGo: Programming Language for Cloud
Go: Programming Language for Cloud
ทวิร พานิชสมบัติ
 
LeSS
LeSSLeSS
Mongo db taradtechtalk2012
Mongo db taradtechtalk2012Mongo db taradtechtalk2012

More from ทวิร พานิชสมบัติ (20)

Devops maturity model
Devops maturity modelDevops maturity model
Devops maturity model
 
Crafting Culture
Crafting CultureCrafting Culture
Crafting Culture
 
Go: Programming Language for Cloud
Go: Programming Language for CloudGo: Programming Language for Cloud
Go: Programming Language for Cloud
 
LeSS
LeSSLeSS
LeSS
 
Scrum version3
Scrum version3Scrum version3
Scrum version3
 
Geeky academy
Geeky academyGeeky academy
Geeky academy
 
Agile
AgileAgile
Agile
 
Bdd bug day2013
Bdd bug day2013Bdd bug day2013
Bdd bug day2013
 
Scrum Version 3
Scrum Version 3Scrum Version 3
Scrum Version 3
 
Fixie atbarcampbangkok5
Fixie atbarcampbangkok5Fixie atbarcampbangkok5
Fixie atbarcampbangkok5
 
Scrum version2
Scrum version2Scrum version2
Scrum version2
 
Agile V2
Agile V2Agile V2
Agile V2
 
Start upandagile final
Start upandagile finalStart upandagile final
Start upandagile final
 
Scrum by roofimon
Scrum by roofimonScrum by roofimon
Scrum by roofimon
 
Power of pair programming
Power of pair programmingPower of pair programming
Power of pair programming
 
Introduction to Agile for SIPA
Introduction to Agile for SIPAIntroduction to Agile for SIPA
Introduction to Agile for SIPA
 
Agile Collob Tools
Agile Collob ToolsAgile Collob Tools
Agile Collob Tools
 
Mongo db taradtechtalk2012
Mongo db taradtechtalk2012Mongo db taradtechtalk2012
Mongo db taradtechtalk2012
 
Bugday bkk2012
Bugday bkk2012Bugday bkk2012
Bugday bkk2012
 
Mongo db taradtechtalk2012
Mongo db taradtechtalk2012Mongo db taradtechtalk2012
Mongo db taradtechtalk2012
 

Recently uploaded

SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 

Recently uploaded (20)

SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 

Kku2011

Editor's Notes

  1. ทักทายเล็กน้อย
  2. เนื่องจากเป็นการบรรยายในสถาบันการศึกษาครั้งแรกใน ชีวิต ก่อนหน้านี้จะเน้นไปทางงานไม่เป็นทางการเช่น BarCamp, OSSFest, …
  3. เนื่องจากเป็นการบรรยายในสถาบันการศึกษาครั้งแรกใน ชีวิต ก่อนหน้านี้จะเน้นไปทางงานไม่เป็นทางการเช่น BarCamp, OSSFest, …
  4. การทำงานในโลกแห่งความเป็นจริงนั้นใช้กฏ 80:20 ได้เสมอแต่ขึ้นอยู่กับตำแหน่งหน้าที่ที่เราทำ เด็กๆ บริษัทเล็กๆ 80:20 งานเทคนิคอลต่อการสื่อสารผู้ใหญ่ บริษัทใหญ่มาก 80:20 สือสาร:ต่องานเทคนิคอล เรามักจะพบอยู่เสมอว่าเราใช้เวลาไปสามสี่ชั่วโมงเพื่อ กำหนดคำว่า customer ให้ตรงกันหลีกเลี่ยงไม่ได้ว่า โลกเรา Globalize มากๆเราไม่ได้อยู่คนเดียว เราไม่สามารถทำงานคนเดียว เราไม่สามารถทำงานประเทศเดียวได้ เราต้องเกรียนอินเตอร์ เราต้องสื่อสารกับชาวโลกได้
  5. ทุกคนคิดว่าเหมือนอะไร ผมว่าเหมือนร้านขายของชำ หลายท่านคงคิดว่าเหมือนสร้างตึกแต่การสร้างตึกมันดู rigid ไปนิดมัน build to last มากไปนิดถ้าเทียบกับการสร้างซอฟท์แวร์
  6. เริ่มจากเล็กๆ ไม่มีแผนอะไรเลย อยากได้อะไรก็สุมๆๆๆๆๆๆ เข้าไป ผิดไหม? ขายของได้เหมือนกัน แต่ถ้าเจ๊ป่วย? แต่ถ้าเจ๊อยากยกร้านให้ลูก? มีตัวอย่างของ code ที่เกิดจากการคิดแบบนี้ให้ดู ว่าเมพส์ขนาดไหน หลายท่านอาจจบไปทำงานแล้วไปเจองานที่ต้อง maintain code ที่เป็นนี้ ต้องทำใจ มันมีที่มาแบบที่สอง รู้ว่าจะขายอะไร รู้แน่ๆ แต่ขายอะไรสุ่มสี่สุ่มห้าไม่ได้ ดีไหม? ถ้าเจ๊ป่วย? ถ้าเจ๊อยากยกร้านให้ลูก?สุดแต่ลูกค้าจะเลือกว่าจะเอาแบบไหน ลูกค้าให้ความสำคัฐกับการจัดการแค่ไหนการจัดการและ operate มีผลต่อธุรกิจแค่ไหน การทำ Software ไม่ใช่แค่ทำให้เสร็จตาม feature แล้วจบ มันต้องคิดต่อไปให้ครบจนถึงการ operate ด้วยดังนั้นถ้าเราต้องการสร้างซอฟท์แวร์ให้เมือน 7-11 หรือคล้ายๆ ที่ transition และ operate ได้ง่ายหน่อย
  7. เพื่อให้งานที่เราสร้างออกมาดี เราน่าจะมีวิธีคิดที่ดีเพื่อที่จะได้สร้างของที่ดี ดูแลง่ายออกไปให้ใช้งาน
  8. กระบวนการ ทีมงาน เครื่องมือที่ดีและเหมาะสมอยู่ดีๆจะออกไปเขียนโค้ด ดุ่มๆก็คงจะออกเกรียนกันไปนิด ต้องมีกรอบกันบ้าง ดังนั้นกรอบต้องมีตั้งแต่กรอบของทีม และกรอบของตัวนักพัฒนาเอง ไม่มีใครทำอะไรตามใจตัวเองได้มากนักหรอกครับในโลกแห่งความเป็นจริง ถ้าอยากทำอะไรตามใจตัวเองมากต้องเป็น สุดเขต เสลดเป็ด ผมอินดี้ ไม่เน้นขาย
  9. การสร้างงานแบบนี้เราไม่ต้องสอนกัน มันเป็นเรื่องของธรรมชาติ ถ้าเราทำอะไรไปเรื่อยๆดุ่ยๆไม่ค่อยมีแผน ผลมักจะออกมาเป็นแบบนี้เสมอ ที่ผ่านมาเมื่อต้นปีผมเพิ่งได้รับการชักชวนให้ไปร่วมแก้ปัยหาระบบที่เป็นเหมือนร้านขายของชำแบบนี้ โดยมีข้อแม้คือระบบห้ามหยุดเพราะการซื้อขายเกิดขึนตลอดเวลา 24*7 ตัวอย่างcode ของ Taradและตัวอย่าง Database Schema ของ สพฐ ถ้าได้เข้าไปทำงานที่ที่ไม่มี methodology สิ่งเดียวที่เราทำได้คือ สวดมนต์
  10. Methodology สำคัญมากๆ เนื่องจากมันเป็นจุดเริ่มต้อนของทุกอย่าง ในกระบวนพัฒนาซอฟท์แวร์ methodologyถ้าเราเลือกขึ้นมาหนึ่งตัวเราจะพบว่า methodology จะ reflect to 3 things: team, individual discipline and tools (ไม่ทั้งหมดแต่เกือบทั้งหมด) ดังนั้นวันที่เราจบออกไปทำงานเป็น รุ่นน้องที่สุดในทีมเราจะรู้ว่าเราต้องเจออะไรบ้างจาก methodology ที่บริษัทนั้นใช้ หรือ ถ้าโชคดีมากๆอาจไปเจอบริษัทที่ไม่มี methodology อะไรเลยเป็นแบบ อินดี้ ก็ขอให้โชคดีครับ ทุกอย่างมีที่มาที่ไปบางคนจบออกไปอาจจะอึดอัดกับการทำงานแบบนี้แบบนั้นแต่อยากให้เข้าใจว่าทุกอย่างมีเหตุผลของมัน ถ้าเราเข้าใจมันเราจะมีความสุข
  11. ปัจจุบันถ้าเราไปgoogleดูว่ามี Software Development Methodology กี่แบบเยอะมากๆ Prototyping, Spiral abcแต่ที่โด่งดังมหัศจรรย์ขั้นเทพที่สุดคือ Waterfall เรามาดูกันหน่อยว่าถ้าเราเลือก waterfall มันจะ reflect อะไรบ้าง ยังไง
  12. แต่บางครั้งเราไม่ได้เลือกเอง มันถูกเลือกมาแล้ว สิ่งที่เราทำได้คือเข้าใจมัน เพื่อให้เราทำงานอย่างมีความสุข หาวิธีปรับเอาเองโดยที่ไม่ violate disciplineคำถามคือ methodology ไหนได้รับความนิยมสูงสุด ตลอดกาล คลาสสิก เจอแน่ๆ
  13. Develop RFPกระบวนการรวบรวมสิ่งที่อยากได้ทั้งหมดเขียนเป็น Request For Proposal, Present Proposal โชว์ว่าทำได้ทุกอย่าง compile หมดทุกข้อเข้ากระบวนการจัดซื้อ ต่อรองราคา(เพิ่งโม้ไปเยอะว่าทำได้), Analysis ลงไปรับ requirement จากลูกค้า พบว่าโอวจอร์จ เก็บ Gap จะถอนใจได้เอกสารมาอีกกองDesign ได้เอกสารมาอีกกอง Implement เริ่มเครียด เวลาเหลือน้อยเมื่อเทียบกันสิ่งที่ต้องทำIntegration Testing โอวบั๊กเยอะมาก
  14. Develop RFPกระบวนการรวบรวมสิ่งที่อยากได้ทั้งหมดเขียนเป็น Request For Proposal, Present Proposal โชว์ว่าทำได้ทุกอย่าง compile หมดทุกข้อเข้ากระบวนการจัดซื้อ ต่อรองราคา(เพิ่งโม้ไปเยอะว่าทำได้), Analysis ลงไปรับ requirement จากลูกค้า พบว่าโอวจอร์จ เก็บ Gap จะถอนใจได้เอกสารมาอีกกองDesign ได้เอกสารมาอีกกอง Implement เริ่มเครียด เวลาเหลือน้อยเมื่อเทียบกันสิ่งที่ต้องทำIntegration Testing โอวบั๊กเยอะมาก
  15. มีหน้าที่ที่ชัดเจน เชี่ยวชาญงานที่ทำมากๆ มีการกำหนด KPI และตัววัดที่ชัดเจนได้ง่าย แต่ Hop มันจะเยอะหน่อย
  16. เอา Waterfall มากลับด้านใหม่เราจะไม่แยกทุกอย่างออกจากกันเป็นphase ของการทำงานแต่จะเป็น phase ของ features แทน ? แล้วเราเอากระบวนที่เราทำใน waterfall มา repeat ทุกๆ phase ดังนั้นเราจะเห็นว่า team ของ Agile จะไม่สามารถแบ่งเป็น role ได้ เพราะทุกๆ phase หรือ iteration นั้นจะต้องทำทุกอย่างใหม่เกือบหมดลูกค้าเลือก feature ที่ต้องการเห็นก่อน(ไม่ใช่ แผนงามๆ) Analyst-&gt;Design-&gt;Code(Test TestTest)-&gt;Test-&gt;Integration-&gt;Deployดังนั้น Software ที่ถุกสร้างภายให้ Agile Methodology จะต้องมีความยืดหยุ่นสูงมาก ทนต่อการเปลี่ยนแปลง
  17. Three simple truths ที่เราต้องทำใจยอมรับก่อนเข้าลัทธิ Agile คือ
  18. ได้ผลออกมาทั้งคู่ แต่ Waterfall จะเหนื่อยกว่านิดนึงตรงที่กระบวนการทำงานไม่เปิดโอกาสให้ user ได้เข้ามาเห็นผลงานจนกว่าจะเสร็จแล้วซึ่งบางทีเพี้ยนไปมาก แต่ agile เองก็ยังไม่เป็นที่ยอมรับขององค์กร ดังนั้น อย่ารอ เราจึงเอาส่วนที่ทำได้มาทำก่อนแต่การจะได้มาซึ่งสิ่งนั้น Programmer ต้องมีวินัยสูงมากๆ สูงยังไงมาดูหรือถ้าทำ
  19. บางคนถอดใจไม่เข้าใจ ไม่ทำงาน เซ็ง ติสต์แตก
  20. แทนที่เราจะนั่งเสียหัวกับเรื่องเอกสารเรื่อง requirementไม่นิ่ง ยิ่งเราพยายามทำให้มันนิ่งมันยิ่งดิ้น ดังนั้นเราหันกลับด้านมาทำซอฟท์แวร์ให้ maintain ได้ง่านเพื่อให้มันดิ้นได้ทัน requirement จะดีกว่าไหม7-11 จะออกมาดี ช่างต้องมี skill ที่ดีด้วย
  21. Codingสมัยใหม่อาจไม่ใช่สมการทางคณิตศาสตร์แล้ว ก่อนหน้านี้เราอาจมีข้อจำกัดเรื่อง Hardware: Memory, CPU หรือ Storage แต่ปัจจุบันเราผ่านพ้นเรื่องเหล่านั้นมาไกลแล้ว Hardware ราคาไม่แพงแล้วแต่ที่แพงกว่าคือค่าดูแลรักษา Software ดังนั้นเราควรจะเปลี่ยนมุมมองการเขียน Code เสียใหม่ให้เป็นเหมือนกับการเขียน “นิยาย”
  22. แบบนี้อ่านง่ายและเข้าใจมากกว่าไหม ครับดังนั้นการเขียน Software มันคือการเรียบเรียงความคิดและเขียน นิยาย ยาวๆออกมาหนึ่งเรื่อง ดังนั้นในโลกแห่งความเป็นจริงการสร้างSoftware คือการจำลอง Business Process ของลูกค้าลงมาให้เป็นภาษา programming มันคือการเขียนเอกสารเป็นการ represent ออกมาด้วยภาษาอื่นๆนั่นเอง ดังนั้นเป็นโปรแกรมเมอร์เองก็ต้องเล่าเรื่องให้เป็น ให้คนเข้าใจ ไปหัดเขียนจดหมายรักจีบสาวก็จะดี
  23. Comment เป็นเรื่องที่ดี แต่ comment ไม่ได้ตามตัวแปรไปทุกที่นะครับ
  24. มันทำอะไร?
  25. Meaningful Name, Pronounceable Name
  26. ประมาณ15-20 นาที
  27. พฤติกรรมของ Developer หน้าใหม่ไร้สิวคือ เขียนไปเรื่อยๆ ทับไปเรื่อยๆ แล้วก็หาที่กลับไม่เจอCode อยู่ไหน ของใครถูกใครเขียนทับผมไม่ได้ทำเมื่อวานwork นี่ไม่ใช่ code ผมทำไม copy มาไม่ครบไอ้ที่ copy มานี่ถูกแล้วหรอ
  28. ของใช้ส่วนตัวของโปรแกรมเมอร์ที่เราต้องมีไว้ใช้งานเสมอ
  29. For example, an alarm clock program which causes a bell to ring at a certain time might get the current time from the outside world. To test this, the test must wait until the alarm time to know whether it has rung the bell correctly. If a mock object is used in place of the real object, it can be programmed to provide the bell-ringing time (whether it is actually that time or not) so that the alarm clock program can be tested in isolation.
  30. เอา code ของทุกคนมาแล้ว execute รวมหมด