News for hackers. Stuff that matters.
Re:Ask HN: What is the ideal developer experience in 2020? by Etheryte on Monday June 08, 2020 @10:20AM (#23456690)
I often consult other teams in my company on technical issues and architecture. Coming from this background I always wish the following would be covered:

- The project should start up with one click or one command. It's fine if I need to configure credentials or something similar, but beyond that, your project should be so easy to start that your mom could do it. If the project requires me to locally install a database, configure ports, or anything of the like, that's a shining red flag that things are very wrong.

- The underlying architecture and rationale should be documented and this document should be reasonably up to date. Whoever is the lead developer on the project should be responsible for this. Not all details need to be covered, but the main principles and the driving business requirements behind it need to be clearly stated and up to date. If there's no broad documentation, I consider the project to already be off the rails, not just heading that way.

- There should be a concept of testing. You don't need to have tests yet, especially if you're still prototyping, but you need to have a very clear idea of what you will test, how, and how you'll get there.

- Formatting isn't a discussion point. Whatever stylistic preferences there are are covered by linting and automatic formatting. If I clone the project, it should be reasonably hard for me to do things the wrong way and fairly easy to do them the right way.

- Branch management, code review, etc. All of this falls in the same pot for me, no one should have the ability to push directly to master, all changes need to go through review, pass lint, tests, etc before they can be merged. Doesn't matter if you're the lead dev or a summer intern.

You'll notice that all of the above are procedural issues, not code specific issues. I firmly believe that by nailing the underlying process first, you make it easy to build good software and hard to build bad software.

Re:Ask HN: What is the ideal developer experience in 2020? by packetlost on Monday June 08, 2020 @10:44AM (#23456902)
> If the project requires me to locally install a database, configure ports, or anything of the like, that's a shining red flag that things are very wrong

I disagree here slightly. I think it's reasonable that a database setup may be necessary, especially if abstraction layers (ie. ORMs) aren't being used for SQL, and SQLite is not your database of choice. Sure, you could set up docker, but not every project adopts or even likes docker.

Re:Ask HN: What is the ideal developer experience in 2020? by jeffnappi on Monday June 08, 2020 @03:26PM (#23459856)
Perhaps the point here is that it shouldn't be necessary to separately configure a database from the command used to fire up the project. For example using Docker w/ docker-compose, a single command should be able to get most projects up and running with all of the required system dependencies included (database, etc).
Re:Ask HN: What is the ideal developer experience in 2020? by mikekchar on Monday June 08, 2020 @06:39PM (#23461577)
I also have a small caveat. If you have a docker setup or a similar style of setup, if it is not obvious how to do this by hand, then you should write documentation on how to do it. Honestly, my standard is that you should have the same level of setup instructions as you would expect from a good open source project of the same complexity.
Re:Ask HN: What is the ideal developer experience in 2020? by jmuguy on Monday June 08, 2020 @10:40AM (#23456862)
For the first point how would you handle software that needs a database of some sort? Or are you saying the project ought to include an install script that handles dependencies?
Re:Ask HN: What is the ideal developer experience in 2020? by keawade on Monday June 08, 2020 @10:52AM (#23456981)
Not OP, but I've used containers to run temporary local databases for development.

If you're also packaging your application as a container you can use container orchestration tools like `docker-compose` to compile your app and up a local dev environment with all your external dependencies with a single command (eg `docker-compose up`).

Re:Ask HN: What is the ideal developer experience in 2020? by mustardo on Monday June 08, 2020 @10:53AM (#23456992)
Ive typically done this with Vagrant (virtual machines) + ansible but docker seems to be the new hotness. However a vm is what i run in prod so keeping docker out is one less tool
Re:Ask HN: What is the ideal developer experience in 2020? by emilecantin on Monday June 08, 2020 @12:11PM (#23457851)
One project I've recently come across that illustrate a lot of what you're talking about is the Reaction e-Commerce framework: https://reactioncommerce.com/

The thing is so over-engineered that they had to do a makefile that clones the project for you. And I don't know what they're doing, but the thing is unusable on a Mac (it's supposedly related to filesystem operations in Docker -- why are you doing so many?).

I could go on and on. I spent 2 days trying to make this work properly, but in the end I decided that if I need to do a Web store, I'll go with something else.

Re:Ask HN: What is the ideal developer experience in 2020? by arcturus17 on Monday June 08, 2020 @05:47PM (#23461174)
Also evaluated Reaction ~9 months ago and came to the same conclusion. A React/Node eCommerce framework sounds like an interesting possibility but this project looks like a hot mess.
Re:Ask HN: What is the ideal developer experience in 2020? by bernawil on Monday June 08, 2020 @10:08PM (#23462933)

  If the project requires me to locally install a database, configure ports, or anything of the like, that's a shining red flag that things are very wrong
Backend project? you need to provide a docker-compose setup. Not just for the database, also for any other service like Redis, ElasticSearch, etc. If you're expecting PRs, you'll also need a good database unit test suit, preferably running something like Sqlite.

Frontend? ideally you'll provide the API setup like before, but I'll settle for a dev env online.

Re:Ask HN: What is the ideal developer experience in 2020? by cercatrova on Monday June 08, 2020 @11:51PM (#23463479)
This depends on the goal of the creator, whether it be a developer or a company. If they are selling a hosted version of the product, their incentive is to make the self hosting experience as bad as possible to incentivize potential customers to buy their product.
Re:Ask HN: What is the ideal developer experience in 2020? by ninjaturtlez on Tuesday June 09, 2020 @09:21AM (#23466421)
The one click start up point makes a lot of sense for Frontend developers! Auto installing a DB in the same command you use to run the app is pretty dumb though. What if I just want to point my instance at staging for testing? Now I have to have docker installed