3 ms·
I know it's passe, but I generally like to start with a set of requirements first. In the old days, when we were doing XP instead of agile, we didn't feel the
by retrocryptid 4y ago
I know it's passe, but I generally like to start with a set of requirements first. In the old days, when we were doing XP instead of agile, we didn't feel the pressure to "code something, anything." Now, unless I check in a couple thousand lines of code per day people think I'm slacking.
But... not trying to say "build the UI first" is a bad choice if it works for you. I do mostly backend work on "high trust" transactions, so I tend to look at the API first and see if it matches the requirements i have at the time.
- tabtab 4y agoA good many times the customer doesn't spot important issues until they see it in a UI, preferably interactive. The design process is done best with a combination of formal written requirements and mockups/demos.
- cestith 4y agoFor some applications, like an API-driven backend made to serve other applications, you can consider that the API itself really is your UI. It's how your users interface to your code. Your users just happen to be other developers whose code had it's own UI too, maybe a text or graphical one or maybe another API.
- retrocryptid 4y agoGood point. I was interpreting "UI" as "GUI".
- BiteCode_dev 4y agoExactly. A web api, a CLI... It doesn't have to be graphical.
- skybrian 4y agoXP as I remember it was about implementing one customer-relevant feature at a time. This isn’t too-down or bottom-up, it’s doing a thin vertical slice. There shouldn’t be code that isn’t used or buttons that don’t work. We did work from a designer’s mockup, though.
- retrocryptid 4y agoI don't think that's XP.
- BiteCode_dev 4y agoTrouble is, how do you get this set of requirements? The UI is the answer to that.
- retrocryptid 4y agoThe UI [GUI, API, CLI, etc] is a statement in the "solution domain." By "requirements," I mean a problem statement. "A form with three text inputs labeled street, state and zip" is solution while "the system should allow the user to specify an address" is a problem statement. (And ideally it should be more detailed with respect to its context: "The system should allow a user to specify an address associated with a delivery record, associated with the user's id.")
- BiteCode_dev 4y agoThe problem is generally poorly perceived and expressed by the client, and badly understood by the dev. So the UI is the best road to build one in collaboration with the client.