Tasdik Rahman Profile picture
Engineering @newrelic • Formerly @deliveryherocom, @gojekindonesia, @razorpay, past contributor @ovirt • Backpacker, theatre, bouldering • Opinions my own

Mar 28, 2019, 9 tweets

From Frederick P. Brooks, Jr., the author of mythical man month. His essay on why there is no silver bullets in the world of software. Some takeaways from it. worrydream.com/refs/Brooks-No… (1/n)

He mentions that the hard part of building software is specification, design, testing of a conceptual construct, not the labor representing it and testing the fidelity of the representation. He argues that, if that's true, building software will always be hard. (2/n)

We have invented higher order languages and unified programming environments which have reduced the friction of developing something over the course of time. But it hasn't removed all the complexity while building complex systems. (3/n)

He presents potential silver bullets like #objectorientedprogramming, #ArtificialIntelligence which helped us in achieving our results more efficiently in cases if not in the best possible way. How people have always envisioned about programs writing themselves. (4/n)

The highlight which I feel Fred tries to articulate is that, unlike buildings or cars which are built, #software is grown. Iterating over it incrementally, as requirements change all the time and suggestions on why feedback cycle with clients is key in iterations. (5/n)

For iterating faster, he suggests building prototypes which simulate the important #interfaces and performs the main functions of the intended system, but not making an attempt to handle exceptions, respond correctly to invalid inputs, abort cleanly. etc. (6/n)

He argues for the above case that by doing that, the client will now be able to test it for consistency and usability. Since requirements change all the time and most of the times, people don't know what they want. (7/n)

By incremental development, he says that the #system should first be made to run, even though it does nothing useful except call the proper set of dummy subprograms. Then bit-by-bit, fleshed out. (8/n)

This helps one achieve a top-down approach to software, allowing easy backtracking. Each added function or functionality is incrementally added on top of what is already there. Which affects morale significantly, as there is a running systems in front of you. (9/9) #paperswelove

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling