Live data from Hacker News

“This project will only take 2 hours”

web.eecs.utk.edu

211–220 of 279 posts

Re: “This project will only take 2 hours”

#211

You can do feature creep for a long time. If you just want a basic working version (that will probably drain your battery), that can be done really quickly. This took me ~10 minutes: #!/bin/sh set -e while true; do URLS="$(xsel | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*")" && if [[ ! "${URLS}" = "${OLD_URLS}" ]]; then echo "${URLS}" >> urls.txt OLD_URLS="${URLS}" fi sleep 1 done;

Isn't the >> going to cause urls.txt to grow geometrically?

eg, copying http://example.com/foo and then http://example.com/bar and then http://example.com/baz I think urls.txt would look like:

    http://example.com/foo
    http://example.com/foo
    http://example.com/bar
    http://example.com/foo
    http://example.com/bar
    http://example.com/baz
EDIT: I stand corrected. I should have run the code instead of mentally executing it.

One issue I did find when I ran it. The shebang should be:

    #!/bin/bash
as [[ is a bash built-in. I'm on Ubuntu - maybe this works on Mac as /bin/sh is an alias to /bin/bash?

Re: “This project will only take 2 hours”

#212

I’d point out this isn’t a problem with estimation per se but with requirement gathering. The students didn’t press him for more specific requirements before offering an estimate. The real challenge though comes when the customer doesn’t know their requirements. They legitimately think they “just want a simple app to record urls”, but actually want all the other things listed. The thing that sets good developers apar…

Good developers, yes. Which takes experience, given the myriad of colorful personalities, politics and more. Though I don't think it is fair the responsibility is largely put on the developer for "underestimating" when often the corporate is big enough to have specific people gather these requirements and map them out as part of their day-to-day. That's my main problem with this advice and the article. Of course anyo…

My spouse is in healthcare, and at least in the US, it seems to be a similar situation.

There’s a big medical structure. And in theory, there’s lots of folks to deal with XYZ. In practice, docs need to do YZ because they are the ones who have the right combination of training and authorization to complete the task. When more people get hired, the doc just has to communicate YZ to more people. Either the task requires nuance that is missed if you’re not the doc, or the task requires direct doc authorization at various points regardless. Doesn’t decrease their burden at all, even though there’s more people working on YZ.

Re: “This project will only take 2 hours”

#213

You can do feature creep for a long time. If you just want a basic working version (that will probably drain your battery), that can be done really quickly. This took me ~10 minutes: #!/bin/sh set -e while true; do URLS="$(xsel | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*")" && if [[ ! "${URLS}" = "${OLD_URLS}" ]]; then echo "${URLS}" >> urls.txt OLD_URLS="${URLS}" fi sleep 1 done;

Nice example, the problem with the article is the client(teacher) doesn’t know what they want in this case. It’s a good example of how feature creep and project scoping is important but if all you really want is a script to log urls that’s simple. Building a url logger with top notch security practices, cross platform, simple enough for my mom to use would be entirely different.

Re: “This project will only take 2 hours”

#214

Earlier quoted context omitted.

I vaguely remember a rant some famous Linux developer went on about how setting up printing in Linux requires a dozen parameters, half of which are arcane nonsense that the printer manufacturer themselves probably doesn't know how to set up correctly. Meanwhile, on an Apple or Windows computer it can be literally just plug and print. The difference is that hiding those arcane input parameters takes work , and a lot o…

Printers are plug and play on Windows? That's not my experience. I have constant problems at work. Settings resetting, stupid printer driver GUIs nagging about ink, prints coming out wrong and making me go into the detailed settings to fix it. Rare are the days where I can just print the stuff I need with no fuss. I'm fortunate enough to be able to solve problems on my own. Coworkers are forced to call support and wa…

I do a little tech support for my neighbors after hours. Printer issues (on Windows) are an extremely common complaint. All kinds of random things can and do fail.

Re: “This project will only take 2 hours”

#215

You can do feature creep for a long time. If you just want a basic working version (that will probably drain your battery), that can be done really quickly. This took me ~10 minutes: #!/bin/sh set -e while true; do URLS="$(xsel | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*")" && if [[ ! "${URLS}" = "${OLD_URLS}" ]]; then echo "${URLS}" >> urls.txt OLD_URLS="${URLS}" fi sleep 1 done;

Isn't the >> going to cause urls.txt to grow geometrically? eg, copying http://example.com/foo and then http://example.com/bar and then http://example.com/baz I think urls.txt would look like: http://example.com/foo http://example.com/foo http://example.com/bar http://example.com/foo http://example.com/bar http://example.com/baz EDIT: I stand corrected. I should have run the code instead of mentally executing it. One…

Doesn't look like it. The URLS variable could more appropriately be named CURRENT_URL. Singular, not plural.

Re: “This project will only take 2 hours”

#216

I’d point out this isn’t a problem with estimation per se but with requirement gathering. The students didn’t press him for more specific requirements before offering an estimate. The real challenge though comes when the customer doesn’t know their requirements. They legitimately think they “just want a simple app to record urls”, but actually want all the other things listed. The thing that sets good developers apar…

Good developers, yes. Which takes experience, given the myriad of colorful personalities, politics and more. Though I don't think it is fair the responsibility is largely put on the developer for "underestimating" when often the corporate is big enough to have specific people gather these requirements and map them out as part of their day-to-day. That's my main problem with this advice and the article. Of course anyo…

Half the time the devs don't even underestimate, it's just that they're the easiest to blame them because it'll never hurt them (according to the people shifting the blame).

One time, I had to estimate a UI migration. I made the estimate and added the disclaimer that the estimation assumed X was true and Y and Z were provided. Of course, X wasn't true, because the supplier sucked and Y and Z weren't provided by the business. So it ended up taking way more time than estimated.

Guess who got the blame anyway.

Re: “This project will only take 2 hours”

#217

You can do feature creep for a long time. If you just want a basic working version (that will probably drain your battery), that can be done really quickly. This took me ~10 minutes: #!/bin/sh set -e while true; do URLS="$(xsel | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*")" && if [[ ! "${URLS}" = "${OLD_URLS}" ]]; then echo "${URLS}" >> urls.txt OLD_URLS="${URLS}" fi sleep 1 done;

Isn't the >> going to cause urls.txt to grow geometrically? eg, copying http://example.com/foo and then http://example.com/bar and then http://example.com/baz I think urls.txt would look like: http://example.com/foo http://example.com/foo http://example.com/bar http://example.com/foo http://example.com/bar http://example.com/baz EDIT: I stand corrected. I should have run the code instead of mentally executing it. One…

No, >> is just doing appending, cf. https://wiki.bash-hackers.org/syntax/redirection#appending_r...

Re: “This project will only take 2 hours”

#218
I've found that nearly 100% of companies that say their take home technicals only take "2 hours" actually take much longer. For anything to only take 2 hours you are going to need some prior knowledge and for no roadblocks to come up. Debugging something simple can be a 30 minute detour.

Re: “This project will only take 2 hours”

#219
Yes because I already have Terraform that will spin up a secure prod k8s cluster in any of the big 3 cloud providers.

All that’s left is compiling a deps list of react components.

English is far more verbose than machine languages. It can easily make a problem seem like there’s a lot more to consider than there is if you’ve already got a corpus of syntax to leverage.

Re: “This project will only take 2 hours”

#220
post #79

Earlier quoted context omitted.

I wonder if that's why I wasn't a good fit for a recent company I interviewed with using a take-home assignment... bear in mind it's been at least a decade since I last took a take-home, so things might have changed. I received the task on Friday evening, I spent the week-end thinking about the problem. Monday I had actual work and on Tuesday, I spent a day coming up with a shit implementation. Then, I started improv…

You have to lie about take-home assignments. That is the accepted way. I had a take home test that was to last 2 hours, and so I promised myself I would spend no longer on it. I provided a complete log of what I did minute by minute for a take home test for the last test I did as a defensive measure... There was no break, no pondering, this was flat out knowing exactly what needed to be done and just typing constantl…

Oh man that is a truly fantastic timeline. Thanks so much for sharing it. It really clarified for me why I can’t ever seem to get the take-home assignment done. I care too much!

I’ve withdrawn my application the last few times I’ve gotten task home assignments: I’d get to the 2 or 3 hour mark, realize I’m still working on clarifying my documentation (because I want to communicate that I consider this essential to a minimal product) and haven’t finished the feature(s) yet, call myself a shitty developer who is apparently an imposter, and then call it quits.

Post reply on HN