News for hackers. Stuff that matters.
Re:Microsoft 3D Movie Maker Source Code by magpi3 on Wednesday May 04, 2022 @03:31AM (#31257735)
This is an amazing, amazing skill. Do any university classes teach programmers how to think like this? Can it be taught?
Re:Microsoft 3D Movie Maker Source Code by dranka on Wednesday May 04, 2022 @03:43AM (#31257801)
It sounds a bit like the Waterfall model. It became highly unfashionable in the 90s, maybe even earlier.
Re:Microsoft 3D Movie Maker Source Code by buescher on Wednesday May 04, 2022 @01:11PM (#31263198)
It's really more of a proto-agile approach! I've never done the manual first personally, though I had a boss that had been on a project run that way early in his career who always wanted to do things that way again. The idea is to skip distilling requirements into specifications, engineering documentation, and user documentation. Instead you gather requirements AS user documentation, and only work backwards from there as necessary. Sort of like skipping all the specifications to V&V activities in a traditional systems engineering approach by writing tests first in test-driven-development.
Re:Microsoft 3D Movie Maker Source Code by dranka on Wednesday May 04, 2022 @02:48PM (#31264343)
My comparison to waterfall was a reductionistic take on the specifications up-front before coding starts aspect. If comparing it to the full waterfall process then it is definitely a fresh take!
Re:Microsoft 3D Movie Maker Source Code by swarnie on Wednesday May 04, 2022 @03:44AM (#31257809)
This is pretty much how we were taught in college 15 years ago.

Actually implementing something is left to the final 30% of a project. One must first bore themselves to death with design and documentation before a single line of code is written.

Re:Microsoft 3D Movie Maker Source Code by IshKebab on Wednesday May 04, 2022 @05:27AM (#31258337)
And then discover that the entire foundation of the design can't work because of some critical logical flaw you didn't think about...
Re:Microsoft 3D Movie Maker Source Code by samlittlewood on Wednesday May 04, 2022 @09:40AM (#31260222)
Something I missed above is that either prior, or concurrently, there will be performance experiments to check that things are staying sane, but these do not contribute to the later software development (except as a reference) and are likely not consistent with each other. The deliverable at this point is only documentation - getting it good as possible without any concern for impact on existing implementation. The goal is to get as far up the slippery pole as possible - inevitably things will slide back over future version iterations.
Re:Microsoft 3D Movie Maker Source Code by jussij on Wednesday May 04, 2022 @10:34AM (#31261026)
That describes most software design and development to a T. The reality is you'll hardly ever get the design right the first time around.
Re:Microsoft 3D Movie Maker Source Code by swarnie on Wednesday May 04, 2022 @06:36AM (#31258657)
Yep - It was a pretty flawed methodology all told.
Re:Microsoft 3D Movie Maker Source Code by nitrogen on Wednesday May 04, 2022 @07:41AM (#31259137)
It's only flawed for beginners. With 10 years or more of experience, it's possible to design successfully based on that experience.
Re:Microsoft 3D Movie Maker Source Code by badsectoracula on Wednesday May 04, 2022 @08:17AM (#31259424)
It is flawed for (otherwise) veterans too if they are trying to do something that they haven't done before so do not know what they do not know.

This really only works if you have done the same or something very very similar before and so you have practically no unknowns. Notice that the developer who did that commented above that they had already done similar work at the past.

Also related this quote about how Joe Armstrong (of Erlang fame) approached problems (from [0]):

> Joe wrote amazingly simple programs and he did so in a peculiar way. First he wrote down the program any old way just to get it out of his head. Then once it worked he would then immediately create a new directory program2 and write it again. He would repeat this process five or six times (program5, program6, ...) and each time he would understand the problem a little better and sense which parts of the program were essential enough to re-type. He thought this was the most natural thing in the world: of course you throw away the first few implementations, you didn't understand the problem when you wrote those!

[0] https://github.com/lukego/blog/issues/32

Re:Microsoft 3D Movie Maker Source Code by IshKebab on Wednesday May 04, 2022 @11:48AM (#31262130)
Sure if you're writing a similar program to one you've already written. But then it's just agile on a longer time scale!
Re:Microsoft 3D Movie Maker Source Code by HidyBush on Wednesday May 04, 2022 @05:00AM (#31258190)
I mean, it's not really an amazing skill in my opinion. What's amazing about writing a high level explanation of how your program works, maybe with a few simple diagrams to show the reasoning behind it, and then writing a more detailed specification of what the program should do? It's basically a more comprehensive version of first writing the flow chart of your program in pseudocode with attached comments and then implementing it.
Re:Microsoft 3D Movie Maker Source Code by magpi3 on Wednesday May 04, 2022 @07:27PM (#31267199)
It's easy to do it, but I have never really heard of anyone doing it successfully like this. Most programmers come up with a basic plan and then just start coding it and things evolve from there. As the saying going, "a battle plan never survives contact with the enemy."

I'm incredibly impressed with programmers that can visualize a large program and the end product actually resembles what they originally envisioned. That is a gift.

Re:Microsoft 3D Movie Maker Source Code by llampx on Wednesday May 04, 2022 @03:37AM (#31257770)
Can that really happen with Agile, which means requirements can change or new requirements can come in at any time?
Re:Microsoft 3D Movie Maker Source Code by OwlsParlay on Wednesday May 04, 2022 @06:07AM (#31258503)
You'd still start off with requirements - documentation - code, it's just on the understanding that any of these can change.
Re:Microsoft 3D Movie Maker Source Code by withinboredom on Wednesday May 04, 2022 @04:06AM (#31257929)
Sure, why not. Just change the documentation first.