Where do you start your design - code, user interface, workflow, or something else?

I discussed this at work and wondered where people start their projects. We tend to start by developing code to solve the problem presented to us, but it's probably all of us (or were) programmers.

I was wondering where other people and organizations start their design. They start by solving the problem as a coding problem, sit down and design which user interface to use or display data or workflow?

thanks

+6
language-agnostic design analysis
source share
10 answers

Why not start with acceptance testing?

One of the things that I insisted on in recent projects is to ensure that the test team participates in the project with a lot of headphones. If you cannot agree with the eligibility criteria with the client, the question must be asked, are there any requirements for the project?

To this end, I am now very interested in testing frameworks that try to catch requirements in a tested way, for example:

Perhaps a preliminary automated acceptance test / requirements verification system would allow more than one solution to be tested.

+2
source share

I always start work with a process / process. I found when you start by modeling business processes / workflows, as a rule, you get more information that makes the user interface more usable, and the code / requirements are usually more suitable for the needs of users.

People usually make the mistake of starting to develop code / user interfaces before they really understand the workflow. With that said, if you understand the big picture, then you can start developing any of the three work processes, code, ui (and in this preferred order).

+3
source share

I think that the answers you get to this question (in its current form) will mainly reflect the types of applications created / created by the people who write the answers. For example, if you are developing a program that will receive data from one database (or some source in any case), massage it as necessary, and then put the result in another, most likely you will start by thinking about the database schema, data flow and data encoding / formatting (perhaps roughly in that order).

On the other hand, if you write a regular desktop program of the type that opens a file, it allows the user to edit its contents and then save it (whether it be a photo, a word processing document, a speech table or something else) the probability that the base schema data will not jump to the forefront of your thinking. Someone who looked at (for example) the specifications of the Microsoft Office file formats would probably have the right to say that in some cases the design would be better if a more modern presentation came to the fore, but it usually won’t in any case .

To get a more meaningful answer, I think you need to step back a little from simply "what is your approach to solving the problem?" to something more similar: "What is the relationship between the type of problem and your approach to solving it?" Otherwise, most of what you get will usually be a little more than an indirect statement about what problems this person worked.

+3
source share

Personally, if the application has a user interface, then where I start, as it normally crowds out processes and workflows.

prototyping paper where it makes sense and repeats the design when I work.

If this is a command line application, I think very carefully about the command line options, default standards, and normal usage patterns before getting started.

+1
source share

My general workflow tends to go along these lines:

  • Capture requirements (definition of inputs and expected outputs).
  • Create something that could work (the basic idea of ​​a program / data flow structure is to explain how to get from input to output in requirements).
  • The prototype of any algorithms and verification using real data (usually in excel and / or python to prove what we can get from input to output).
  • Implement the solution (compile the result in C ++ /. Net).
  • Try death / correct all errors that come to light on the subject of previous models and any other tests that seem important.
  • Optimize for any major bottlenecks or usability issues.

I generally create embedded software solutions and / or graphical interfaces for connecting to these systems and managing them / outputting output data.

+1
source share

I start with the workflow and functional requirements. I get this work regardless of the user interface (usually with command line tools and scripts), almost always with three test frameworks (full-featured / unit test, quick “start and run” status checks and stress tests). The last step is the user interface.

+1
source share

I start with design from requirements. If requirements require a user interface, I would be inclined to design this as a subtask and develop a computational engine (or as you call it) as another subtask; it is a kind of MVC with a clear separation between M and V, with C providing a link between them. Therefore, designing C becomes another subtask.

But I rarely have the luxury of creating anything from scratch these days, I will most likely add new modules and new features to existing systems. In such cases, most of the user interface design has already been completed, so it has a lot of M.

And I heard that Test Driven Design is a popular movement these days, so tests can be another starting point for you.

0
source share

I always start with requirements and then create a database and then create an application. An application developed before the database is a recipe for problems. I think it is interesting that no one else thought the creation of the database was important enough to mention. Unsurprisingly, there are so many poorly established commercial applications.

0
source share

I start with raw data. Even with data structures, but with integers, floats, arrays of strings, arrays of integers, etc. There are no uml diagrams or user requirements, no class hierarchy or inheritance, no class or function interfaces, no workflows or processes. Just one algorithm that creates one data set.

0
source share

I have little experience in programming and design, but what I have is mainly related to databases, so I'm starting. When I have a problem, I sit down for an hour and cross out the database schema, create it, and then add my SPs and views.

Then write the requests and forms, the actual HTML and JS and CSS, which make it look so beautiful (or not, which usually happens with my “projects”).

So, in the MVC model, I assume that M is first, then V? I have little experience with MVC.

Is this a relatively natural way?

0
source share

All Articles