Avatar of Daniel Quinn

Daniel Quinn

Senior Developer at Workfinder
Senior Developer at Workfinder
Shared insights
on
Asana
in

I'm routinely frustrated by Asana because it's clearly a tool created by designers, imposed on developers.

  • No integration with code repositories.
    • No task numbers
    • You can't reference a ticket in a commit and expect any feedback in Asana
    • You certainly can't close a ticket with a commit.
    • There's no link between CI progress and a ticket.
  • No Markdown support (you can't even put links on text!)
  • Boards and task lists aren't linked.
  • It suppresses middle-click so you can't open more than one ticket at once.
  • It logs every last change to things like assignments, but then folds up the conversation to suppress past comments.

Here's what it does have:

  • Pretty backgrounds
  • Cute little creatures that appear at random

This is not a tool for engineering. Please don't force your nerds to use it.

READ MORE
14 upvotes2 comments42.3K views
Brandon Gohsman
Brandon Gohsman
May 23rd 2019 at 6:54PM

Warning: Uninvited UI/UX designer/developer opinions incoming...

I share your frustrations with Asana, and for similar reasons. However, I suspect that it wasn't even created by designers. If it had been, it would at least look decent (backgrounds and Furbies don't count). And the people imposing it on developers are neither. It feels a lot more like what I refer to as design-by-corporation: A kludge of features which were determined [by some means external to the design/development teams] to be sellable. Ergo, it wasn't designed as a system, it formed in a more...malignant manner. Even a [decent] UI/UX designer would have started with, at a minimum, a happy-path user-flow for the intended primary user. And...there isn't one. Just an unhappy path. Asana feels more like jumping from rock-to-rock to cross a stream (and the rocks are not in a straight line or close together). It is the physical incarnation of a list of features/benefits all jammed into a single Ziploc bag like some digital trail mix. But not a good trail mix. More like an unbranded gas station variety. To be fair, each, individual feature...works. I'm sure that they met the acceptance criteria any existing unit tests pass. It just doesn't feel like an integrated system and certainly does not feel integrated with the larger development ecosystem or environment.

To be fair to the people who built Asana, I have been on software projects/teams where, despite the skillsets, experience and best intentions of the team members, the end product was ultimately not "allowed" to become great. And it seems like the larger the corporation, the more likely it is for this kind of thing to occur. Of course, I have no visibility into the design/development process or internal culture at Asana. However, looking at the current product, it has all the hallmarks of being managed to death. And I wouldn't be surprised if there was significant team turnover during the development cycle. The harder any product attempts to be for "everyone", the less useful it inherently becomes for "anyone". The safest flavor of ice cream is vanilla (and is probably gluten-free and made with soy). If you make a project management tool aimed at developers, and Trello is a legitimate competing option, that is probably a smell.

Reply
Daniel Quinn
Daniel Quinn
May 24th 2019 at 2:13PM

You have an excellent point about the UX: it's a nightmare. So yeah, it was unfair to lay this at the feet of designers. I also like your trail mix analogy :-)

Reply
Senior Developer at Workfinder

We use Docker because Paperless is a stand-alone application with some complicated dependencies. Rather than expecting our users to figure out how to install & setup Tesseract to run on their local systems (if said systems even have support for it), we can just tell them to run docker-compose up and everything else is just magic!

READ MORE
14 upvotes4.3K views
Senior Developer at Workfinder
Shared insights
on
GitLab

I strongly recommend GitLab because it's got all the tools you need: no fiddling with 3rd party components that want sweeping permissions on all of your GitHub repositories just to do a single CI job. GitLab's got everything from review tools, to integrated CI, scheduled builds, hosted containers, test coverage badges, sprint planning boards, issue tracker, wiki, and an API if you want to poke at this all programmatically. All of this, for Free (as in beer and freedom) hosted by GitLab or even by you on-site.

READ MORE
11 upvotes38.2K views
Senior Developer at Workfinder

I use Python because it's a beautiful (both visually and in terms of function) and multi-purpose language. In Paperless, Python is the primary connecting tissue holding all of the parts together: it's the basis of the consumption engine (communicating with Tesseract OCR via pyOCR) and the user-interface (based on Django).

READ MORE
7 upvotes26K views
Senior Developer at Workfinder

I decided on Travis CI because its required permissions were reasonable. Where most Github apps require insane stuff like write access to all repos, public & private, Travis only needed a webhook setup.

On top of that, the interface is slick and easy to follow and their support for Free projects is free :-)

READ MORE
7 upvotes13.4K views
Senior Developer at Workfinder
Shared insights
on
Docker
Python
Linux
in

Docker is amazeballs for things like testing your application in multiple environments and software versions. You can write one Python library and then automate the execution of that same test suite in 10 different Linuxes, and 4 different Python versions -- all as part of your CI.

It's also handy in this age of "spin up a thing to take care of X" -- though I tend to try to avoid having too many moving parts in an application. Still, being able to stand up a caching server, queue server, and data server -- all in about 30 seconds is really handy for development.

READ MORE
7 upvotes2 comments7.5K views
Ryan Manzer
Ryan Manzer
May 2nd 2019 at 6:11PM

I whole heartedly agree. Being able to quickly deploy a network of containers with Redis, RabbitMQ, and PostgreSQL in support of my Python applications has been meant I can usually address the services portion of building an application in seconds to minutes rather than days.

Reply
John Wollner
John Wollner
May 14th 2019 at 10:37AM

I'm a HUGE docker fan! Unfortunately our ops team, while willing to investigate its use, are much more comfortable with VMs at present, but I'm working them around lol

Reply
Senior Developer at Workfinder

We use GitHub because it's the default go-to place for the Free software community. Currently, Github is enjoying the network effect: you write code there because everyone writes there code there, so this choice was less of a choice than "what we all end up doing".

Personally, I prefer GitLab for its bundled-in tools like CI, boards, packaging, and Docker repo, but so long as the vast majority of talented nerds out there are on Github, that's where Paperless will be.

READ MORE
6 upvotes8.5K views
Senior Developer at Workfinder

I needed a tool that could convert a rasterised image into text. There are a few out there, but I don't think there's any that match Tesseract OCR for cross-language capability, community support and freedom (it's Free as in freedom and beer).

The setup isn't super-obvious, but once you've got it figured out, all of that can be automated. On top of that, there's lots of programming language-specific libraries out there that'll help plug your stuff into it.

READ MORE
5 upvotes23.8K views
Senior Developer at Workfinder

I host my stuff with Hetzner in large part because their tools are straighforward and easy to use and they're based in a country whose laws respect privacy.

If you're hosting with a company that's US-based, you have to worry about their laws affecting your site, which isn't an acceptable requirement in my opinion.

READ MORE
5 upvotes4K views
Senior Developer at Workfinder

Django is an amazing web framework that comes with everything you need, and makes it easy to turn off the stuff you don't.

In the case of Paperless, I needed a simple way to build a site that had a pre-built "CRUD" interface, and that's the Django admin. Django also supports things like management commands and signals, which we use throughout the project along with its built-in testing framework.

READ MORE
5 upvotes1.9K views