Live data from Hacker News

Developers spend most of their time figuring the system out

lepiter.io

1–10 of 418 posts

Re: Developers spend most of their time figuring the system out

#2
This matches my experience. IMO the best alternative tovreading code is to talk about the intent of the system by other coders or architects. Formulating questions is a start of understanding. Getting answers or directions increases understanding even more, for both parties.

Re: Developers spend most of their time figuring the system out

#4
Relevant to this article is Peter Naur's paper on Programming as Theory building: https://pages.cs.wisc.edu/~remzi/Naur.pdf

He argues that the biggest determinant on whether maintainers on a system they did not build will succeed is whether they will have access to the original developers: "The conclusion seems inescapable that at least with certain kinds of large programs, the continued adaptation, modification, and correction of errors in them, is essentially dependent on a certain kind of knowledge possessed by a certain group of programmers who are closely and continuously connected with them."

Re: Developers spend most of their time figuring the system out

#5
Haha, so true!

I've found that for most systems, there are three great ways to "figure it out".

* Start from input. (Browser, API, whatever starts a process.) Map from there.

* Start from data storage. (Database, flat files, whatever.) How does state get persisted?

* How does the system move into production? If you can make a small change (even adding an innocuous comment) and see it all the way from your machine to prod, you can iterate and start to map the system.

Re: Developers spend most of their time figuring the system out

#6
It's why good abstraction and documentation for it is so powerful - you only need to understand the API and not anything else.

We start teaching about software like it's 'algorithms' when that is frankly, almost pedantic. That was never the hard part.

Scaling the complexity was always the hard part.

Simple, clear code, absent leaky abstractions, enough documentation etc..

Re: Developers spend most of their time figuring the system out

#7
I get the impression that there are many professional developers who have never actually seen good documentation at any point in their lives. So many organizations think that having all of the functions listed in on a Javadoc page is somehow the same thing as documentation. And they wonder why it takes a new developer months to become productive..

Re: Developers spend most of their time figuring the system out

#10
There are three ways you can make an app easy for new developers to quickly be productive in... as long as deployment and code management tools are easy:

* Coaching/Mentoring - Original developers there to help

* Great documentation - App is documented, and it's easy to discover how it's put together

* Great API / abstraction - The api or structure is really easy to understand and use - this is why REST beat out more sophisticated API models. Even so, it needs great documentation to be easy to learn and build with

I think a lot of companies don't get any one of the three above right, so everything is very opaque. Also, you can't let tooling block developers from getting into understanding the code. New dev onboard times are a great way to measure this.

Post reply on HN