Live data from Hacker News

“This project will only take 2 hours”

web.eecs.utk.edu

101–110 of 279 posts

Re: “This project will only take 2 hours”

#101

Earlier quoted context omitted.

So? In any decent programming environment, checking if a string is a URL is a one liner

Not without false-positives. E.g., is "foo.bar" a URL? Maybe. But it could also be a filename. How do you know if it's a "real" URL or not?

In The Good Ol' Times, I would have replied "let's check the TLD", but now that list is basically trending to include the entire English dictionary... so I guess the only response these days is "ask DNS". So we've already gone from "pattern-match a string" to "pattern-match then make network calls", which (as anyone who's done any network work knows) also requires managing a bunch of possible/likely error states (offline, timeout, partial response, response format, etc etc). So yeah, nothing is as easy as it looks.

Re: “This project will only take 2 hours”

#102
My gut reaction is that the student was right. The spec was: "log all urls from clipboard into a file". After the fact teacher in question came up with more specifications, which is fine, but when the scope of the project changes we need to reconsider the time tables and work required.

This is normal software development. PO/customer wants something. You give your estimate. They accept it and you start working and then middle of the sprint or in demo or during testing they come up with new requirements. These were not in the scope of the original project and thus need to be re-evaluated with new estimates and possibly new project.

Re: “This project will only take 2 hours”

#103
post #66

Reminds me of how some companies give take-home assignments to job candidates. > Here's a task that takes a day to do sloppily and at least two days for you to show your best work. We want to be respectful of your time so please don't spend more than 2 hours on it.

The take-home assignment seems to me a slightly broken system; it's easily gameable because there's zero supervision. Let's say there's two candidates for a position who are both asked to complete the take-home assignment, Candidate A and Candidate B. Candidate A is the superior candidate and spends only two hours on the task (as requested), and Candidate B spends 2 days. Candidate B submits the better assignment and…

When I've interviewed using homework like this, it was with the sole purpose of bringing it along and talking to it. That won't be gamed. And, by the way, that lends itself also very well for bringing whatever fitted in the time box, and having a discussion on the meeting about the tasks that remain, and about their prioritization process. You may like it when you see less production code, in favor of some tests! People coming in with a full-fletched solution, and then to tell me they didn't have time for a test, what am I to make from that?

Re: “This project will only take 2 hours”

#105

Earlier quoted context omitted.

> Anyone can write a rough command line tool that monitors the clipboard and prints to stdout. There's a good chance that this will solve 95% of all needs. Most of the features suggested in the article beyond the original premise are unnecessary.

One of my CS teachers actually said "The programming is always the easy part. Designing the features and the interface usually takes 95% of the time."

Your CS teacher never looked at a web browser from the inside, or at other actual big scale software.

Re: “This project will only take 2 hours”

#106
post #74
post #66

Reminds me of how some companies give take-home assignments to job candidates. > Here's a task that takes a day to do sloppily and at least two days for you to show your best work. We want to be respectful of your time so please don't spend more than 2 hours on it.

I only accept paired assignments. If you are going to use my time, the least you can do is offer an equal amount of time on your side.

"Thank you for your time, we will keep you in mind. Next!"

Point of programming assignment is to see if you can actually write code. No one is waiting for perfect implementation, just working code that fills the spec, documentation, and tests.

Re: “This project will only take 2 hours”

#107
post #101

Earlier quoted context omitted.

Not without false-positives. E.g., is "foo.bar" a URL? Maybe. But it could also be a filename. How do you know if it's a "real" URL or not?

In The Good Ol' Times, I would have replied "let's check the TLD", but now that list is basically trending to include the entire English dictionary... so I guess the only response these days is "ask DNS". So we've already gone from "pattern-match a string" to "pattern-match then make network calls", which (as anyone who's done any network work knows) also requires managing a bunch of possible/likely error states (off…

Can't quite do this most of the time due to privacy concerns. Leaking random URL-looking text to the network is a big no.

Re: “This project will only take 2 hours”

#108
post #66

Reminds me of how some companies give take-home assignments to job candidates. > Here's a task that takes a day to do sloppily and at least two days for you to show your best work. We want to be respectful of your time so please don't spend more than 2 hours on it.

The take-home assignment seems to me a slightly broken system; it's easily gameable because there's zero supervision. Let's say there's two candidates for a position who are both asked to complete the take-home assignment, Candidate A and Candidate B. Candidate A is the superior candidate and spends only two hours on the task (as requested), and Candidate B spends 2 days. Candidate B submits the better assignment and…

If you have 2 hours to submit the task and you submit it after 2 days you are already out

Re: “This project will only take 2 hours”

#109
post #9

> A few students came to me asking if I had any ideas for a software project that they could work on outside of class. > I explained an idea for a utility that I had been wanting: A desktop program that monitors my clipboard for URLs and logs them automatically. I think this person misunderstood the students, the student wanted a project to practice programming, not a project to practice project management. The progr…

> The programming parts of this would take 2-4 hours This is, literally, the error that the entire article works on dispelling. Anyone can write a rough command line tool that monitors the clipboard and prints to stdout. Writing a usable GUI application is a lot more work. That’s not project management, that’s coding work. The ratio of project management work to coding isn’t 10:1 or even 100:1 like you’re suggesting.

Honestly, I'm a bit rusty but I feel like I could've done this project in C# with WinForms in a bit over 2 hours. Not all the advanced features asked for, but the minimal viable product.

It's a shame that Microsoft is shifting away from the old, reliable WinForms for their new UWP system because making a quick and dirty implementation of many or these requirements would actually take very little time for many moderately experienced C# GUI programmers. It'd be little more than a tray icon with a list view log, a settings screen and a crude search bar, but it sure would be functional.

I don't know any other GUI framework that would allow me personally to do this in the 2 hours as suggested, though. Even with other batteries-included toolkits like Electron (ew) would you need to do all kinds of special searches to get things like clipboard and setting sync working right. Maybe Python and Qt could serve a similar purpose, though you'd probably to pull in a lot of packages to get clipboard monitoring and database storage working right.

I get the point, which is that simple ideas often have hidden, complex requirements that take a lot more time, but in this circumstance it's really more a lesson about how bad the state of GUI programming still is after all these years. VB6, despite its stupid programming language, is still the golden standard for a GUI application design framework for me and we've barely made anything equally usable.

Re: “This project will only take 2 hours”

#110
post #30

Was curious if I could pull this off, and managed to get a Mac version "working" at an "acceptable" (there isn't even a quit button yet) level to serve as a starting place. Was embarrassed by the quality, since it's just 5-6 snippets (of various style) pasted together...but I might as well share it anyway to prove the point: https://github.com/owenfi/clipboardcopies The article does strike me as "scope creep" or miss…

I can write an OS in just 2 hours. Just a few lines of code which can be booted straight on the hardware an sit there doing nothing. It is an OS? It is. It is useful? It is not.

I want to see that done on modern x86-64. Make a livestream or something!
Post reply on HN