Live data from Hacker News

I'm Sure It Will Only Take You A Few Days To Code

danshipper.com

31–40 of 117 posts

Re: I'm Sure It Will Only Take You A Few Days To Code

#31
post #13

so reverse the question - "why does programming small things take so long?" (assuming x, y and z were relatively standard). is there a niche in this somewhere that maybe some % of the guru class should be focusing on 'making typical, trivial'? ie, we found 70% of websites include these features - download this template, push run and you have a website running. change text on front page manually might actually be good…

Because "x, y, and z" are "standard" only in the "the great thing about standards is; there's so many of them to choose from" sense of the word.

Recent example. Client: "We just want an online shop" - great clickety click, Magento is installed, stick their logo in, tweak the stylesheet to match, call it "done".

Over the next few weeks/months: "Where's the blog?" "How do I enter auctions?" "I want to display products with individual pricing, but sell in cases of a dozen." "My SEO consultant says I need some 'landing pages' - where do I make them?" "This doesn't sign people up to out MailChimp email lists!" "It doesn't work right on my wifes iPhone."

Discuss needs with client, install various plugins, a wordpress blog, tweak the templates to make single-pricing/bulk-selling "work" for boxes of 12 (and kick myself knowing it'll bite me in the ass one day doing it this way…)

Then: "How do I make the auction extend the time if someone bids in the last minute?" "How do I enter products that come in boxes of 6 or 8 instead of 12?" "It works on the iPhone now, but not on a friends 2 year old cheapo Android 1.8 phone!"

Then:

"How do I auto calculate freight costs based on both weight and cubic size, for orders with multiple products?"

(at which stage I start explaining combinatorial complexity and the knapsack problem to the client, and run a warm bath and remind myself "down, not across…")

Re: I'm Sure It Will Only Take You A Few Days To Code

#32
post #19

The Lifecycle of a Project Manager: Phase I: (Idealism) Treat building software like building a bridge. Analysis --> Design --> Development --> Testing --> Implementation. Phase II: (Pragmatism) Realize that Phase I doesn't work. Try to figure out why. Decide that the weak link is Analysis, i.e. we're no good at estimating and hitting deadlines because we never have good enough specs. Devote your life to the art and…

" Hit your deadlines every time, not by estimating better, but by not caring how pretty your deliverable is."

I'd kill for some Phase IV PMs. :)

(Actually, it's rare that I meet Phase I PMs. Very few PMs think in terms of developing software across those 5 stages. To them it's Photoshop -> Make Photoshop Mockup Do stuff -> Fin)

Re: I'm Sure It Will Only Take You A Few Days To Code

#33
post #19

The Lifecycle of a Project Manager: Phase I: (Idealism) Treat building software like building a bridge. Analysis --> Design --> Development --> Testing --> Implementation. Phase II: (Pragmatism) Realize that Phase I doesn't work. Try to figure out why. Decide that the weak link is Analysis, i.e. we're no good at estimating and hitting deadlines because we never have good enough specs. Devote your life to the art and…

Most managers would know Phase IV if at all they had done some real work.

As it happens people generally go over to Project Management if they can't do technical work.

This creates a problem, you are asking somebody to manage things which he himself didn't want to do.

Re: I'm Sure It Will Only Take You A Few Days To Code

#34
post #26

Earlier quoted context omitted.

Yeah and Linus coded git in a weekend... The infuriating thing for me is that people don't get that these monumentally fast development achievements still involved a massive expenditure of personal effort. Thus the "It'll take a few days of coding" customers of the gp are only more annoying if they cite examples like yours, expecting a complete product in a few days.

Not only that, but they require all the skill and experience of truly world-class experts in their fields. Yes, Linus can throw together an amazing dvcs that scratches his particular current itch in a weekend. The just-graduated CS major you're pitching your idea to? The one with three whole php and/or ruby websites under his belt? He'll be able to do that too - after spending 20 years running the worlds most popular…

I can/have built in some amazing stuff over weekends. But generally the requirements for that are, and in no specific order.

    1. I must be in a flow.
    2. I am using a technology very familar, so I know
    the tools and many things.
    3. I am doing something new. Not maintaining some ones
    code or interacting with an external team.
    4. No disturbances and other office distractions like 
    office emails.
Building new things are different than maintaining. Many a times I'm waiting for some other team's inputs to proceed. Or I'm required to fix a list of X number of bugs which can't be fixed until I understand the underlying code base well.

Create this webpage in 15 mins kind of arguments don't work because you are adding something into a working system and you can't generally do so until you understand everything about the system.

Doing something new is different. You definitely can get to the first prototype if you know what you are doing, what you are using to do it and no distractions.

Re: I'm Sure It Will Only Take You A Few Days To Code

#35

non-programmers, in my experience, tend to think software is "just that stuff you see on the screen". So if they create some screen mockups of the UI, they think the programmer pretty much needs to sit down at the computer, and do some simple keyboard/mouse clicky-clicky to make the screen match his mockups. and then they're done. To them, it's just visual, and static. They don't understand there are processes, threa…

Well in such a case those people should not opt to manage technical people.

Re: I'm Sure It Will Only Take You A Few Days To Code

#36
post #31
post #13

so reverse the question - "why does programming small things take so long?" (assuming x, y and z were relatively standard). is there a niche in this somewhere that maybe some % of the guru class should be focusing on 'making typical, trivial'? ie, we found 70% of websites include these features - download this template, push run and you have a website running. change text on front page manually might actually be good…

Because "x, y, and z" are "standard" only in the "the great thing about standards is; there's so many of them to choose from" sense of the word. Recent example. Client: "We just want an online shop" - great clickety click, Magento is installed, stick their logo in, tweak the stylesheet to match, call it "done". Over the next few weeks/months: "Where's the blog?" "How do I enter auctions?" "I want to display products…

So good strategy would be provide customers with almost free standard solution and then customize it step by step for ever increasing fees, right?

Re: I'm Sure It Will Only Take You A Few Days To Code

#37
post #31

Earlier quoted context omitted.

Because "x, y, and z" are "standard" only in the "the great thing about standards is; there's so many of them to choose from" sense of the word. Recent example. Client: "We just want an online shop" - great clickety click, Magento is installed, stick their logo in, tweak the stylesheet to match, call it "done". Over the next few weeks/months: "Where's the blog?" "How do I enter auctions?" "I want to display products…

So good strategy would be provide customers with almost free standard solution and then customize it step by step for ever increasing fees, right?

That sounds like the business model of most of the agencies selling WordPress solutions who have been hiring me for the last two years.

Re: I'm Sure It Will Only Take You A Few Days To Code

#38
P = programmer; NP = non-programmer

  NP: How long will it take?
  P:  It'll take as long as it takes.
  NP: I don't understand. What does that mean?
  P:  When you tell me that the product is finished, it's done.
  NP: You mean you can't estimate how long it'll take?
  P:  I can't estimate when you'll decide that it is done, therefore an
      accurate prediction is impossible.  From experience I know that a
      project like this can take from three to nine months.  A lot 
      depends on you, the choices you make and how well you communicate 
      them to me.  A lot also depends on how many times you change your
      mind during the process and how many times you change the
      specifications during the job.  Major changes can even cause the
      project to be scrapped and start over.  Rest assured that I will
      not be the one slowing this down.
  NP: How much will it cost?
  P:  It will cost as much as it costs.
  NP: I don't understand.  What does that mean?
  P:  You just learned some programming!  
      Go back to your first question and re-read the entire thing.  
      This is called an endless loop.

Re: I'm Sure It Will Only Take You A Few Days To Code

#39
One of my favorite ones was a fellow who wanted an iPhone and iPad game done. He proclaimed that it had to be done for $10K. This game easily required six months of work. It also required server-side development and support. He also had no idea that every so often you need to fix, I mean, update, your apps because new iOS releases might break them.

I was open-minded and decided to invest some time educating him on the process and the needs of the platform. Once he had enough information he networked and hired someone out of India to build him the game. I was not happy about that at all. Then I learned that he was having all kinds of problems with the process (and the app) being a total mess. He's learning his lesson.

Re: I'm Sure It Will Only Take You A Few Days To Code

#40
post #27

Reminds me of "open textured" in legal philosophy: the idea of precedent in law is you can use it to predict how a court will decide in future. This mostly works, but if you have a bunch of cases (data points in multidimensional space), simple interpolation isn't always accurate. You need to look at the specifics of the present case (there's still uncertainty because each judge has an individual perspective, but that…

That makes me wonder what other disciplines there are that have the unpredictability and open-endedness of software. I read that on large construction projects, a 1% overrun is considered failure. That is clearly a different universe. Who else is in our universe?
Post reply on HN