การเขียนโปรแกรมมีสิ่งหนึ่งซึ่งต้องคำนึงถึงคือ เวลาที่ใช้ กับความยืดหยุ่นของโปรแกรมที่เขียนไอ้ความยืดหยุ่นคืออะไร ? ความยืดหยุ่นของโปรแกรมทั่วๆไปแบ่งได้ ๒ อย่างคือ Mechanism(กลไก) และ Policy(นโยบาย) . Mechanism หมายถึง โปรแกรมของเราสามารถทำอะไรได้? ส่วน Policy หมายถึง ความสามารถของโปรแกรมของเราจะใช้งานได้อย่างไร? โดยปกติสิ่งที่ Device Driver ของเราจะต้องมีคือ Machanism ไม่ใช่ Policy
เวลาเขียน Device Driver เราต้องให้ความใส่ใจกับ concept พื้นฐานด้วยเพื่อให้ driver เราทำงานกับส่วนอื่นๆ ของระบบๆได้ อย่างที่กล่าวไว้ข้างต้นคือ Device Driver จะไม่ provide policy ฉะนั้นในส่วนของ application จะต้องรับผิดชอบหน้าที่นี้. แต่ในบางครั้ง Device Driver อาจต้องสร้างข้อกำหนดบ้าง เพื่อป้องกันการ access บางส่วนของ h/w หรือควบคุมรูปแบบการ access บางอย่าง
ในมุมมองอื่น เราอาจจะมองโปรแกรมทั้งหมดเป็นชั้นๆ คือชั้นล่างสุดคือตัว h/w ชั้นกลางซึ่งก็คือ driver และชั้นบน ซึ่งเป็นชั้นของ user program ทั่วๆไป และอาจจะสามารถ access h/w ตัวเดียวกันได้พร้อมๆกันจากหลายๆโปรแกรมโดยปกติแล้วโปรแกรม driver และ user program จะแยกไม่เกี่ยวข้องกัน แต่ในบางกรณีก็ release user program มาพร้อมๆกับตัว Device Driver