top | item 23457802

(no title)

alharith | 5 years ago

Efficient for what? What are we solving for? Rushing out buggy, complex, unmaintainable, undocumented software? Sure. We are certainly more efficient at that. Hardly anyone takes the time to understand anything anymore, thoroughly, and detail it for others. It feels like all surface-level stuff.

discuss

order

alasdair_|5 years ago

>Hardly anyone takes the time to understand anything anymore, thoroughly, and detail it for others. It feels like all surface-level stuff.

It's a pity that this point will be lost to downvotes.

There is a common problem when the work of people that put the time in to really understand, test, improve and document the things we rely upon is undervalued and when that which is rewarded is superficial understanding and gluing together things that barely work is prioritized.

Yes, iterating quickly is important. Yes, it's also important not to waste time making something more robust than it needs to be. I'm not disputing that, what I AM saying is that as things scale up and hundreds of users turn into hundreds of millions of users, it's extremely important to have a culture of rewarding the people that take the time to make these systems robust and continue to ensure they perform well.

As a small anecdote, this was really driven home by a one-on-one meeting I had with an old manager: I'd started working at a small startup which almost completely lacked any kind of documentation and almost everything needed to be figured out by trial and error or (equally common) by pestering the couple of people who had things like passwords and keys and admin access to do things necessary to let a new developer begin development work.

Realizing this was going to be a giant pain in the ass as we scaled, I took the time to write a ton of documentation, checklists, scripts and onboarding docs so that new developers could get up to speed quickly. I then trained the new devs as they came onboard to ensure they got up and running as fast as possible.

Back to the one-on-one: I ended up getting told that my performance was a concern because, unlike myself, the new developers had managed to get up to speed and become productive very quickly and it reflected poorly on me that I had taken so long.

Since then, I've taken a lot more care to assess the culture of a company before doing what I consider to be "the right thing" and do deeper-level work.

gtsteve|5 years ago

I meant in terms of documentation, i.e. stack overflow, youtube, etc. Universities are putting their course materials online for free, that sort of thing.

It's easy to be cynical about modern software, but remember it can still be sold and the economic benefit of being able to quickly throw together something that looks like a finished product to test an idea is hard to quantify.

I developed a product like what you described and started a company using nothing but my laptop and an AWS account. To make the same product in 1997 would be difficult if not impossible without very deep pockets.

alharith|5 years ago

> To make the same product in 1997 would be difficult if not impossible without very deep pockets.

And likely 10-100x the quality and reliability, and without needing to sell every bit of your personal information. Has anyone stopped to ask, maybe we just don't need all of this software?

sixo|5 years ago

Now we can just:

`import <a career's worth of work>`

MaxBarraclough|5 years ago

Between the operating system, development tools, compiler, and libraries, a 'Hello world!' web server is several careers worth of work.

goatinaboat|5 years ago

We are certainly more efficient at that. Hardly anyone takes the time to understand anything anymore, thoroughly, and detail it for others. It feels like all surface-level stuff

I sometimes feel like every project is either learning a new thing as you go (for no other reason than that it’s new and cool) or maintaining some written be someone who was learning as they went (because now that bug ridden pile of crap is running in production).