Click here to Skip to main content
15,849,328 members
Please Sign up or sign in to vote.
3.00/5 (6 votes)
See more:
What are the steps we need in writing a program
[no name] 4-Aug-12 21:19pm    
Have an idea, gather requirements, create use cases, design, code, test, deploy.
pasztorpisti 5-Aug-12 1:42am    
This is how enterprise softwares are born - usually many phases are done by separate ppl. At home if you are learning and having fun than most of the time its only about having an idea and coding it. :-)
Philip Stuyck 7-Aug-12 10:50am    
These are proper fases, but for me design nowadays is an iterative thing. I design a piece, code it, test it, design another piece, code it, test it, ... .
Sergey Chepurin 5-Aug-12 7:00am    
Except for use cases, the steps listed by Wes are universal for every program worth to mention.
pasztorpisti 5-Aug-12 7:43am    
Use cases are very necessary steps in every program, maybe you just merged them into the requirements part (especially in case of simple home-made programs). Every part can be used and ignored during development of the software, and in most cases the same group handles a set of these steps sometimes the steps merged together.

The System Development Life Cycle, or Software development process in systems engineering, information systems and software engineering, is a process of creating or altering information systems, and the models and methodologies that people use to develop these systems. In software engineering, the System Development Life Cycle concept underpins many kinds of software development methodologies. These methodologies form the framework for planning and controlling the creation of an information system . For example the systems development life cycle models can be described along spectrum of agile to iterative to sequential. Agile methodologies, such as XP and Scrum, focus on lightweight processes which allow for rapid changes along the development cycle. Iterative methodologies, such as Rational Unified Process and dynamic systems development method, focus on limited project scope and expanding or improving products by multiple iterations. Sequential or big-design-up-front (BDUF) models, such as Waterfall, focus on complete and correct planning to guide large projects and risks to successful and predictable results. Other models, such as Anamorphic Development, tend to focus on a form of development that is guided by project scope and adaptive iterations of feature development.

The project life cycle encompasses all the activities of the project, while the systems development life cycle focuses on realizing the product requirements, i.e. a Systems Development Life Cycle adheres to important phases that are essential for developers, such as :

* Preliminary analysis: The objective of phase1 is to conduct a preliminary analysis, propose alternative solutions, describe costs and benefits and submit a preliminary plan with recommendations.

* Conduct the preliminary analysis: in this step, you need to find out the organization's objectives and the nature and scope of the problem under study. Even if a problem refers only to a small segment of the organization itself then you need to find out what the objectives of the organization itself are. Then you need to see how the problem being studied fits in with them.

* Propose alternative solutions: In digging into the organization's objectives and specific problems, you may have already covered some solutions. Alternate proposals may come from interviewing employees, clients , suppliers, and/or consultants. You can also study what competitors are doing. With this data, you will have three choices: leave the system as is, improve it, or develop a new system.
Describe the costs and benefits.

* Systems analysis, requirements definition
: Defines project goals into defined functions and operation of the intended application. Analyzes end-user information needs.

* Systems design: Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudocode and other documentation.

* Development /implementation

* Integration and testing: Brings all the pieces together into a special testing environment, then checks for errors, bugs and interoperability.

* Acceptance, installation, deployment: The final stage of initial development, where the software is put into production and runs actual business.

* Maintenance: What happens during the rest of the software's life: changes, correction, additions, moves to a different computing platform and more. This is often the longest of the stages.

P/S Also you can read about TDD (Test-driven development) is a software development process that relies on the repetition of a very short development cycle: first the developer writes a failing automated test case that defines a desired improvement or new function, then produces code to pass that test and finally refactors the new code to acceptable standards.[^]
Share this answer
pasztorpisti 5-Aug-12 7:15am    
5ed, despite the fact that it reminds me to one of my courses at uni that I didnt really like :-)
Would mention that only huge companies split development with such fine detail and in that case a programmer is present only at few of the above phases sometimes only the "Development /implementation" phase is done by coders. Other phases around this like "Systems Design" might be done by an architect, and "Acceptance, installation, deployment" can be done by QA and other ppl. I didnt really liked working for such a company because it wipes out the creative part of coding and you are just one ppl sitting next to the assembly line putting in a very small piece to the software. Most companies (small to mid size) tend to follow hobby-programming style where the coder just gets some feature requests to put in the software - even some bigger companies work like that. This is good and bad, 2in1. Maybe this is bad, but more enjoyable by coders and very good softwares can born if this "hobby style programming model" if there is a lead coder/technical director who knows what high level design is and does some high level design (architect work) to synchronize the work of coders. Software that was created with the use of all steps in the answer can also be low quality but with good architect work (systems design) its parts/modules are replacable at least. (same can be true for the result of hobby-style programming). I think using the fine detailed process might be better if you hire ppl in mass (like huge companies do) and you can put together better software with less quality professionals at the bottom of the hierarchy.
A good link detailing the intro paragraph of the answer:
Volynsky Alex 5-Aug-12 7:50am    
Thanks pasztorpisti! You are right. Surely there is a difference in the approach to software development in large companies and small start-ups,where one person performs multiple roles in development process
nv3 6-Aug-12 10:23am    
Very nice and detailed description of the software development cycle in very big shops. Hence a 5.

I doubt though, that the questioner had such a detailed answer in mind. Just by asking such a question as in the "quick question" section lets me more suspect that this was a beginner's questions and that he is asking how to go about his first project.
Volynsky Alex 6-Aug-12 12:10pm    
Thank you nv3! If the asker had in mind his first project it's possible some items can be skipped (for example the "Maintenance" item). But I think that in any case, for asker a very important to know how businesses work today :)
Of course this is a very general question, but anyway, those are the least you have to do to get it done right.

* Get good requirements.
* Design the program.
* implement the program.
* test it.
* document it.
* make good training and good help to the end users.

Good luck!
Share this answer
Select a text editor or a IDE, read a book or ten, write some pseudo code, basically think about what you wish to accomplish, then write the code. If you get stumped on a particular idea (A specific problem) come back here and ask further questions.
Share this answer
Learn programming - one extremely useful resource is Programming Methodology[^]
Share this answer
You can do it the way you want to here is the basic Process
Check this[^]this Might help
Share this answer

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900