สำหรับนักพัฒนาซอฟต์แวร์นั้นระหว่างที่เขียนโค้ดอยู่หลายครั้งอาจเกิดความไม่มั่นใจว่าโค้ดที่กำลังเขียนอยู่นั้นอยู่ในแบบแผนที่ดีและดักข้อผิดพลาดได้ครอบคลุมหรือไม่ และทางแก้ที่นิยมใช้กันก็คือการค้นหาตัวอย่างผ่าน Google แต่หากมีวิธีที่ดีกว่านั้น? หาก Machine Learning สามารถช่วยแนะนำได้ว่าควรเขียนโค้ดอย่างไร? Facebook นำเสนอ Aroma เครื่องมือแนะนำโค้ดที่จะช่วยเรื่องนี้โดยเฉพาะ
Aroma นั้นเป็นเครื่องมือที่จะทำการสแกน Codebase เพื่อมองหารูปแบบการเขียนโค้ดที่ถูกใช้บ่อยสำหรับโค้ดส่วนที่นักพัฒนากำลังเขียนอยู่ เป็นต้นว่าหากกำลังเขียนโค้ดที่ใช้ InputStream รับไฟล์เข้ามาประมวลผล เครื่องมือ Aroma ก็จะสามารถค้นหาโค้ดที่อยู่ในโปรเจกต์และแนะนำได้ว่าควรจะเขียนโค้ดเพื่อรองรับกรณีเกิด IOException ด้วย

Aroma ทำงานด้วยการแปลงโค้ดใน Codebase เป็น (Abstract) Syntax Tree และคัดเลือกส่วนประกอบที่สำคัญในโค้ดไปสร้าง Sparse Vector หลายๆตัวเก็บไว้เพื่อการค้นหา เมื่อนักพัฒนาเขียนโค้ดขึ้น Aroma จะคำนวณ Dot Products ของโค้ดที่เขียนใหม่เข้ากับ Sparse Vector แต่ละตัวที่เก็บไว้ และคัดตัวที่มีค่า Dot Product มากที่สุด(ซึ่งแปลว่าโค้ดมีความคล้ายคลึงกัน) 1,000 ลำดับ จากนั้นก็จะทำการจัดกลุ่มโค้ดเหล่านี้และหากลุ่มที่มีความใกล้เคียงกับโค้ดที่เขียนใหม่มากที่สุดขึ้นมา
Aroma ทำงานด้วยการแปลงโค้ดใน Codebase เป็น Syntax Tree และคัดเลือกส่วนประกอบที่สำคัญในโค้ดไปสร้าง Sparse Vector หลายๆตัวเก็บไว้เพื่อการค้นหา เมื่อนักพัฒนาเขียนโค้ดขึ้น Aroma จะคำนวณ Dot Products ของโค้ดที่เขียนใหม่เข้ากับ Sparse Vector แต่ละตัวที่เก็บไว้ และคัดตัวที่มีค่า Dot Product มากที่สุด(ซึ่งแปลว่าโค้ดมีความคล้ายคลึงกัน) 1,000 ลำดับ จากนั้นก็จะทำการจัดกลุ่มโค้ดเหล่านี้และหากลุ่มที่มีความใกล้เคียงกับโค้ดที่เขียนใหม่มากที่สุดขึ้นมา
เมื่อได้กลุ่มของโค้ดที่คล้ายกันที่สุดมาแล้ว Aroma จะทำการแนะนำโค้ดให้ผู้ใช้ โดยใช้อัลกอริทึม Intersect ส่วนที่พบบ่อยในบรรดาโค้ดทั้งหลายในกลุ่มออกมา
ด้วยวิธีเช่นนี้ Aroma จึงสามารถค้นหาโค้ดที่คล้ายๆกันและแนะนำผู้ใช้ได้อย่างมีประสิทธิภาพ ต่างจากการค้นหาทั่วไปที่มักเป็นการค้นหาคีย์เวิร์ดและไม่มีการจัดกลุ่ม นอกจากนี้ Aroma ยังทำงานได้รวดเร็วระดับวินาที และใช้ได้กับ Codebase ทุกภาษา
ปัจจุบัน Facebook มีการใช้งานเครื่องมือนี้แล้วสำหรับงานพัฒนาภายในกับภาษา Hack, JavaScript, Python, และ Java และมีการนำไปใช้งานในโปรเจกต์ Open Source ด้วย (แต่ยังไม่เปิดเผยถึงรายละเอียดหรือเปิดโค้ดบน Github)
สำหรับท่านใดสนใจศึกษารายละเอียดการทำงานของ Aroma เพิ่มเติม สามารถเข้าไปอ่านเปเปอร์ได้ที่นี่