“one man” development process model
TRANSCRIPT
![Page 1: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/1.jpg)
“One Man” Development Process ModelĐinh Quang TrungBarcamp Saigon 2015
![Page 2: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/2.jpg)
“One Man” Development Process ModelĐinh Quang TrungBarcamp Saigon 2015
...or “Best way to work on a project by your own”
![Page 3: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/3.jpg)
About me
Đinh Quang Trung
Code Writerfb.com/trungdq88
@trungdq88
github.com/trungdq88
- Writing code since 2009- Graduated FPT University 3 months ago- Web Developer at Silicon Straits Saigon
![Page 4: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/4.jpg)
Overview
1. How did I manage my projects when I was “young”
2. Problems with my process3. I learned I know how to manage my projects
correctly4. Tools and techniques I used for the process5. Tips
![Page 5: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/5.jpg)
When I check an old code of mine
![Page 6: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/6.jpg)
This presentation targets
People who- Want to be a developer- Want to be a better developer- Want to understand developers
![Page 7: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/7.jpg)
Software Development Process Models
![Page 8: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/8.jpg)
But…what if you only have
one?
![Page 9: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/9.jpg)
Project types
![Page 10: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/10.jpg)
Project types
- You do a project for a customer
As a freelancer
![Page 11: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/11.jpg)
Project types
- You do a project for a customer
As a freelancer
lasts 1 - 2 weeks
- You do a small project for your own
![Page 12: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/12.jpg)
Project types
- You do a project for a customer
As a freelancer
lasts 1 - 2 weeks
lasts longer than 1 month and could potentially become your startup!
- You do a small project for your own
- You do a BIG project for your own
![Page 13: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/13.jpg)
Common approaches
Requirement
1
![Page 14: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/14.jpg)
Common approaches
Requirement Code feature 1
1
![Page 15: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/15.jpg)
Common approaches
Requirement Code feature 1
Feature 2
Feature 3
Feature 4
1
![Page 16: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/16.jpg)
Common approaches
Requirement Code feature 1
Feature 2
Feature 3
Feature 4
1
Check if it works
![Page 17: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/17.jpg)
Common approaches
Requirement Code feature 1
Feature 2
Feature 3
Feature 4
Check if it works
Fix if it doesn’t
work
1
![Page 18: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/18.jpg)
Common approaches
Requirement Code feature 1
Feature 2
Feature 3
Feature 4
Check if it works
Fix if it doesn’t
work
Release, so everyone can
see it!
1
![Page 19: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/19.jpg)
Common approaches 1
Problems?
![Page 20: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/20.jpg)
Common approaches 1- Codebase is crap
![Page 21: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/21.jpg)
Common approaches 1- Codebase is crap- Fear of change
![Page 22: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/22.jpg)
Common approaches 1- Codebase is crap
- It becomes worse when project have more features
- Fear of change
![Page 23: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/23.jpg)
Common approaches 1- Codebase is crap
- It becomes worse when project have more features
- Fear of change
- No one else can understand my code
![Page 24: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/24.jpg)
Common approaches 1- Codebase is crap
- It becomes worse when project have more features
- Fear of change
- No one else can understand my code- I don’t understand my code
![Page 25: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/25.jpg)
So. I learned
![Page 26: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/26.jpg)
![Page 27: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/27.jpg)
Common approaches 2Requirement
![Page 28: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/28.jpg)
Common approaches 2Requirement
Design the
software
![Page 29: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/29.jpg)
Common approaches 2Requirement
Design the
software
Prepare the codebase structure
![Page 30: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/30.jpg)
Common approaches 2Requirement
Design the
software
Prepare the codebase structure
Setup environment, build tools, deploy
process...
![Page 31: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/31.jpg)
Common approaches 2Requirement
Design the
software
Prepare the codebase structure
Setup environment, build tools, deploy
process...
Code feature 1
![Page 32: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/32.jpg)
Common approaches 2Requirement
Design the
software
Prepare the codebase structure
Setup environment, build tools, deploy
process...
Feature 3
Feature 4
Release, so everyone can
see it!
Code feature 1
Feature 2
Check if it works
Fix if it doesn’t
work
![Page 33: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/33.jpg)
Common approaches 2
Still has problems
![Page 34: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/34.jpg)
Common approaches 2- Codebase is better
![Page 35: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/35.jpg)
Common approaches 2- Codebase is better- Less fear of change
![Page 36: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/36.jpg)
Common approaches 2- Codebase is better
- Slow release- Less fear of change
![Page 37: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/37.jpg)
Common approaches 2- Codebase is better
- Slow release- Less fear of change
- Sometimes I prepare things that I never use
![Page 38: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/38.jpg)
Common approaches 2- Codebase is better
- Slow release- Less fear of change
- Sometimes I prepare things that I never use- Take too much time to test features
![Page 39: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/39.jpg)
Common approaches 2- Codebase is better
- Slow release- Less fear of change
- Sometimes I prepare things that I never use- Take too much time to test features- Still no one understand my code
![Page 40: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/40.jpg)
:-(
![Page 41: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/41.jpg)
What we want?
- A beautiful codebase that you proud of and want to work on it in the future.
- Well documented for anyone who want to join the project
- Quality control for your project so that you can continue to develop without the fear of breaking something accidently
- Stable release schedule, well defined features and versions
![Page 42: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/42.jpg)
Code quality Fast release
![Page 43: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/43.jpg)
Project grows
![Page 44: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/44.jpg)
Feature
![Page 45: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/45.jpg)
![Page 46: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/46.jpg)
What we want
![Page 47: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/47.jpg)
![Page 48: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/48.jpg)
![Page 49: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/49.jpg)
![Page 50: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/50.jpg)
![Page 51: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/51.jpg)
![Page 52: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/52.jpg)
![Page 53: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/53.jpg)
Code
Refactor
![Page 54: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/54.jpg)
Slow release?
Break your project into versions
1.0.0Feature 1Feature 2Feature 31.1.0Feature 4Feature 5Feature 6
1.2.0● Feature 7:
○ Smaller feature 1○ Smaller feature 2○ Smaller feature 3○ Smaller feature 4○ Smaller feature 5
● Feature 8● Feature 9
![Page 55: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/55.jpg)
No one understand my code?
Write documents
- Comment in your code
- Explain your code structure, architecture…
- Draw diagrams
- Write instruction for setup steps, deployment process, tools used…
![Page 56: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/56.jpg)
Write a lot of tests
- Tests is the only thing can make sure that you don’t accidently break something when changing/refactoring your source code
- Test techniques:- Unit tests- Automation tests
![Page 57: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/57.jpg)
Project Quality
Code
TestDocsStructure
Versions
Works
Effort
![Page 58: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/58.jpg)
Project QualityCode
TestDocsStructure
Versions
Works
Effort
CodeTest
Docs
Structure
Versions
Works
Effort
![Page 59: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/59.jpg)
Project Quality
Code TestDocs
Structure Versions
Works
Effort
Code
TestDocsStructure
Versions
Works
Effort
CodeTest
Docs
Structure
Versions
Works
Effort
![Page 60: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/60.jpg)
Project Quality
Code TestDocs
Structure Versions
Works
Effort
Code
TestDocsStructure
Versions
Works
Effort
CodeTest
DocsStructure Versions
Works
Effort
CodeTest
Docs
Structure
Versions
Works
Effort
![Page 61: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/61.jpg)
Use tools to help you
![Page 62: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/62.jpg)
Use tools to help you
- Source controls: Git, SVN- Issue tracking: Github, Bitbucket or even a todo list.- Documentation: Google Docs, Github and Bitbucket also
supports wiki for documents- Version management: Milestone (in Github), Versions
(Bitbucket)- Diagrams: LucidChart- Test runner (or CI): Travis CI, Jenkins
![Page 64: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/64.jpg)
The Pomodoro technique
![Page 65: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/65.jpg)
My workflow 2
Having an idea
![Page 66: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/66.jpg)
My workflow 2
Having an idea
Define all features
![Page 67: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/67.jpg)
My workflow 2
Having an idea
Define all features
Break features into
versions
![Page 68: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/68.jpg)
My workflow 2
Having an idea
Define all features
Break features into
versions
Pick a feature to work on it
![Page 69: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/69.jpg)
My workflow 2
Make it work
in code
Having an idea
Define all features
Break features into
versions
Pick a feature to work on it
![Page 70: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/70.jpg)
My workflow 2
Make it work
in code
Test it(and write test
cases)
Having an idea
Define all features
Break features into
versions
Pick a feature to work on it
![Page 71: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/71.jpg)
My workflow 2
Make it work
in code
Test it(and write test
cases)
Having an idea
Define all features
Break features into
versions
Pick a feature to work on it
Refactor code
(if needed)
![Page 72: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/72.jpg)
My workflow 2
Make it work
in code
Test it(and write test
cases)
Having an idea
Define all features
Break features into
versions
Pick a feature to work on it
Refactor code
(if needed)
Write document(diagrams,
setup guide, READMEs…)
![Page 73: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/73.jpg)
My workflow 2
Make it work
in code
Test it(and write test
cases)
Having an idea
Define all features
Break features into
versions
Pick a feature to work on it
Refactor code
(if needed)
Write document(diagrams,
setup guide, READMEs…)
![Page 74: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/74.jpg)
My workflow 2
Make it work
in code
Test it(and write test
cases)
Having an idea
Define all features
Break features into
versions
Pick a feature to work on it
Refactor code
(if needed)
Write document(diagrams,
setup guide, READMEs…)
Release version
![Page 75: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/75.jpg)
My workflow 2
Make it work
in code
Test it(and write test
cases)
Having an idea
Define all features
Break features into
versions
Pick a feature to work on it
Refactor code
(if needed)
Write document(diagrams,
setup guide, READMEs…)
Release version
![Page 76: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/76.jpg)
Tips to prepare your mind
![Page 77: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/77.jpg)
Know your targets
Why are you doing this project?
![Page 78: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/78.jpg)
YOU are the only onewho knows what’s going on in the code
Don’t let this happen
![Page 79: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/79.jpg)
Make a project something that you proud of
![Page 80: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/80.jpg)
Deliver whole project, not only the executables or the code
- Executables (.apk, .war, .exe…)- Source code- Documents- Diagrams- Test cases- ...
![Page 81: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/81.jpg)
Be ready to welcome contributors!
![Page 82: “One man” development process model](https://reader036.vdocuments.net/reader036/viewer/2022081604/58a3d87d1a28ab7f0b8b4e77/html5/thumbnails/82.jpg)
Thank youfb.com/trungdq88
@trungdq88
github.com/trungdq88