Saturday, March 5, 2016

How to Do System Desgin



https://medium.com/freshbooks-product-development/how-freshbooks-democratizes-technical-design-by-applying-lean-ux-principles-873a020dd790
Your tech leads shouldn’t be the only ones tackling complex technical problems. With a process that is collaborative, transparent and iterative, any developer can be empowered to solve problems effectively.

The status quo: An exclusive and opaque process

The prevailing philosophy in software is that the most senior developers should be ones solving the most complex problems. This typically means that tech leaders are tasked with coming up with the designs that are then disseminated to other developers.

It just doesn’t scale

  1. Charrette (Ideation): A brainstorming and sketching session involving a cross-discipline group (Designers, PM, Dev, QA, etc.).
  2. Design Circle (Internal Validation): The sketches/prototypes are critiqued by a larger group within the company (mostly other Designers and PMs, ideally with Devs involved).
  3. User Testing (External Validation): A refined prototype is presented to real customers for the purposes of testing some of our assumptions and getting feedback.
  4. Design Circle (Review & Iterate): The insights gained from User Testing are brought back to the larger internal group, discussed and then used by a designer to further refine the design.
  5. Repeat above as needed.

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts