FTKONF-051
Amikor a főnököd elavult technológiát erőltet
Helyzet
„Hogyan változtassam meg hatékonyan a főnök technológiai hozzáállását, ha én építem majd a projektet?” · „How to effectively change a boss's mindset on technology choices when I will be the one building a project?” · szerző: Douglas Gaskell · CC BY-SA
Egy távmunkában dolgozó full-stack fejlesztő egy kis (10 fő alatti) cégnél dolgozik, ahol a cégvezető a 2000-es évek közepén megszokott eszközökhöz és gyakorlatokhoz ragaszkodik (nincs verziókezelés, nincs HTTPS, jelszavak sima szövegben). A vezető lelkesen rábízna a fejlesztőre egy nagy, komplex projektet (pontosan olyat, amilyenre a fejlesztő vágyik, kreatív kontrollal), ám ragaszkodik hozzá, hogy az egészet egy arra alkalmatlan, elavult eszközzel építse meg. A fejlesztő szakmai érveire („erre ez az eszköz nem való") a válasz mindig ugyanaz: „azzal is meg lehet csinálni". A fejlesztőt ráadásul teljesen kihagyják a döntéshozatalból (megvalósíthatóság, technológiaválasztás, követelmények), miközben ő fogja megépíteni a rendszert; a motivációja emiatt elpárolgott.
A forrásposzt teljes szövege (magyarul és angolul)
Az eredeti Stack Exchange-kérdés hű magyar fordítása · szerző: Douglas Gaskell · The Workplace, q126751 · CC BY-SA.
Ugorhatsz rögtön a Konklúzióra, ha nem szeretnéd elolvasni a Hátteret és a Probléma részleteit.
Megjegyzés: távmunkában dolgozom, ami önmagában is kommunikációs kihívásokat jelent.
Gyors háttér:
Egy kis cégnél dolgozom (<10 fő), amelynek van néhány vegyes, házon belüli FileMaker-projektje, amelyek úgy egy évtizede vannak jelen. Amijük van, vagy amit csinálnak, annak nagy része a 2000-es évek közepén-végén befagyott technológiai választásokra és gyakorlatokra épül (ami önmagában nem szörnyű dolog). Ügyfelekkel dolgozom C# vagy asp.net alkalmazásaik létrehozásán, javításán vagy módosításán. Olyan helyről jöttem, ahol szervezeti szintű problémákat találhattam meg és oldhattam meg olyan eszközökkel és szoftverekkel, amelyeket én és a csapatom hoztunk létre, szinte teljes kreatív és architekturális kontrollal. Emiatt az „értékesítés-vezérelt fejlesztés" meglehetősen unalmas és demotiváló létezés. Nem igazán tudom megmozgatni a fejlesztői tudásomat, és nem sok kielégítő munkát végzek.
A főnököm (a vezérigazgató, nevezzük Frednek) nagy érdeklődést mutatott az iránt, hogy a szakértelmemet felhasználva építsek ki egy REST API-t közösségimédia-adatok és analitika feldolgozására, és hogy hozzáférést adjunk el ezekhez az adatokhoz. Én is kifejeztem érdeklődésemet, konkrétan megemlítve, hogy olyan projektre van szükségem, amelyben kreatív kontrollom van, hogy azt csinálhassam, amiben a legjobb vagyok, és legyen némi munkahelyi elégedettségem. Fred lelkesen egyetértett, hogy ezt meg kellene csinálnunk.
Fredről:
Amióta itt dolgozom, Fredet nagyon csökönyösnek ismertem meg abban, hogy ragaszkodik az általa ismert eszközökhöz és keretrendszerekhez, és azokat használja. Még ha nagyon régiek is, és sok időbe kerülnek. Odáig, hogy Fred azt hiszi, egy kedvenc eszköz bármire képes, még ha a gyakorlati korlátai nagyon világosak is. Ez kiterjed a felhasználói adatok kezelésével, a biztonsággal, valamint a kód tárolásával és kezelésével kapcsolatos régi feltételezésekre és elképzelésekre is (azaz: nincs verziókezelés, nincsenek HTTPS-tanúsítványok, nincs email-validáció, a felhasználói hitelesítő adatok sima szövegben vannak, admin fiókok 123 jelszóval, mindenhez csak FTP kell... stb.)
A probléma részletei
Az elmúlt héten Fred FileMakert használtatott velem, ami finoman szólva is nyers és frusztráló élmény volt. Nehezen boldogulok az ilyen eszközökkel, mert szinte az összes fejlesztői kontrollt elveszik, és számtalan olyan „funkció" hiányzik belőlük, amelyet szinte bármely webes keretrendszerrel és relációs adatbázis-kezelővel egyszerűen meg lehetne valósítani. Említettem, hogy ez az eszköz bizonyos dolgokban nagyszerű, másokban gyenge, de Fred azt hiszi, FileMakerrel bármit meg lehet csinálni, komplexitástól és mérettől függetlenül.
Bevallottam, hogy nem tudom, miért csináljuk ezeket a FileMaker-gyakorlatokat, és kiderült, hogy Fred már el is döntötte: a teljes webes API-t, adatfeldolgozást és adatbetöltést FileMakerben készíttetné el velem. Ami számomra, full-stack fejlesztőként, szörnyű ötletnek hangzik. Egy ilyen rendszernek számos olyan követelménye van, amelyet a FileMaker nem tud biztosítani, és relációs adatbázis-kezelőként nem alkalmas potenciálisan több milliárd soros táblák kezelésére. Arról nem is beszélve, hogy egy REST API létrehozását és kezelését az eszköz nem is támogatja.
Kifejeztem ezeket az aggályokat, de a válasz, amit kapok: „a FileMaker meg tudja csinálni".
Konklúzió
A vezérigazgató azt akarja, hogy készítsek neki egy REST API-t hatalmas mennyiségű közösségimédia-adat feldolgozására, és biztosítsak módot arra, hogy fizető ügyfelek a saját céljaikra használhassák ezt az API-t. Ez egy meglehetősen komplex, sokrétű és nagy projekt. És pont olyasmi, amire régóta vágyom. Ő azonban ragaszkodik hozzá, hogy FileMakerrel készítsem, holott az én szakértelmem a sokféle ízű full-stack fejlesztésben van. Az általam javasolt megoldás az Asp.Net Core és egy relációs adatbázis-kezelő, mint az MS-SQL, MySQL/MariaDB vagy PostgreSQL. Ezekkel az eszközökkel gyorsan tudok fejleszteni, és az irodában mások is ismerik a C#-ot, beleértve a vezérigazgatót is. Szinte bármely más nagyobb nyelvvel és webes keretrendszerrel kényelmesen elvégzem a munkát. Csak FileMakerrel nem.
Különösen az aggaszt, hogy semmilyen beleszólásom nem volt a döntéshozatali folyamatba (megvalósíthatóság, technológiaválasztás vagy követelmények). Miközben én leszek az, aki ezt az alkalmazást elkészíti.
Kérdések:
- Hogyan kerülhetek be abba a döntéshozatali folyamatba, amelyet Fred láthatóan egyedül folytat?
- Van-e bármilyen professzionális mód arra, hogy tudassam vele: hiányos vagy elavult tudás és feltételezések alapján hoz döntéseket?
- Mit tehetek, hogy meggyőzzem: ez valószínűleg megbénítja a projektet? Mind technológiai, mind fejlesztői motivációs szempontból.
- Hogyan kommunikáljam hatékonyan, hogy ez az eszköz nem fogja biztosítani azokat a funkciókat és azt a rugalmasságot, amelyre a projekt megvalósításához szükségem van?
- Hogyan kommunikáljam professzionálisan és udvariasan, hogy nem áll szándékomban a FileMakerbe invesztálni magam? Mivel ez nem olyan készség, amelyet a személyes projektjeimben hasznosnak találnék, vagy amely átvihető lenne más, engem érdeklő munkákra/cégekre.
Nem hiszem, hogy így jó munkát fogok itt végezni. Mivel a projekthez fűződő motivációm és lendületem a jelenlegi körülmények között gyakorlatilag elpárolgott.
Original Stack Exchange question · author: Douglas Gaskell · The Workplace, q126751 · CC BY-SA.
You can skip straight to the Conclusion if you don't wish to read the Background and Problem Details
Note: I do work remotely, which does present it's own challenges for communication.
Quick Background:
I work for a small company (<10 people) that has some misc in-house FileMaker projects that have been hanging around for a decade or so. Most of what they have or do relies on technology choices and practices frozen in the mid to late 2000's (which by itself isn't a terrible thing). I do work with clients to create, fix, or change their C# or asp.net applications. I came from a place where I was able to find and solve organizational-level problems with tools and software that I and my team would create, with almost complete creative and architectural control. Which has led to "sales based development" being a fairly dull and demotivating existence. I really don't get to flex my development knowledge or do much satisfying work.
My boss (CEO) (Lets call him Fred) has expressed great interest in having me use my expertise to built out an REST API to ingest social media data and analytics, and to sell access to that data. I have also expressed interest in this, specifically mentioning that I need a project with creative control so I can do what I do best and have some job satisfaction. Fred has excitedly agreed that this is something we should do.
About Fred:
In my time working here, I have known Fred to be very obstinate in sticking and using tools and frameworks he is familiar with. Even if they are very old, and cost a lot of time. To the point that Fred believes that a favorite tool can do anything, even if it's practical limits are very clear. This includes sticking to old assumptions and ideas about how to handle user data, security, and how and where to store and manage your code (ie. no source control, no HTTPS certs, no email validation, user credentials are in plaintext, admin accounts with passwords of 123, we only need FTP for everything...etc)
Problem Details
Over the last week Fred has had me using FileMaker, which has been a rough and frustrating experience to say the least. I have a tough time using such tools as it takes almost all the development control away, and is missing countless "features" that could be simply implemented with almost any web framework and and RDBMS. I've mentioned that this tool is great at some things, but poor at others, but Fred believes you can make anything with FileMaker, no matter the complexity or scope.
I confessed that I don't know why we are going through these FileMaker exercises, and it turns out that Fred is already dead-set on having me create the entire web API, data processing, and data ingestion in FileMaker. Which, to me as a full-stack dev, sounds like a terrible idea. There are numerous requirements for such a system that FileMaker cannot provide for, and it as a RDBMS is not up to the task of handling tables with potentially billions of rows. Not to mention that creating and managing a REST API is not something the tool even supports.
I have expressed these concerns, but the response I get is that "FileMaker can do that".
Conclusion
CEO wants me to make him a REST API to ingest mass amounts of social media data, and provide ways for paying customers to utilize this API for their own needs. This is a fairly complex, multi-faceted, and large project. And is something I have been biting at the bit to do. However, he insists that I make it with FileMaker, despite my expertise being in full-stack development of many flavors. My proposed solution is to use Asp.Net Core and a RDBMS like MS-SQL, MySQL/MariaDB, or PostgresSQL. As These are tools I can rapidly develop in, and others in the office know C# including the CEO. I'm comfortable using almost any other major language and web framework to get the job done. Just not FileMaker.
I am especially concerned that I have had no input into the decision making process (feasibility, technology choices, or requirements). When I will be the one creating this application.
Questions
- How do I get in on the decision making process that Fred seems to be doing solo?
- I there any professional way to clue him in that he is making decisions on incomplete or outdated knowledge and assumptions?
- What can I do to convince him that this is likely going to hamstring the project? Both from a technological standpoint, and a developer motivation standpoint.
- How do I effectively communicate that this tool will not provide the features or flexibility I need to make this project happen?
- How do I professionally and politely communicate that I have no interest in investing myself into FileMaker? As it's not a skill I find useful in my personal projects or is a skill that will be transferable to other jobs/companies that I am interested in.
I don't believe I'm going to do good work here either. As my motivation and drive for the project has all but evaporated under the current circumstances.
A közösség legjobbnak ítélt válasza (4 szavazat)
Szerző: Flater · CC BY-SA
„I've personally found that the 'simple demo' approach tends to work well in cases like this. I tend to run some tests, and convert the results in tangible metrics for non-technical managers (mostly time or money…). … In the end, it's your boss' choice, and you can't change that. … If your boss forces a particular decision, then they inherently take responsibility for the consequences."
Lényeg (magyarul): Ne szakmai hitvitát folytass; készíts egyszerű demót/tesztet, és fordítsd le az eredményt a laikus döntéshozó nyelvére: időre és pénzre (a válaszoló egy konkrét sávszélesség-költség kalkulációval győzte meg a saját vezetőjét). A régi eszközhöz ragaszkodás mögött gyakran az ismeretlentől való félelem áll; az emészthető összehasonlítás csökkenti ezt a küszöböt. Végső soron viszont a döntés a főnöké; ha ő kényszeríti ki, a következmények felelőssége is az övé; a felmerülő problémákat vidd vissza hozzá. Kiegészítő válasz (Joe Strazzere, 0): ha a vezető minden érv után is hajthatatlan, és a motivációd elfogyott, a továbblépés a reális út.
Valós forrás: „How to effectively change a boss's mindset on technology choices when I will be the one building a project?” · szerző: Douglas Gaskell · Stack Exchange / The Workplace (q126751) · CC BY-SA · magyar fordítás, anonimizálva. Az eredeti poszt →