Ask HN: What slows you down most when starting new programming projects? - mlejva
======
non-entity
Normally: getting a proper development environment configured.

Recently: I've been trying to start a few project where I always hit an early
roadblock with an issue only being solved with purchasing and installing new
hardware

~~~
mlejva
Do you mind sharing what are those recent projects?

When you say "proper development environment configured" \- what were the most
annoying things?

~~~
non-entity
Sure, I've most recently been trying to debug and patch a kernel driver, but
in order to run kgdb (gdb kernel debugger) I have to have a serial connection
between 2 machines of the same architecture. Unfortunately not too many modern
PCs have serial ports and I've been running through different motherboard
connectors and pci cards with no avail. I've had similar hardware issues doing
kernel projects and often by the time I get what I've need, I've lost interest
in the project.

As far as "proper development environment" goes, I have a bad habit of wanting
a perfectionist environment with everything cleanly structured before I start
writing serious core. If course this always bores me to death and prevents me
from actually getting anything done, as opposed to just immediately starting
to hack away

------
karmakaze
I'm usually really good at starting things.. and even up to deploying
something minimal that does a thing. That's when I hit the slow/stop zone. My
initial curiosity itch has been scratched and a proof-of-concept made and
possibly deployed using some new infrastructure gizmo.

My question is how do you keep going? Show friends/coworkers, post on sites,
get users? I even went as far as setting up a landing page and figuring out
auto signup/provisioning and payments, then lack the motivation to market or
continue development. I probably need a co-instigator that's not so dev-only.

------
SenHeng
Not thinking things though.

As an example, recently, I’ve been thinking of building a list of ski resorts
near where I live, so that I may then compile it into a kind of weather, snow
forecasting site.

The first step was ‘compile and create a list of resorts’. Which was easy to
do, but doesn’t lend nicely to the second step, rather, _what_ second step?

I had a huge urge to just code something, _anything_. I didn’t spend enough
time thinking about how it might develop.

~~~
karmakaze
I'm not following. It sounds like you'd be further along if you just went with
your gut to just code something, anything.

My solution to getting started or continue going is to build the next thing
I'm motivated to do, no matter how small. If I'm not motivated to even do
that, I just create a setup where I can later start on the next thing, no
matter now small. Usually once the setup is done, it's so easy to start that I
usually do it in the same session as the setup.

------
username90
Writing lots of well-tested prototypes and benchmarks to grok the capabilities
your building blocks have. Working with things you don't understand is very
slow, so I feel doing all of this up front leads to much better results than
doing it incrementally every time a new strange bug appears.

------
fjp
Creating a front end. I actually _really_ enjoying laying out a beautiful
design in HTML, but...

I hate hate hate hate hate working in JS. Just throwing up a MPA with a
templating engine is not enough functionality for what I want to offer. No
matter how many times I try to start using React, Angular, Vue, or just do it
with vanilla and maybe jQuery, I just don't _get_ it

In my ideal world I would have a front end engineer friend who wanted to work
on all the same things I did and I could just serve up APIs all day.

~~~
karmakaze
I also used to hate making front-ends, from jQuery onwards. This changed when
I started using Vue. The components are so lightweight, I'll make ones to do
simple output formatting. And with TypeScript it's so nice, almost like back-
end code. Oh when using Vue, I avoid the whole redux/vuex whatever and either
use local state, vue-stash, or similar simple machinery.

------
tmm84
For me it is the get everything setup to work correctly in a "Windows"
environment. Compilers, system variables, command lines (powershell, cmd and
bash) and editor/debugger setup take a lot of time. Almost every new project I
am forced to use a fresh machine so getting all this setup each time I start a
new project is consuming (never mind downloading all the packages/libs I'll
need).

------
roland35
Deploying to a server, or figuring out the best way to transition from
prototype to production! (Django + JS development)

------
kahlonel
Trying to figure out the project name. I name my projects no matter how small
they are. It somehow makes the project important enough for me to come back to
it a few days later.

~~~
karmakaze
One step further, finding the perfect domain name. I have a long list of
expired after 1 year, unused domain names. Sometimes I'll even register a
better name for a project I still haven't started.

------
muzani
Figuring out where to start. The first brick is the hardest.

~~~
mlejva
Where to start as in what direction start building the project? Or something
else like "what technologies do I need to do X"?

~~~
muzani
More about what the project should be. Projects are about solving problems.
Problems can be big and split into smaller ones. Which subset of a problem do
I pick?

E.g. I wanted to make a random world generator. Continents and terrain are
often done. Culture generators have been done too. Plots are rarely done, and
they're the easiest, but aren't particular interesting on their own. Plots
needed interesting characters. Character generation is common, but rarely
clicks. So what flaws in existing character generators are easiest to tackle?

This whole process took me about 3 months before I got it down to a dropdown
and a button. Before that it was endless iteration and experiments that went
in a direction that wasn't particularly interesting, or too difficult.

Anything worth doing has nobody else go down the same path. So you start to
question whether it's the right path and worth dedicating energy to.

------
eljbutler
I am willing to guess a lot of people here would say time is their biggest
slow down. Finding time. Making the most of the time you do have.

~~~
mlejva
Interesting, I didn't think about it that way. Sure, I wish I had more time
for projects I want to build once I have that time what annoys me sometimes is
how much things keeps me from the real development.

What I had in my mind were things like setting up tools, configuring your
project, etc. Basically, things that keep you from real productivity
programming.

------
navyad
Although I like writing tests but following Test-Driven Development slows down
the development of side-projects.

------
pkrotich
Too much research for me.

------
mortivore
Setting up the environment is usually the major thing.

~~~
mlejva
Is there any specific part that you setup most often across your projects?

------
hellwd
Overengineering :)

