Hacker News new | ask | show | jobs
by raihansaputra 1776 days ago
I recently watched a lot of Lean Manufacturing/Agile videos recently[0] (physical factories, not software), and was looking to translate some of the methods to the SDLC process. What's interesting is related to this. The endgoal of Lean process is to take out all the decision making out of building/repeatable process, and only spend struggle/decision making on improving the process. The Kanban Cards tell everyone what to do. See card? Do x and move card to y. Repeat. In the current state, doesn't really apply to software.

The goal of software is to automate/codify everything, so we _should_ not repeatedly doing things. Even implementing a function takes a few decisions. What's the name? What's the input? Input validation? What's the output? What's the name of the variables inside the function? Should you use .map or for in? Not to mention thinking about interactions between parts of the larger infrastructure/system (browser for FE, network stack for full stack, DB for BE). Every change we're making is an "improvement" to the understanding of the business process/problem to solve. To reduce code LoC means to decide on the framework/approach/DB/limitations. More decision making. And the abstractions can go on and on.

From my Front End point of view, I'm handling a lot of intertwined concerns. On the actual app side, there's UI Layout, copy (and dynamic copy for pluralisation or otherwise), data correctness, user input/output validation, handling errors (from BE or network) (and displaying the correct error and do the correct action after that). On the tooling and deployment side, I have to be aware of domain/subdomain, URLs, mobile/desktop interaction (back button on mobile on modal), deploying, preload/precache, compiling the code with bundlers, optimising size, knowing the browser limitation, security concerns, etc. I'm sure I missed a lot still.

I know there's also this much nuance and complexity to any part of the stack (BE, IoT, DevOps, QA) even non-tech in Design and Product. The computer is so abstract that I feel we as an industry haven't (or can't) converge into something that is easier to work with (org, process, or tooling wise), even across organisations.

[0]: https://www.youtube.com/watch?v=EqtKKkastWk

1 comments

Wow! I've researching different parts of SDLC and Software Engineering / Software Architecture / Distributed Systems in general, and I noticed a lot of cross-cutting and intertwined/interrelated concepts. I even start adding a first page/slide of every document titled "Intertwined concepts".