Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Build Sustainable Digital Product as Software Developer

Build Sustainable Digital Product as Software Developer

An explanation some tips how to build sustainable digital product as software developer

Didik Tri Susanto

June 28, 2021
Tweet

More Decks by Didik Tri Susanto

Other Decks in Programming

Transcript

  1. Please Remember 5M 1. Mencuci Tangan 2. Menjaga Jarak 3.

    Memakai Masker 4. Menjauhi Kerumunan 5. Mengurangi Mobilitas
  2. About Me • Didik Tri Susanto • Informatic Engineering, UIN

    Maulana Malik Ibrahim Malang • Software Developer, Tech Lead at Avana • Twitter: @didikz • Linkedin: Didik Tri Susanto • Blog: medium.com/teknomuslim • Github: @didikz
  3. Ability to be developed, ability to be always operational (reliable),

    so it can give impact / benefit to user and gaining profit for business owner
  4. Why is so important? 1. Software as main platform /

    Digital Company 2. Tech is changing and always evolving 3. Business Competition 4. Building software is hard
  5. Choosing Tech Stack 1. Suitable for your project 2. Have

    great support / community 3. Comfortable for you & your team 4. On budget
  6. How about infra & architecture? Cloud or Serverless or Simple

    Hosting Provider Monolith vs Microservices
  7. Technical Debt happens when... 1. No proper plan 2. Unreasonable

    Deadline -> Cutting Corner 3. Inexperience of building software 4. Business Requirement Changes
  8. Dealing with Technical Debt 1. Talk to stakeholder / Product

    owner 2. Document it and set prioritize 3. Make proper plan to refactor or write code 4. Automate your test 5. Code Review regularly
  9. Benefit of Test Automation 1. Stability 2. Faster Release 3.

    Higher Productivity 4. Scalable Code 5. Confidence to Refactor
  10. Talking About Performance... • Database Optimization ◦ Careful about your

    query statement & Index your important column ◦ Separate read & write DB • Network I/O ◦ Careful about calling 3rd party APIs • Server resources ◦ Use auto scaling mechanism • Better Error Handling • Cloudflare & CDN Services
  11. Performance Metrics • Reduce API Response Time • 99% uptime

    • Good Result Google Page Insight • Fast page load • Clear Error Response • Ability to handling xx RPS (depends on product requirement) • Etc...
  12. 1. Test Case / Test Scenario 2. Product Requirement Document

    3. APIs Documentation 4. Technical Documentation
  13. • Ask yourself, do you really need it? • Plan

    Properly, calculate every aspect (cost, BC possibility, stack limitation, time) • Make sure all documentation & team ready • Migrate partially instead of big bang migration • You may ended up maintaining 2 different versions
  14. Final Words • Bear in mind, software is always changing

    • Define your Engineering KPI / Goals / Metrics • Enhance your engineering culture / development workflow • Listen to your user • Growth your engineering team’s skills