top | item 14010786

(no title)

dougireton | 9 years ago

Developers who insist that their favorite technology is the best vs. what's the best for the task at hand, what technology will the team as a whole be successful with.

Developers who don't have empathy for less experienced team members; who can't/won't mentor well.

discuss

order

zepolen|9 years ago

Meh, takes me back to a couple years ago when the MEAN stack was all the rage, I was pointing out flaws/problems which would arise from:

- Mongo not having a schema, relations - Angular having a fundamentally flawed update system

But of course the argument was that 'MEAN is what everyone is using, its easy to find MEAN developers'.

Sure, if you mean it's easy to find kids who learnt how to make apps, via a MEAN stack, over a couple months as their first ever tech and now are ready to work for very cheap.

Of course it's never cheap - what you save on quality you make up in quantity.

The amount of developer time wasted writing migration scripts, debugging silly problems because of no schema, data loss (at least they took my advice on automating backups!), not to mention a ton of frontend issues - was staggering.

Yes, this was a 6 month old startup with about 6 fresh college "engineers".

Experienced developers have a favorite for a reason, usually they've been bitten by other ones - I would say don't trust a developer who pushes a certain tech without giving a reason beyond that they are familiar with it.

For example, I've found javascript a painful language to work with (although that's starting to change with all the latest revisions to the spec) - but it makes no sense to push for a different language when half the app is already written and all the devs know javascript.

Using Mongo as a db on the other hand I wouldn't suggest ever, data integrity is way too important to use a (badly implemented) cache as a database.

There are much better technologies out there that give you everything that Mongo tries to provide, and faster too.

jkmcf|9 years ago

You sound like my twin. Wait, are you me?

Seriously, I was surprised to find that Splunk uses Mongo. Given its performance and reliability with Splunk, I'm willing to give Mongo another chance given the right conditions (given that someone on my team has significant experience administering it).

scarface74|9 years ago

I'm relatively new to Mongo and I've only used it in C#.

But a few points:

I would only use Mongo as a backing store for a micro service. All access would be through one service that enforced business rules, data integrity, and would be responsible for exposing business objects/aggregate roots.

App servers are a lot cheaper/easier to scale than database servers. By keeping all of the logic in the business tier, it's a lot easier to scale/load balance.

jordanb|9 years ago

Flip side with the mentorship thing is not blocking out the senior dev's time to do the mentoring.

If the senior dev is supposed to mentor his junior teammates with no impact on the number of story points he grinds through then it's not reasonable for him to relish the thought of spending time peering with colleagues that he'll have to make up after hours.

bbcbasic|9 years ago

> Developers who insist that their favorite technology is the best vs. what's the best for the task at hand, what technology will the team as a whole be successful with.

But we operate in a marketplace that wants to hire people based on their tech stack. So to keep their skills up they have to push for their stack.

hliyan|9 years ago

Unfortunately, this describes a substantial percentage of "10x" engineers...

marktangotango|9 years ago

Despite your use as a pejorative, 10x is real. Developers who pound out mountains of spaghetti in whatever stack they want ignoring maintainability and best practices? I've heard the phrase "cowboy coders", or asshole works too.