This blog shows how to organize an Internet project. What needs to be in place before you start coding. The essence is simple. Come up with a good idea, set the team with strong commitment, formulate the minimal functionality, create an Internet site, communicate, use simple work flow management and start coding.
How big team do you need? You can start alone, but the best is to have one or two friends with a complementary expertise. The diversity of views is great and it yields innovation. Besides, it is also great to have someone for discussing the problems and making decisions. The team must be excited about the project and committed to make the things happened. Team allows you sharing the joy of the development. Discussing and arguing with the team is always very rewarding. Of course, there are also very successful “lonely rangers” on the Internet. They need to master the art of outsourcing to complete all project tasks.
It is very important to communicate and discuss your idea. Even if you have not written a single line of the code inform your future customers and friends. They will tell you what they like and what they want. Don't be afraid someone will steal your idea. There are many other people on Earth with the same idea, but the team with the best execution and strongest commitment will win. You also do not need to be the first. Sometimes the second mouse gets the cheese.
To inform your friends you need to be seen on the Internet. How to do it? Start with finding a descriptive name for a project. Check if the domain name is not taken yet, many sites provide this information. Select the domain carefully, once the page views start to grow it is too late for a change. Set your home page. Don't program the web from scratch. There are many different sites where you can create the homepage for free and in a matter of minutes. Go for the bigger players, they stay around longer. Use some of the stock templates to achieve an eye appealing look. To personalize your site create a project logo.
The key for success is a good idea. Your web must clearly communicate the idea, it must state what you are offering. The idea needs to be well formulated. Keep it simple! The resulting application or service will be offered to people like you and no one wants to study complicated stuff. Define your audience! What are you solving and who will use it? Your project description, explanation must be short and crystal clear. Check it by putting together a sentence like this:
(project name) is developing (this offering) to help (an audience) solving (a problem).
List the team members with photo. Each person should describe previous experience, successes, awards, interests etc. Inform about the project progress. To get customer feedback provide contact information. Do not show personal phone numbers or mail addresses. You don't want to be woken up at 3:00 AM by some Argentinean geek wrestling with an obvious problem.
Before you start coding you should have a plan for implementation of the project. Start with the description of the minimum functionality. Product, the result of the project, needs to be very, very simple. To development of even the simplest product will take quite some time and requires a lot of effort, you will be surprised. No matter if it is an one-man show project or several people will cooperate, you need to get organized. The purpose of organizing is to not loose focus, stay productive and see the progress. There are several project management tools available such as Pivotal tracker, Campfire etc. To maintain the project with such packages may be too much overhead for a starting team and a simple blog might serve at the beginning.
You have to learn regularly recording the progress and set the next development tasks. Report at least once a week. The progress records will help you learn how to more accurately estimate duration of the next tasks. You will learn better planning. From leading many projects I know, that planning small tasks is much better than larger milestones. Create tasks in duration of few hours. Sometimes the task turns out to be too big and needs to be broken to several smaller ones. No problem, record them to your work flow system and continue. If you work in a team set regular meetings to check the progress. The meetings don't need to last too long. 15-20 minutes are OK. Each team member should report the progress, inform about the problems and suggest further steps. Meetings and communication create good spirit in the team and push the project ahead.
Once you have all the above in place you are set to go ahead. Here starts the regular SW development process. Select technology, select revision control system, set the build system… Remember, only good discipline in running the project will bring good results.
I am working with university students teams and in all my activities I try to follow the described process. I am leaving on students to chose the portal and development technologies, but I am insisting on setting the reporting tools and generating the communication. The described rules are very simple but when followed they stimulate the team to develop organizational habits. Our students usually have great or good programming skills but very low awareness of how to run and organize projects and of course, no hands-on experience. From my industry experience the organizational stuff is equally important as the programmers quality. I also know, that the business processes mustn't suppress activity and enthusiasm. The managers need to discover a balance.
This simple system based on free Internet tools support sharing, creating traction, exciting other groups, and finding other followers. It is also allowing me to follow the teams progress and help them when required. Also reporting the activities of all teams on my pages is very simplified. I can provide links to all projects and all is for free, except we have to do it. Best of all, I hope, this operational habits are setting a good example for the future project development of my students. I try to keep all on the free Internet to let anybody to comment, help us or join our efforts. Of course, this is with the students consent. See the links at the main menu of this blog.
Let me know if you have comments or suggestions for improvement.