Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have been going through Flask and it seems that now I have a decent understanding to go ahead and build a web application. However I want to know how would I approach the problem. For eg: I decide to build a blogging application. The first thing I do is write down all the things that come to my mind, from user registrations to posting data on the blog to publishing it on the site

But after that I just get into coding. I know that is not the right approach. I have heard of UML diagrams, workflow diagrams and stuff. It would be great if someone could just outline the steps they would follow for building a large application and then I could go ahead and learn more about them.For eg,it could be something like the below:-

  1. Collect requirements
  2. Draw UML diagrams
  3. Draw workflow diagrams
  4. Start coding

Please suggest an exhaustive list so that I can make my approach much more systematic. Thanks

share|improve this question
add comment

1 Answer

up vote 4 down vote accepted

Drop the diagrams for now, and only use them if/when you feel the need.

Look into value-driven development as the overall approach and TDD for the specifics.

Begin by creating a bunch of stories. For instance, if creating a blog web site, the first step would probably be "user should be able to write a simple blog entry" followed by "user should be able to display his blog entry" etc.

Next, pick the most valuable story using this question as guideline: if you had to release today, what would be the single most valuable functionality?

Then, break the selected story into small technical tasks such as "Create a html form", "Write back-end for submits" etc which can be completed in a few hours.

Now:

  1. Pick the next task
  2. Write a unit test for it
  3. Make the test pass
  4. Refactor code
  5. Not satisfied? goto 2
  6. Release it and/or goto 1

Make sure to use small incremental steps and keep your system working after each iteration so you don't get stuck in analysis paralysis.

This is just scratching the surface of course, but it should get you going I think.

share|improve this answer
    
You might want to include a link to some Agile site, there. It's all well phrased, but there's a lot more to learn than we can (want to) put in one answer. –  xtofl Oct 19 '10 at 10:33
    
Thanks for that detailed and wonderful explanation Martin. But that is how I am going about doing things as of now.Possibly my post has been lacking in what I really wanted your advice on.I am beginning to start working on a large app where I have collected enough info and written down stories, but get stuck every now and then about the data flow and how to handle middlewares, where to modify the reponse object etc etc.If there was someway I could plan it out on paper before going ahead, things would be wonderful.I wanted to give it 1 up, but am lacking in reputation as of now,just joined:-( –  Rasmus Oct 19 '10 at 12:39
    
Thanks Martin! I guess I just found what I wanted to know at this link: snook.ca/archives/building_a_web_application/building_a_web_5 –  Rasmus Oct 19 '10 at 13:20
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.