Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "mvp"
Fuck the memes.
Fuck the framework battles.
Fuck the language battles.
Fuck the titles.
Anybody who has been in this field long enough knows that it doesn't matter if your linus fucking torvalds, there is no human who has lived or ever will live that simultaneously understands, knows, and remembers how to implement, in multiple languages, the following:
- jest mocks for complex React components (partial mocks, full mocks, no mocks at all!)
- token cancellation for asynchronous Tasks in C#
- fullstack CRUD, REST, and websocket communication (throw in gRPC for bonus points)
- database query optimization, seeding, and design
- nginx routing, https redirection
- build automation with full test coverage and environment consideration
- docker container versioning, restoration, and cleanup
- internationalization on both the front AND backends
- secret storage, security audits
- package management, maintenence, and deprecation reviews
- integrating with dozens of APIs
- fucking how to center a div
and that's a _comically_ incomplete list; barely scratches the surface of the full range of what a dev can encounter in a given day of writing software
have many of us probably done one or even all of these at different times? surely.
but does that mean we are supposed to draw that up at a moment's notice some cookie-cutter solution like a fucking robot and spit out an answer on a fax sheet?
recruiters, if you read this site (perhaps only the good ones do anyway so its wasted oxygen), just know that whoever you hire its literally the luck of the draw of how well they perform during the interview. sure, perhaps some perform better, but you can never know how good someone is until they literally start working at your org, so... have fun with that.
Oh and I almost forgot, again for you recruiters, on top of that list which you probably won't ever understand for the entirety of your lives, you can also add writing documentation, backup scripts, and orchestrating / administrating fucking JIRA or actually any somewhat technical dashboard like a CMS or website, because once again, the devs are the only truly competent ones - and i don't even mean in a technical sense, i mean in a HUMAN sense of GETTING SHIT DONE IN GENERAL.
There's literally 2 types of people in the world: those who sit around drawing flow charts and talking on the phone all day, and those WHO LITERALLY FUCKING BUILD THE WORLD
why don't i just run the whole fucking company at this point? you guys are "celebrating" that you made literally $5 dollars from a single customer and i'm just sitting here coding 12 hours a day like all is fine and well
i'm so ANGRY its always the same no matter where i go, non-technical people have just no clue, even when you implore them how long things take, they just nod and smile and say "we'll do it the MVP way". sure, fine, you can do that like 2 or 3 times, but not for 6 fucking months until you have a stack of "MVPs" that come toppling down like the garbage they are.
How do expect to keep the "momentum" of your customers and sales (I hope you can hear the hatred of each of these market words as I type them) if the entire system is glued together with ducktape because YOU wanted to expedite the feature by doing it the EASY way instead of the RIGHT way. god, just forget it, nobody is going to listen anyway, its like the 5th time a row in my life
we NEED tests!
we NEED to know our code coverage!
we NEED to design our system to handle large amounts of traffic!
we NEED detailed logging!
we NEED to start building an exception database!
BILBO BAGGINS! I'm not trying to hurt you! I'm trying to help you!
Don't really know what this rant was, I'm just raging and all over the place at the universe. I'm going to bed.20
My side SaaS project made more money in its first month (built late winter last year, MVP released after ~3 weeks of development) than the sTaRtUp I work for over its total lifetime so far (built over 3+ months, MVP released in May last year)
...is it time to rage quit?
Often I have dreams of going full-time solo dev, leaving every idiotic, clueless, fumbling clown behind, but I feel like I just don't have the financial runway to do it. However, even from just a few months in 2021 while I was on the job hunt, I created some side revenue streams which I'm still receiving decent revenues from (selling courses, saas products, minor freelancing). I'm just not 100% sure if I was "lucky" during this time period, or if a few more months going at it I'd be able to scrape my way towards a meager (though livable!) income.
Give me biased views, devRant!6
Positive story ahead.
Had to try and make a new system on my own in a company with no tech staff. I was scared shitless of the responsibility. About a year later we got 2 new devs and people are somehow paying for our very flawed and incomplete mvp.
It's fulfilling and fun. Taking something from zero and suddenly having an actual application with customers.
The other 2 engineers are fun and we talk shit while coding and teaching each other. We also study new tech every day to keep getting better.
I'm even getting some stocks soon.
Long road ahead but honestly, life's good.
Me: I've not done this before, so any guess would be pure assumption.
Client: Okay, but still, you would have some idea, right?
Me: It might get done in 3 days or may take even 30.
After 3 days:
Client: But you said that it will be done in 3 days. Now you are saying there MVP is not ready. Do you even know, your part is the most critical one in the project. We believed in you. We trusted you. This is insane. It was a wrong decision to choose you.
Me (in my head): Didn't I say, this is the first time I am trying to scrape Coles? It might take time?
Me (in actual): I understand, it is getting delayed. Am trying to get this up ASAP....
Anyone else experienced toxic clients but still didn't lose their cool?14
PM: I’m not asking what you were doing, I’m asking what was done
me: losers are asking, champions go and do it. This is what I did. The only thing I hear from you is questions. Meanwhile leaders are always a part of the answer. With that loser mentality, you’re never gonna be an MVP.
I’m a neural network powered parrot with a supercar brain. No matter the business guru speak BS you throw my way, I’m gonna wipe the floor with you in your own game. You have no chance. You’re that mediocre type of person who buys a rolex, the same one Gary V has, with the hope it would fix your self-confidence. The only thing I see in your eyes is your shattered ego.4
I think the sleep deprived me is finally cracking under the weight of incompetent assholes.
We just launched a major project in some weird cocktail of Agile slapped with MVP and release to the wild in a waterfall, but it was premature, premature in the sense QA hasn't even finished their side of things, but because some fuck with with "manager" in their title decided they have burnt through the budget with incompetence and scrapped an entire element of the project and outsourced just so they could make a shittier version that doesn't even fucking work.
How hard do you want to fail before you will start listening to the people that now have to work around the fucking clock to clean up this horse shit of a mess.
I'm literally arguing over field mapping with multiple 3rd parties, when the fucking requirements state WTF this is suppose to look like. All because they didn't validate or test their own shit.
Why is EVERY FUCKING cock head in this industry a waste of space and cash! Is it really to much to ask for 1 fucking project to fucking go live that actually fucking works where I don't need to work 2 weeks straight (including weekends) after going live just to be sure that what shit does hit the fan isn't going to create a SEV 1 issue...
Sorry, I'm pissed at the incompetence of others I need to deal with on a daily basis. It's not like this field is insanely hard. A little attention to detail and self validation, verification goes a long way. But clearly that's a rarity.
Once this shit is stable and actually works, I'll be pulling out the mop to clean up half this shit just so it actually works.
Oof, I'm getting to old for this bullshit.4
My goal is to find the motivation to make a MVP for a company idea I have. The chances are low but not non-existent....1
TL;DR; do your best all you like, strive to be the #1 if you want to, but do not expect to be appreciated for walking an extra mile of excellence. You can get burned for that.
They say verbalising it makes it less painful. So I guess I'll try to do just that. Because it still hurts, even though it happened many years ago.
I was about to finish college. As usual, the last year we have to prepare a project and demonstrate it at the end of the year. I worked. I worked hard. Many sleepless nights, many nerves burned. I was making an android app - StudentBuddy. It was supposed to alleviate students' organizational problems: finding the right building (city plans, maps, bus schedules and options/suggestions), the right auditorium (I used pictures of building evac plans with classes indexed on them; drawing the red line as the path to go to find the right room), having the schedule in-app, notifications, push-notifications (e.g. teacher posts "will be 15 minutes late" or "15:30 moved to aud. 326"), homework, etc. Looots of info, loooots of features. Definitely lots of time spent and heaps of new info learned along the way.
The architecture was simple. It was a server-side REST webapp and an Android app as a client. Plenty of entities, as the system had to cover a broad spectrum of features. Consequently, I had to spin up a large number of webmethods, implement them, write clients for them and keep them in-sync. Eventually, I decided to build an annotation processor that generates webmethods and clients automatically - I just had to write a template and define what I want generated. That worked PERFECTLY.
In the end, I spun up and implemented hundreds of webmethods. Most of them were used in the Android app (client) - to access and upsert entities, transition states, etc. Some of them I left as TBD for the future - for when the app gets the ADMIN module created. I still used those webmethods to populate the DB.
The day came when I had to demonstrate my creation. As always, there was a commission: some high-level folks from the college, some guests from businesses.
My turn to speak. Everything went great, as reversed. I present the problem, demonstrate the app, demonstrate the notifications, plans, etc. Then I describe at high level what the implementation is like and future development plans. They ask me questions - I answer them all.
I was sure I was going to get a 10 - the highest score. This was by far the most advanced project of all presented that day!
Other people do their demos. I wait to the end patiently to hear the results. Commission leaves the room. 10 minutes later someone comes in and calls my name. She walks me to the room where the judgement is made. Uh-oh, what could've possibly gone wrong...?
The leader is reading through my project's docs and I don't like the look on his face. He opens the last 7 pages where all the webmethods are listed, points them to me and asks:
LEAD: What is this??? Are all of these implemented? Are they all being used in the app?
ME: Yes, I have implemented all of them. Most of them are used in the app, others are there for future development - for when the ADMIN module is created
LEAD: But why are there so many of them? You can't possibly need them all!
ME: The scope of the application is huge. There are lots of entities, and more than half of the methods are but extended CRUD calls
LEAD: But there are so many of them! And you say you are not using them in your app
ME: Yes, I was using them manually to perform admin tasks, like creating all the entities with all the relations in order to populate the DB (FTR: it was perfectly OK to not have the app completed 100%. We were encouraged to build an MVP and have plans for future development)
LEAD: <shakes his head in disapproval>
LEAD: Okay, That will be all. you can return to the auditorium
In the end, I was not given the highest score, while some other, less advanced projects, were. I was so upset and confused I could not force myself to ask WHY.
I still carry this sore with me and it still hurts to remember. Also, I have learned a painful life lesson: do your best all you like, strive to be the #1 if you want to, but do not expect to be appreciated for walking an extra mile of excellence. You can get burned for that.
There has to be a software project bingo somewhere where I could just mark one item at a time of what's wrong and should be fixed, eventually leading to the same loop all over again. Items include, but are not limited to:
- The application is too tightly coupled
- There are too many repos and people can't keep track
- Someone forgot to create a naming convention for everything
- Nobody is reviewing pull requests
- Someone opened a PR for their 1 month of work
- Some team created a service for themselves, that doesn't cover use cases for every other team (who didn't tell anyone they needed it), thus it was a bad thing
- Business owners telling something needs to get done now and go talk directly to a developer
- Nobody thought about network latency in microservice architecture
- There's an invalid translation in this string, let's push the MVP another two months to make sure everything is perfect before launch
- The API gateway has business logic in it
- Business wants to focus on output, development teams in outcome
- "You need to request a virtual machines from the IT department so we know you won't mine bitcoin there!" Takes two months to fulfill that request.
- <add documentation here>
- 675 vulnerabilities in packages
- People complain about not knowing what others are doing, but nobody wants to speak up1
The Zen Of Ripping Off Airtable:
(patterned after The Zen Of Python. For all those shamelessly copying airtables basic functionality)
*Columns can be *reordered* for visual priority and ease of use.
* Rows are purely presentational, and mostly for grouping and formatting.
* Data cells are objects in their own right, so they can control their own rendering, and formatting.
* Columns (as objects) are where linkages and other column specific data are stored.
* Rows (as objects) are where row specific data (full-row formatting) are stored.
* Rows are views or references *into* columns which hold references to the actual data cells
* Tables are meant for managing and structuring *small* amounts of data (less than 10k rows) per table.
* Just as you might do "=A1:A5" to reference a cell range in google or excel, you might do "opt(table1:columnN)" in a column header to create a 'type' for the cells in that column.
* An enumeration is a table with a single column, useful for doing the equivalent of airtables options and tags. You will never be able to decide if it should be stored on a specific column, on a specific table for ease of reuse, or separately where it and its brothers will visually clutter your list of tables. Take a shot if you are here.
* Typing or linking a column should be accomplishable first through a command-driven type language, held in column headers and cells as text.
* Take a shot if you somehow ended up creating any of the following: an FSM, a custom regex parser, a new programming language.
* A good structuring system gives us options or tags (multiple select), selections (single select), and many other datatypes and should be first, programmatically available through a simple command-driven language like how commands are done in datacells in excel or google sheets.
* Columns are a means to organize data cells, and set constraints and formatting on an entire range.
* Row height, can be overridden by the settings of a cell. If a cell overrides the row and column render/graphics settings, then it must be drawn last--drawing over the default grid.
* The header of a column is itself a datacell.
* Columns have no order among themselves. Order is purely presentational, and stored on the table itself.
* The last statement is because this allows us to pluck individual columns out of tables for specialized views.
*Very* fast scrolling on large datasets, with row and cell height variability is complicated. Thinking about it makes me want to drink. You should drink too before you embark on implementing it.
* Wherever possible, don't use a database.
If you're thinking about using a database, see the previous koan.
* If you use a database, expect to pick and choose among column-oriented stores, and json, while factoring for platform support, api support, whether you want your front-end users to be forced to install and setup a full database,
and if not, what file-based .so or .dll database engine is out there that also supports video, audio, images, and custom types.
* For each time you ignore one of these nuggets of wisdom, take a shot, question your sanity, quit halfway, and then write another koan about what you learned.
* If you do not have liquor on hand, for each time you would take a shot, spank yourself on the ass. For those who think this is a reward, for each time you would spank yourself on the ass, instead *don't* spank yourself on the ass.
* Take a sip if you *definitely* wildly misused terms from OOP, MVP, and spreadsheets.5
Never trust organizations who claim to have adopted the agile mindset, saying they use SAFe or Scrum or w\e, unless the teams themselves say that they have full autonomy for the release process. Because the upper management is not agile. Especially in older organizations. Typically they are the ones who will have the final say if teams don't have autonomy.
As a consultant, I joined a team on an organization who says that they're using SAFe. "Scaled Agile Framework". There is absolutely nothing agile in that horrid process.
Agility only happens at the team level. That's where we seem to improve the ways of working. Levels above, nothing happens.
I've been on this team for a year and we haven't released ANYTHING to customers. So those "release trains" are sitting on their stations.
Upper management refuses to green light a product release to customers that doesn't contain everything they want in it. In their mind they have the "perfect product" in mind and it needs to be perfect before it can be delivered to anyone. Fighting them on that idea has proven pointless. They don't understand what an agile mindset it. At the moment we are providing zero value to customers.
The MVP release date has been pushed for over 6 months now because nobody can come to a conclusion as to what needs to be finished before the release. They can't accept that we'd just release it now and keep iterating it. Everyone from the team members to the organization leader to their grandmother has to green light a release. People argue about minor nuances. Semantics. Big manual regression tests are needed to make sure that everything works. When a minor bug appears, PO's lose their minds and start calling out developers to investigate and fix it, and to set up more gateway checks that these things don't happen.
Organizations don't adapt the agile mindset very easily. Frustration sets in. Waterfall is forever.5
Alright, my very first post here was about this project and I am thinking it out loud again.
I see a problem and I am struggling to find a solution.
Now what I am thinking of is to articulate the problem well and state WHY I believe it needs to be solved. There are some reasons which must be presented in a capitalist way.
Furthermore, I am thinking of doing a market research to understand various demographics, validate the idea, and figure out the product-market fit.
Now, this qualitative research and quantitative data will help me decide whether it is worth putting in the efforts to solve the problem or not.
And since, we have an MVP already (funnily yes, we built it before all of the above), that will help me validate the tangible solution.
Once we get a confidence boost, then it will be time to get that single transaction which has net positive cash flow.
Start scaling to 'next billion users', so a billion transaction with net positive cash flow.
I won't be branching out into multiple verticals before be able to sustainably scale the core USP.
And while the second half sounds like, 'I have a million dollar idea', I am trying to be more and more realistic and rationale instead of falling in love with my idea.
I don't even have an idea (read solution) to fall in love with. Rather I have a problem that is bothering me.
So, yes, I am continuing this journey to solve the problem which started in second year of my hostel room and has evolved over 10 years.
I have an idea of starting my own business and I need your feedback guys. Literally appreciate any kind of feedback.
So Im an android dev who has 3 years experience under his belt. I am working fulltime and I think its time to scale. I want to open my own agency where I would take on big clients and build apps for them. I personally am able to manage/see through the whole project, handle all communication and also work on the android side if necessary. I would start from smaller projects worth of 30-40k for startups, basically create MVP for them and charge for support after that.
Problem is that as far as I understand if you want to "open your own kitchen" you need to be well connected. I dont know any big clients who would trust and purchase my services, because after all who I am? Im nobody just a dev at this moment. So I need a strategy to build some relationships with businesses.
So Im thinking long game. What if I would first open a recruitment/hiring agency? I would focus in specifically mobile dev recruitment. I have the soft skills and I already participated in dozens of recruitment processes. I also have the tech skills, I would be a competent recruiter. Maybe I could do that for a year, just communicate between devs and clients and place devs. My thinking is that in around one year I would be able to build a massive network of clients and devs.
And then, I could try opening my own dev agency. Using my gathered contacts hopefully I could land some decent projects for start and build my team or outsource from that point on.
Ofcourse Im not sure if I could pull this off alone, I would need a detailed strategy and some mentoring. But what do you think is this a viable plan?2