-- section # Science-Friction ##
A (frictional) story about fighting
friction in project development
-- section # Science-Friction ## A (frictional) story about fighting
friction in project development -- who-we-are # Trabe * David Barral * [david@trabe.io](mailto:david@trabe.io) * Asís García * [asis@trabe.io](mailto:asis@trabe.io) -- # Some context * Small company (13 people, today). * 15+ years in the business. * Developing for big companies with their own processes, software and stacks. -- # What we do (mainly) * React based frontend framework. * Node.js microservices framework. * Management apps, React + Java/Ruby on Rails. -- # Objective Share our 15+ years stories of science-friction. -- # Disclaimer ## A bitter perspective 😅. -- toc # Everyday frictions * Definition (or the art of BS) * Domain knowledge * Customer interaction / collaboration * The environment * Development process * Tests, validation, quality assurance * Documentation * Support * Refactoring and rewritting -- # Definition ## ...or the art of BS * Hard to have good meetings. * Meetings with the wrong person. * Lack of specification: RFQ or RFWTF? * Crazy expectations. "This is so easy!" -- 1. Avoid meetings. 1. Find the right representative. 1. Be assertive: ask for more info. 1. Be assertive: point missing topics. 1. If nothing works: reject the project. -- # Domain knowledge * Domain knowledge assumptions. * Lack of shared vocabulary. * Detail hidden by generalization. -- 1. Don't be ashamed. If you don't know something, just say it. 1. Try to establish a shared vocabulary. 1. Do not assume. Confirm. -- # Customer interaction/collaboration * External management/micromanagement. * Unilateral milestones. * Team culture clashes. * Customer idiosyncrasies: whiny-driven-development. * Missing/bad/lacking dependencies. -- 1. Try to define red lines 😅. Manage your own team. 1. Be explicit about milestones 😅. 1. Do not mix teams. Be a good guest. 1. Be explicit about tradeoffs. 1. Ask for what you need as many times needed. Otherwise, use workarounds. -- # The environment * Your env vs your customer env (multiple environments). -- 1. If the customer environment is acceptable, just use it. 1. If not, use our own, automate integration. -- # Development process * Different technologies and tools. * Tooling that helps (but doesn't 😅). -- 1. If you don't master the technology: pass on the gig or be honest. 1. If the tools are a burden try to bypass them. 1. If the tools are "acceptable" just use them. Do not duplicate. -- # Tests, validation, quality assurance * Quality gates vs reality. * Bugs and response times. * Not all errors are created equal. -- 1. Favour quality tests over coverage. 1. Respond quickly. 1. Establish a framework to know what's critical. -- # Documentation * Customer's formats vs adequate formats. -- 1. There's nothing much you can do 🤷. Be convincing or just go with the flow. -- # Support * (Almost) Semantic versioning. * People do not read. * API pollution. * Support channels madness. -- 1. Enforce semantic versioning. 1. Have good/complete/clear documentation. 1. Have good changelogs/migration guides 🤦. 1. Fight for your APIs 😬. 1. Try to establish a unique support channel (lost battle 😅). -- # Refactoring/Rewritting * No one pays for a refactoring. * NO ONE pays for a rewritting. -- 1. Sometimes, you just gotta do it (for you). 2. Be convincing: sell your refactoring as a feature. 3. If the project needs a rewrite, and you can't, RUN, YOU FOOLS!
🏃💨💨💨💨💨💨💨
-- # Summing up * Working with others is hard. * There's so much you can control. * Be assertive. Be convincing. Avoid BS (oh! the irony!). * Try to get your own way as much as possible. * Try to keep things simple. * If you can't, just go with the flow. It's just a job. -- # Q&A ## Ask about anything related to software or Trabe. -- # Hiring time! ## Yep! We are doing this. -- # Looking for... * Experienced React frontend developers. * Experienced Node.js backend developers. * Experienced Java backend developers. * Novice developers. -- # Perks * Salary 20-30K+ based on level/experience + bonus. * 100% remoting (if you want to). * 37,5h weeks and 35h weeks during the 3 summer months. * Health insurance. Remoting plus. Be.side, etc. -- # rrhh@trabe.io ## Tell us about yourself * What you can do. * What you want to do. * What you know. * What you don't know. * And, what do you expect from Trabe. -- # Q&A ## Ask about anything about the job. -- # Merry Cheers-mas!