I have seen many great ideas here on the forums but not many of the projects succeed sadly. Either because the team wasn't organized, or the coding wasn't very flexible. Which is usually because the planning wasn't done very well, if there was any planning. So I'm going to make a little tutorial.
---- Planning Stage ----
First Step
What is your project going to be? A game, website, utility? What features do you want in it? A battle arena, login system, flexibility?
Find out everything you want in the project and make a list of it. For a game, design the plot as well.
Second Step
Design the layout and looks of the project.
You want to make the layout as simple as possible. The looks should be based on the feeling of the project. Make sure the colors blend well.
Third Step
Design the usage.
Decide how the client should control their environment. In a game, will you use the keyboard to control the character, or the mouse? What keys will do what? For a website, what web pages will lead where?
Fourth Step
Design the mechanics.
Figure out how everything internally will work. For a website, will you have a PHP page that loads global content? Like the navigation? For a game, will the character and the weapon be one object or two? Will they alternate between the two? Choose all the variables that may be needed. Remember to add security if needed. (A website needs security!)
Fifth Step
Organize!
Divide everything into pieces and assign priorities to each of them. Make sure the things required by other pieces are set as higher priorities. Like a login system for a website or multiplayer game.
Sixth Step
Check everything to make sure it's correct and fix any mistakes or add stuff that has been left out. Have someone unrelated to the project look over it and encourage them to ask questions. That way you can find all the stuff the user won't understand.
---- Code it! ----
First Step
Templates!
Make template code for things you will use multiple times. Make the code simple. If you have each page unique to another, it will become confusing for the user to navigate. For a website, make sure you have a template page that has all the essentials needed. Technical Section (MySQL), Header Section (Navigation, etc), Content Section, and Footer Section (Copyright, etc).
Second Step
Get priorities pieces done.
Nothing will get done if the priorities aren't done first. Make sure the coding follows the style set up in Step Four of the Planning stage. If it doesn't, either fix the code or fix the mechanics.
Third Step
Go from higher priorities to lower priorities.
Once again. Make sure it follows the mechanics designed earlier. If anyone on the team doesn't follow the mechanics, that part of the project will fall apart (maybe even the entire project depending on the piece being worked on).
---- Releasing The Project! ----
First Step
Test the project!
Get a bunch of friends and the project team to test the project. If the friends don't ask any questions on how to do something (like "How do I shoot?" for a game) then you are ready to release the project.
Second Step
Advertise.
I am actually a failure advertiser. So I don't know how this would be done. Put a link in your signature? Maybe ask a couple friends to put it in their signature or in one of their projects? Suspense seems to work just as well. Like make a thread for your project which talks about what the project will be and post the status of the project while it's being made. Then when you release it, many people who are following the project will try it out as soon as it's released.
Third Step
Support!
You need to support everyone who tries the project. If they have problems, guide them through then figure out a way to make it simpler to do that part in the coding or make a tutorial on how to do it.
---- Some Useful Tools ----
http://bubbl.us/ is a good place for designing and organizing your project. Here is an example:
Open Mind by Daffy22, is also some software like Bubbl.us, but it was created by a fellow Scratcher! Both have the same idea in mind.
---- End Of Tutorial ----
Well. That's most of it. Any suggestions, thoughts, criticism?
Last edited by Magnie (2012-04-16 16:34:51)
Offline
Brilliant.
Offline
Great job. I will recommend this to the rest of my team, so we don't get lost.
Offline
You mentioned bubble.us, but there's actually very good software developed by one of our old AT friends Daffy22, called Open Mind, that's free too and works really well
Funny how the Advanced Topics just happens to already have a program made for it..
Offline
LS97 wrote:
You mentioned bubble.us, but there's actually very good software developed by one of our old AT friends Daffy22, called Open Mind, that's free too and works really well
Funny how the Advanced Topics just happens to already have a program made for it..
Yeah, I know. I'll get the link.
Offline
Thanks, Sci, for the link.
Great job, Magnie. Now I really see hope in finishing my projects.
Bubble.us isn't working, by the way.
Last edited by ProgrammingFreak (2012-04-16 14:58:10)
Offline
ProgrammingFreak wrote:
Thanks, Sci, for the link.
Great job, Magnie. Now I really see hope in finishing my projects.
Bubble.us isn't working, by the way.
Ah, sorry! Fixed the link! (I feel like I corrected that a hundred times... )
Offline
Magnie wrote:
ProgrammingFreak wrote:
Thanks, Sci, for the link.
Great job, Magnie. Now I really see hope in finishing my projects.
Bubble.us isn't working, by the way.Ah, sorry! Fixed the link! (I feel like I corrected that a hundred times... )
lol
Offline
Bump.
Offline
roijac wrote:
make sure all team members want to help?
I think that will become obvious when you choose who does what.
Offline
Very good tips on making a good project! My only suggestion would be to make a mock up version first so you can tell what works and what doesnt. Just a thought though.
And thanks for including Open Mind at the bottom.
Offline
Nice article, this is going to be really helpful to anyone whose project has died, or really anyone who makes a website before they know what they're actually doing...
My only problem was with the title, because it sorta indicated a Scratch project rather than what you mean (Actually, what would you call that besides "project"?).
Offline
Daffy22 wrote:
My only suggestion would be to make a mock up version first so you can tell what works and what doesnt. Just a thought though.
Yeah, I was thinking of making up a mockup project then go through the entire guide of a team leader making right (and possibly wrong) decisions. But who knows, that would've been a great idea to have before writing the guide.
Hardmath123 wrote:
My only problem was with the title, because it sorta indicated a Scratch project rather than what you mean (Actually, what would you call that besides "project"?).
Yeah, there isn't any real general term for any/all "projects". But the guide is pointed towards any project (whether a Scratch project, website project, a collaboration in any other programming language, etc).
Offline
Magnie wrote:
Hardmath123 wrote:
My only problem was with the title, because it sorta indicated a Scratch project rather than what you mean (Actually, what would you call that besides "project"?).
Yeah, there isn't any real general term for any/all "projects". But the guide is pointed towards any project (whether a Scratch project, website project, a collaboration in any other programming language, etc).
True.
Offline
Hey Magnie, would you like to join Coders' Shed and post this here? It would go in Techy Stuff. We'd sticky it if you did. :3
Offline
Bump.
This is great, Magnie! I'll be sure to follow it through development of DayTab.
Now I've just gotta learn PHP.
Offline
Gravitation wrote:
Bump.
This is great, Magnie! I'll be sure to follow it through development of DayTab.
Now I've just gotta learn PHP.
Thanks!
The language you learn depends on what you want to do, so make sure PHP is what you want to use for your project.
Offline
O: I think someone- copy-pasted... http://scratch.mit.edu/forums/viewtopic.php?id=95003
Offline
rippertear wrote:
O: I think someone- copy-pasted... http://scratch.mit.edu/forums/viewtopic.php?id=95003
What do you mean?
Offline