

Take Time to Develop Fast - ddt
http://blog.tapin.tv/take-time-to-develop-fast.html

======
xxbondsxx
> You should have a strong opinion on every major area of software development

Strong implies stubborn, and stubborn implies inflexibility. The last thing I
want when trying to debug a legacy system is a new hire complaining up the
wall about XML bloat. It wasn't my decision, we are stuck with it, and let's
move on and ship.

I think every developer should have some (shred of) experience in every area,
and have knowledge of various options and the tradeoffs between them, but
don't go around becoming that die-hard religious guy on the NoSQL/SQL debate
(or any other for that matter).

~~~
ryanbraganza
I agree, and this reminds me of two other quotes.

"Strong opinions, weakly held"
[http://www.codinghorror.com/blog/2008/05/strong-opinions-
wea...](http://www.codinghorror.com/blog/2008/05/strong-opinions-weakly-
held.html)
[http://bobsutton.typepad.com/my_weblog/2006/07/strong_opinio...](http://bobsutton.typepad.com/my_weblog/2006/07/strong_opinions.html)

"I aim to fight as if I am right, and listen as if I am wrong"
[http://blogs.hbr.org/sutton/2010/08/its_up_to_you_to_start_a...](http://blogs.hbr.org/sutton/2010/08/its_up_to_you_to_start_a_good.html)

~~~
lhnz
"Strong opinions, weakly held" sounds right to me.

I couldn't care less how confidently somebody holds an opinion.

I think the word "strength" here should signify a battle-hardened opinion that
has won out over others in a practical or theoretical sense. Strongly-
supported...?

That's not to say that that it's wrong to be confident in the opinions you
hold, but if you want to have strongly-supported opinions you can't protect
them from being tested against other opinions. Let them win on their own
merit...

------
encoderer
I've begun using a Trello board to keep track of the skills I want to pick-up
and things I want to learn.

I have the lists "Heard about it", "Read about it", "Learning it", "Done with
it". Today, for example, I added: "Learn about using Git bisect to trace bugs"
to the Read about it board. Will probably play with it next weekend.

This is a new workflow for me, but so far it's working well.

~~~
pestaa
How many skills are there already and can you show us some more examples
please?

~~~
encoderer
Learn and create my own Chef cookbooks vs just using Vagrant now.

Heard about using dsh as a, more or less, a reverse SSH proxy.

Figure out and use South django migrations.

Implement a bloom filter. Implementing a bayesian filter made it so much more
understandable to me, I figure this would work the same.

There's a few other, more specific ones. But this is a fairly new workflow for
me. I like the idea somebody mentioned about keeping a rough idea of how many
hours you've spent on it.

------
netvarun
I fully agree with this article.

At my startup, Semantics3, we use Capistrano [1] for multi-machine deployments
of our git repos. This has greatly helped our productivity as it just takes a
couple of minutes to go from dev to production!

Through a single command (cap -f api deploy:start) our entire cluster get the
latest git repo and all the services are (re)started - we use Upstart for
daemonizing our processses and Monit for process monitoring. All of them
seamlessly work together.

[1] <https://github.com/capistrano/capistrano> There is also nice gui frontend
to it. You can do deployments through the web, with built in logging and user
management! Its called Webistrano - <https://github.com/peritor/webistrano/>

------
mikescar
> Developers love developing. (Perhaps recently computer science has gotten a
> boost in the number of those in it for the money, but for the most part
> those who I interact with on a professional level are in it for the fun.)

Ha. Just recently computer science got a boost in those in it for the money? I
guess I started CS in 98, right during the boom times. Though our silly 18
year old selves thought we'd have it made, the 50% of our class who didn't
actually enjoy it dropped off each year.

From my weak searching I found this, apparently majoring in CS is back on the
rise:

[http://cra.org/govaffairs/blog/2012/04/undergrad-computer-
sc...](http://cra.org/govaffairs/blog/2012/04/undergrad-computer-science-
enrollments-rise-for-fourth-straight-year-cra-taulbee-report/)

------
rcavezza
tapin.tv does a great job promoting what their startup actually does in their
blog - both at the top of the page, and at the end of the article.

~~~
ddt
Thanks! I didn't write the article, but I'm on the team. We tried to make sure
that people who care what we do can find it, but it doesn't dominate the page.

------
click170
I think its good practice to spend a little bit of time each day or week
trying to learn something new that will help you work[/play], a new vim
command or feature, etc.

~~~
ddt
Absolutely. And then force yourself to adopt it. For instance, if you want to
remap your control key to caps lock, physically remove your control key from
the keyboard.

------
dllthomas
> “I like the BlackWidow Ultimate: it doesn’t have proper buckling springs,
> but it’s backlit and I like to code in dark rooms”

You... need to see your keyboard?

~~~
tylermenezes
My passwords for important things (Google account, bank, etc) are 128+ pseudo-
random characters, so it's a pain to get right without checking. Also I was
surprised at how often I looked at my keyboard for typing numbers to orient
once I started paying attention.

~~~
dllthomas
Ah, typing random characters can be a pain, for sure. That said, what was your
calculus that leads to picking >600 bit keys? You'll likely be losing most of
that to hash collisions.

------
keeptrying
10 hours? At my old company new hires would thrash around at least for 6
months.

And yet we made oomples and oomples of money.

------
drivebyacct2
Good SCM, easy testing APIs/harnesses and easy deployment are so wildly
important, it infuriates me to work at one of the the biggest names in tech
and waste HOURS a day on bullshit deployment issues or copy/pasting things in
six different places before I can execute my tests or do manual verification.

For one project, deployment to production takes 3+ weeks, testing environments
can take a week and is fraught with steps that take hours and literally can
fail for any random reason and can only be mitigated by starting over.

And then I come home to my side projects that can be built with a single
standard command that is more or less an industry standard. I can deploy it
reliably _every. single. time._ I have a test framework that can be run from
within my development environment or from the command line with the same tool
as the build tool.

