Hear how SK Hynix, the world's second-largest memory chipmaker and the world's sixth-largest semiconductor company, uses Perforce Streams for globally distributed development of their Flash memory solutions.
2. #
Graduated from the Seoul National University, Korea
MS and Ph.D.(candidacy) from North Carolina State University
Lead Software Developer at BMC Software
VP, Linux Technology Group, Samsung Electronics
Director, Systems Software, Android Platform Team at nVIDIA
Currently, SVP, Software Engineering TF at SK hynix
3. #
[CAGR]
30%
64%
48%
22%
Others
SSD
eMMC
PPN
[ Unit : Bpcs, 16Gb Eq.]
“ The demand of NAND
Solution products are
increased continuously
as like SSD, eMMC… ”
Source: SK hynix marketing, Mar. 2014
4. #
Raw NAND Features of NAND Solution
NAND Solution
Controller
Firmware
V&V
Development
Hardware + Software
Agility for prompt Technology Shift
High Quality of Software
Cross Development environment
5. #
Our Development Environment
Distributed Development
Global Collaboration
Cross-Functional
Merge & Acquisition
Complexity
Europe
Korea
Taiwan
US
“Global Real-time Development by Perforce”
6. #
//SSD/…
//SSD/sandbox/…
//SSD/private/…
//SSD/sandbox/shin/…
//SSD/sandbox/mark/…
…
//SSD/private/jim/…
//SSD/private/li/…
…
Drawbacks of classic branch
Lack of Visibility
Hard Traceability
Difficult to identify Directive
Lack of Controllability
?
7. #
• Obtain the Global Visibility
– Modeling Development Lifecycle
• Intuitive Integration
– How to propagate the changes
• Unified Development Capability
– Same working environments (Tools, Interface and Process)
8. Stream helps us
#
• Benefits of Stream
– Codeline management (main/dev/rel types)
– Modeling development cycle
– Intuitive developer actions (green, gray and red arrows)
– Easy workspace management (One workspace)
– Inheritance of parent stream attributes
9. #
Stream Depots
Collaboration with Legacy Depot
Two layer Depth
- Easy to find the target/source
Stream Type
Main / Dev / Rel / Virtual
10. Stream Naming Conventions (ex..)
#
• For Release Stream
– Prjname_CustomerName_Rev#
• For Dev Stream
– Target_Purpose ( No restriction )
• For Virtual Stream
– Prjname_CustomerName_Rev#_bin
11. #
• Global Collaboration
– Seamless distributed working sites
• Visualization of Project Roadmap
– Lifecycle management from Dev to Rel
• Increasing the Productivity
– Same tools in everywhere
12. #
Young Choe
young.choe@sk.com
youngkchoe@gmail.com
Editor's Notes
No Unique view for distributed environments
Only see in Revision Graph of File
Very difficult to figure out Current Status
Folder structure is not Intuitive
Hard to find source and target branch