Possible Duplicate:What to plan before starting development on a project? I was wondering when you start developing a software what process should you generally go through to do it?By this I mean after you get an idea, do you just sit down and start pushing out code directly, or is there some planning process that you should generally go through first? (i.e. flowcharts, diagrams etc.)Just wondering because I just had an idea and am about to embark on my first real application but have no idea where to begin. What would you suggest is the steps that should be taken to have a successful developmental cycle?
Process of developing software?
project management;planning
Software development is a skill that is learned through study and practice. I would suggest you stop and have a think about what it is you want to achieve before you even begin to do more than sketch out your idea. If you think you can go from zero knowledge and experience to writing your first killer multi-million dollar app then you'll be in for a lot of disappointment. Your question itself suggests to me that it's likely you've never written any software before. Therefore the key to turning your idea into working software is to start by learning the basics, and then take that experience and apply it to your product idea. You have to start small.  It may well be that your idea has elements to it that can be developed separately, and that may be good as a means to help you progress your project and give you the motivation of working on your own idea for yourself. The flip-side to this however, is that it is only with experience that a good software developer learns how to recognize how to break out project elements into modules, and sub-projects etc.You'll need to be highly organised, and highly motivated, and you're best bet will be to find someone willing to act as your mentor.  Someone you can trust your idea to so that you can ask questions that go directly to the heart of the problems you will encounter while developing your software. You should also read extensively.  I'm not that convinced that the best software engineers come out of the university system, and most of the best programmers I have ever worked with were self taught, but they read extensively, and are always experimenting and highly critical of everything they do.I'd suggest looking into Behaviour Driven Development as a guiding process, as it will teach you how to write software in a way that is consistent with most agile development systems used nowadays, and if you stick to its principals, you'll make a lot less process-oriented mistakes going forward and your efficiency will also receive a kick from day one. A book that you might find helpful would be Head First Software Development, particularly if you find yourself needing to work with others, but also as it covers the basics well, without attempting to lock you into a specific development methodology.Good luck.