For a large project, what planning should be done before coding, and how should it be approached?

What is your method of “displaying" an idea before it is created?

Let's say I wanted to take a large project, for example, at the scale of a site such as Facebook or MySpace. What planning / design steps should I take before starting my work?

For example, should all pages after page be displayed (their functions, data, etc.)?

+6
workflow bduf
source share
10 answers

For a large project, first think of a one-line description of your site (try not to use any keywords here). Then think of three design maxims (the rules of your design should never contradict). Then draw a few views and come up with a few custom cases (1 day), then earn the code for 2 weeks (this will be a prototype of rejection, so work as fast as you can to forget about bugs and details, do not worry about code smells or patterns design, just do as much as possible), then reevaluate all of the above steps and throw away your prototype for two weeks and start your project seriously, using strong engineering and design. After a month, you evaluate your (collective) morality and get feedback. If all goes well, continue, you have a long trip ahead of you, otherwise just give up, do the posthumous and begin with new goals.

+6
source share

I always start with user interface design. I figure out what the user should do and what controls I will give them. As soon as I get it as I like, I start with the wiring code.

+3
source share
  • Make a list of all the features that are on the site.

  • Make a list of nice features.

  • Make a list of website weaknesses.

  • Order this list and prioritize the items that will be created first.

  • Decide what can and cannot be done.

  • Get to know your customer and present these results.

+2
source share

I usually mindmap

  • The problem I'm trying to solve is
  • translated into exact requirements,
  • then mapping to user workflows.

Crossbreeding the functions of mindmapping software makes it very easy. Since mindmapping is a “free form view”, will I ultimately concentrate on the “task” rather than the “presentation” (for example, what type of UML diagram should I use to represent this)?

After the initial ideas are clear, I can work on the project plan, specification / project documentation using UML to get more detailed low-level information. This approach usually works well for me.

To find out if this works for you or not, you can use FreeMind (open source software for thinking, good but currently limited functionality). Then you can try Mindmanager or iMindmap for thinking. Both integrate well with other Office products.

+2
source share

Usually I start by grabbing my notebook and just start writing down what I want, in terms of features, this should be pretty detailed. And it can be quite random with every thing scrambled together, if so, when you finish, make an “official version” of your ideas on paper (a REAL pen and paper are best for this, in my opinion).

Then I start to make some tips on how the pages look, what information it should contain and translate into the global database structure. Then work with the global design at a more advanced level, where all the pages are collected, with the relationship between tables and others.

After that, I create the most important pages on the code framework (I always use the framework if you do not forget part of the framework), and by the "most important pages" I mean, for example, a blog that will have posts. After that, create not very important pages, in the case of a blog, which can be an archive of posts.

If you have done this, put the code along with the design, or do it when coding, unless you separate the code from HTML / CSS / JS.

Oh yes, do not expand your first idea along the way. Just write it and do it later. So if in the case of the blog again you think that half you want the YouTube tags to be BB code, write it down. Add this later, bypassing before you start the release on the site.

This is my workflow, at least the basic basic description.

+1
source share

Start with paper prototypes, i.e. e. Take a pencil and draw each page very roughly. This allows you to start from a user’s point of view, which I think is a good idea.

Then you can use the sketches for the first test of the usability of the hallway, and later, as a basis for the “wireframes,” you should give the web designer a job.

If you went through one site, you probably well know what the backend should do. Now you can use thumbnails of your pages and compile a list of actions that the user can trigger by clicking on things. This is the source material for developing a server-side API that can invoke the interface.

Using the calls that need to be served, you can design a backend: which functional group is good, what data needs to be extracted, what needs to be stored between page calls (== Session variables), etc.

In this process, I did a good job postponing technological solutions (frameworks, protocols, etc.) and even the structure of classes, etc., until I looked at it all once in terms of “what needs to be done, what other things” ( I think there is a better term).

+1
source share

I think I'll start with an open source SNS solution that comes close to what you need, and then figure out how to add plugins, modules, and themes for specific applications that achieve your goals. A lot of them. Building from scratch will require much more effort and planning. Most SNS features should not be reinvented. Focus on what will make your site unique and build up to that.

+1
source share

I'm a pretty visual person when it comes to software development, so I will first outline the data streams, class hierarchies, user interface and flowcharts on whiteboards and paper.

Butcher paper and colored pens can be especially interesting to use, as it is 3 feet wide and comes in 100-foot rolls. When you have a design that is satisfying or sufficiently complete, tear it from the roll and pin to the wall. Update if necessary.

This method worked for some large refactors, as well as for new projects.

+1
source share

You can start with something very simple, and then add features a little at a time. You can reach the point where you want to start all over again, but the basic work that you have done will be useful. Or you can try to do everything all at once, in which case you will need advice already given in other answers.

One more idea: specify those functions which you are not going to include, and other restrictions. These are called constraints and are just as important as the rest of the plan, as it gives you boundaries, so you know when you plan!

+1
source share

If you work in the same company as this person, start by getting everything in writing so that you don't become in the fall, when it inevitably happens ...

0
source share

All Articles