Tech Culture in Startups

Tech Culture in Startups

Alex Beletsky is Lead Architect blogfoster GmbH, meeting fast growing Ukranian startup Preply.com to share some insights on building high quality and productive tech culture, based on full stack development, XP practices, Agile and fun.

F32f547e66f3b6528376d67fdb67008f?s=128

Alexander Beletsky

May 19, 2017
Tweet

Transcript

  1. TECH CULTURE in STARTUPS Kiev, May 2017

  2. Alexander Beletsky Ph.D, Software Engineer, Lead Architect at blogfoster GmbH

    http://beletsky.net https://github.com/alexbeletsky @alexbeletsky
  3. Full Stack Development Less specialization, more generalization.

  4. Back End REST API’s, Databases, Sockets, AWS, Message Queues etc..

  5. Front End JavaScript, ES6, HTML/CSS, React.js / Redux, Webpack etc…

  6. Full Stack Culture One Developer One Feature One Release Being

    able to produce the features, not just a code pieces.
  7. Embrace Full Stack It’s cheeper, faster more productive and fun

  8. XP Practices How to do right things.

  9. Continuous Integration The codebase is in deployable state. Always.

  10. master develop branches • No direct commits • Always green

    • Accepts merges from `develop` branch • Always reflects the current production • No direct commits • Always green • Merges from `feature_branches` branches • Always reflects the current staging env • Anytime could be merged to `master` and deployed • Work happens here • Rebased from `develop` branch • Could be red, but not for a long time • Source for pull requests to `develop` branch • Should take care of breaking changes
  11. None
  12. None
  13. Code Review & Pair Programming Early problem detection and knowledge

    sharing.
  14. .. just start the discussion

  15. The Good Code Review possible if: • Reviewer has better

    qualification • Reviewer fully understands user story • Reviewer is able to test the story
  16. The First Rule of Code Review

  17. The First Rule of Code Review &QPņVDGCPCUUJQNG

  18. Test Driven Development A program that has not been tested

    does not work.
  19. None
  20. The Good TDD possible if: • Team has high qualification

    & experience • Team shares the same technical values and discipline • Team cares about quality of their output
  21. from TDD to BDD Behavior driven development is the way

    of testing, where focus is placed into behavior of whole system, not implementation details of particular function.
  22. Works great for REST API testing

  23. None
  24. Embrace XP It’s time-proven, scalable, for predictable results

  25. XP Practices, work only for team of responsible professionals..

  26. Engineering Processes How to do right things with Agile approach.

  27. Product & Sprint Backlogs The overview of what need to

    be done.
  28. Resource Planning Estimate the available resources for a sprint.

  29. Planning Poker Estimate each story from a product backlog.

  30. None
  31. Commit to the Plan Everyone have to be confident and

    commit to the plan.
  32. Execute it 2 weeks sprint. Features which are ready immediately

    deployed.
  33. Demo Day & Retrospective Reflect what’s been archived in 2

    weeks.
  34. Embrace Agile It’s iterative, easy to understand, lightweight

  35. Business & Technology We are on the same boat.

  36. Clear Business Goals (OKR’s) Objective-Key-Results brings a transparency for a

    whole company.
  37. Regular "all-hands" meetings Because you have to understand what guys

    from other department do.
  38. Regular company based retrospective Based on OKR’s or not, successes

    and failures all have to be visible.
  39. P.S. It has to be fun :)

  40. Build the Culture Culture is very important, even for early-days

    startup. Good culture in tech teams would make you feel being a part of something important, take your job seriously and grow as professional together with company.
  41. THANKS,