Live data from Hacker News

Engineering "home-cooked" software

ownerofhappy.org

21–30 of 32 posts

Re: Engineering "home-cooked" software

#21
This feels like someone who hasn't been in the industry long enough to know what it is like to try and design software before implementing it with groups larger than 3, and yearns for problems that aren't as complex as the ones they are dealing with.

It is easy to build "home cooked" (by his definition) software when you are building for a small number of people by a small number of people. Old Visual Basic programs built for a single version of Linux will do just fine - and that will work well for some use cases. But if you are building software that has to work on thousands to millions of machines, and fulfill their needs, you will need to build a factory to build that software.

The factory, in this case, is the infrastructure necessary to turn the R&D (you and me) into the repeatable product (that is, your app.) The factories need a lot of maintenance. If nobody is buying your product, you need to change the factory to produce outputs that people are buying. If people have bought your product (let's say... on subscription) then you need to keep the factory maintained well enough to produce the product that people are happy to buy.

Some things will be like tarsnap and change relatively little. That's great. A small shop will need less maintenance. A bigger shop that is a factory for more users with wider needs will need more complicated products and that will mean more maintenance.

But yes, if you don't need to have a return on investment, you don't need to react to customers' needs and therefore you can build a spec first and let it change little. (Or, you build something as niche and as good as Tarsnap!)

Re: Engineering "home-cooked" software

#22

Earlier quoted context omitted.

In your experience, what has improved productivity?

Weekly standup to check in with devs, leave them alone otherwise. Reach out if a high priority item comes up, but 9 times out of 10 that can be an email. I've heard that one of the benefits of agile is identifying blockers and encouraging collaboration, but I saw much better results from assuming you've hired intelligent adults with work ethic and letting them reach out and collaborate as needed. Daily standups, spri…

There's a balance. Not every team is made up of infallible devs, even at decent companies. Human nature is never full-trust.

I've known talented devs who are great people who still need more oversight than you describe. Usually they are ~5 years off from being full-trust, yet still valuable team members. Yes they benefit from daily standups.

Re: Engineering "home-cooked" software

#23
80% done, with no code.

This is often how a functional safety project works - specification is everything, no point writing any code until you know exactly what you plan to build.

Due to traceability requirements it becomes a very waterfall approach.

However one way of improving methodology and outcomes is an executable specification that can be converted to code and documenting at the very last minute, meaning you can be specifying right up until you need to deploy.

Executable specification concept comes from IEC 61499.

Re: Engineering "home-cooked" software

#24
post #20

Earlier quoted context omitted.

> An agile process should build a feature, release that feature, interview users, analyze system behavior, iterate by improving user's goal, adding appropriate scale, iterating by removing unexpected errors or behavior. I feel like there's this no true Scotsman thing going on with agile. Whenever someone describes their actual experiences with agile, there's always at least one person who speaks up and decries it as…

> I feel like there's this no true Scotsman thing going on with agile. Whenever someone describes their actual experiences with agile, there's always at least one person who speaks up and decries it as as not real agile and what agile should be. It's not mysterious or confusing. The original definition is at https://agilemanifesto.org/

That's like pointing to https://www.kingjamesbibleonline.org/ and claiming this is one true Christianity. There are some 45 000 distinct Christian denominations on the planet, each with different beliefs and practices, doing exactly that, and each claiming they're the ones getting it right.

Re: Engineering "home-cooked" software

#25
My idea of home cooked software is certainly not "waterfall-y" at all. Rather, it is building from the ground up, aiming at a fairly well defined end goal. Of course, there is no one-size-fits-all solution here. Not everyone is working on web apps, CRUD, or using node. I spent my career writing embedded systems and instrument control software, mainly in C/C++. I had colleagues who specialized on data reduction pipelines, using C and Fortran. Others who did the web/database thing. Software development is a vast and varied field. What works in one arena may well be unsuitable in another. Be prepared to be flexible and open to new ideas.

Re: Engineering "home-cooked" software

#26
post #14

I would say that this blog post is half right. The half that's not right is glaring. > the pyramids have had 100% up-time with no human maintenance It helps that there is hardly any rain in the desert. Water would foul up the structure in a matter of years. > dependencies are added like seasoning. Hundreds of packages. Thousands of foreign lines of code make their way onto your software routinely True, and I think NP…

> It's weird when people praise home-cooked meals, because I've found restaurants that have great food. Heck, I've been to various traditional sit-down restaurants where they bring you the food in one minute and is faster than standing in line at McDonald's.

It's also weird when people praise home-cooked meals and even restaurants but diss McDonald's. As I'm fond of saying, the difference between cooking and process engineering is that the latter actually cares about quality of outcome.

There's a lot of stuff you simply can't make at home, because the necessary equipment is beyond what's allowed in residential conditions (think e.g. pizza ovens, which run 100-200°C hotter than where consumer ovens max out), and on top of that, standard cooking appliances have little to no means of quality and consistency control - it's only industry that bothers with such things.

Re: Engineering "home-cooked" software

#28

Earlier quoted context omitted.

Weekly standup to check in with devs, leave them alone otherwise. Reach out if a high priority item comes up, but 9 times out of 10 that can be an email. I've heard that one of the benefits of agile is identifying blockers and encouraging collaboration, but I saw much better results from assuming you've hired intelligent adults with work ethic and letting them reach out and collaborate as needed. Daily standups, spri…

There's a balance. Not every team is made up of infallible devs, even at decent companies. Human nature is never full-trust. I've known talented devs who are great people who still need more oversight than you describe. Usually they are ~5 years off from being full-trust, yet still valuable team members. Yes they benefit from daily standups.

I'd argue they'd probably benefit more from 1-1 mentorship, and as a bonus you don't have to force your entire team to adopt agile.

Re: Engineering "home-cooked" software

#29
post #20

Earlier quoted context omitted.

> I feel like there's this no true Scotsman thing going on with agile. Whenever someone describes their actual experiences with agile, there's always at least one person who speaks up and decries it as as not real agile and what agile should be. It's not mysterious or confusing. The original definition is at https://agilemanifesto.org/

That's like pointing to https://www.kingjamesbibleonline.org/ and claiming this is one true Christianity. There are some 45 000 distinct Christian denominations on the planet, each with different beliefs and practices, doing exactly that, and each claiming they're the ones getting it right.

The Agile Manifesto is what kicked it all off. Scrum, etc. and all the other "agile" stuff that people complain about now just latched onto the word. The equivalent would be that if Jesus had personally written down his thoughts and we still had a copy floating around, you totally could point to that and say that it's the true, original version and anything else is just an interpretation that should be taken with a grain of salt.

Re: Engineering "home-cooked" software

#30
post #29

Earlier quoted context omitted.

That's like pointing to https://www.kingjamesbibleonline.org/ and claiming this is one true Christianity. There are some 45 000 distinct Christian denominations on the planet, each with different beliefs and practices, doing exactly that, and each claiming they're the ones getting it right.

The Agile Manifesto is what kicked it all off. Scrum, etc. and all the other "agile" stuff that people complain about now just latched onto the word. The equivalent would be that if Jesus had personally written down his thoughts and we still had a copy floating around, you totally could point to that and say that it's the true, original version and anything else is just an interpretation that should be taken with a g…

Except that in reality, a subset of the Bible that all those denominations agree is the literal, true, OG Word of God, is... what I linked above, +/- a book or three. The source material is not the problem here - only that everyone has their interpretation.

Similarly, everyone agrees that the Agile Manifesto is the OG source of Agile faith - and then everyone claims their own particular interpretation of it is the True Meaning anyway.

Post reply on HN