Successful Software development methods
Successful Software development methods
What is a project?
A project is temporary efforts (with defined start and end points) aimed to create a unique product or service. Projects usually include the following limitations:
- project scope;
- development time;
- project cost or budget;
- resources (human, technical).
What is project management?
Project management is a set of principles, practices, and techniques applied for project teams control and project schedule, cost, quality and requirements control to achieve project specific goals.
What is software development methodology?
The methodology defines the processes, responsibilities and workflows necessary for aim achievement. So software development methodology is a set of the best practice to control software development process. Those methods also include guidance to improve quality and efficiency of software development efforts. Usually software development methodologies are related not only to the technical side but to the organizational aspects of software development process.
What are the project phases?
All projects can be managed better when divided into parts such as phases, stages, activities, tasks and steps. During the development process the project passes through specific phases. Their number can vary depending on used methodology. Collectively the project phases are known as the project life cycle. Usually there are the following stages of the project:
- Analysis & Design;
- Development (coding);
- Testing (validation);
- Deployment & Integration;
- Maintenance.
The most popular software development methodologies
At the moment there are lots of software development methodologies, each of them has its own recognized strengths and weaknesses. One software development methodology could not be appropriate for all projects. Each of the available methods is the best for certain projects types based on various technical, organizational, project and team considerations.
The most popular methodologies are:
- Without methodology - Historically, the first methodology was basically absence of methodology. This was also called "Code and Fix" methodology. This approach is typically ineffective, usually followed by unskilled or poorly skilled developers, who they simply write code. This methodology works well when you have a ten-hour project or occasional small project. But it doesn't work for big commercial projects. Applying this methodology you will use very small formalism, like documentation, adherence to procedures, etc.
- Classic methodologies – These methodologies are progenitors of new and modern methodologies. As a rule they were developed before the object-oriented languages became widely spread. Most of them assume cascade development i.e. when the project is performed it passes sequentially from one stage to another. However these methodologies assume use of highly formalized approach. Among these technologies are the following:
- Waterfall methodology – this is sequential development method , which approaches to the development as to the process which flows downwards, like a waterfall through the project phases. The first formal description of this method was published in 1970. The waterfall provides an orderly sequence of the development steps and helps to ensure adequate documentation and design reviews which provide quality, reliability, and maintainability of the developed software. Despite the fact that this methodology is rather bulky and slow it’s rather successful and is used for different projects especially for government enterprises.
The basic principles are:- Project is divided into sequential phases;
- Emphasis is on planning, time schedules, target dates, budgets and implementation of entire system at first stage of the project;
- Hard control is maintained over the life of the project via extensive written documentation, formal reviews, and approval/signoff by the customer occurring at the end of most phases before beginning the next phase.
- Spiral methodology - The next evolutionary step after the waterfall is the spiral methodology. It’s advantage is in the fact that project development process is incremental and iterative, when the team is able to start from highest- priority system features and gradually adding more features until the entire system is completed. The spiral methodology reflects incremental prototyping-in-stages, when every prototype is planned methodically, with tasks and deliverables identified for each step in the spiral.
The basic principles are:- Project is divided into software prototypes (iterations);
- Each iteration goes through the same sequence of steps as a waterfall (from Analysis & Design to Deployment & Integration);
- Each iteration includes: iteration planning , requirements determining, implementations evaluating, risks identifying and eliminating, deliverables developing and verifying, review and customer’s feedbacks.
- Waterfall methodology – this is sequential development method , which approaches to the development as to the process which flows downwards, like a waterfall through the project phases. The first formal description of this method was published in 1970. The waterfall provides an orderly sequence of the development steps and helps to ensure adequate documentation and design reviews which provide quality, reliability, and maintainability of the developed software. Despite the fact that this methodology is rather bulky and slow it’s rather successful and is used for different projects especially for government enterprises.
- Serious methodologies – These methodologies are universal and powerful tool for large project teams to develop serious projects . Software development process in these methodologies is well defined and often includes detailed description of the project phases and milestones, roles of project team members, deliverables which are sipposed to be applied and got in an iterative manner. Among these technologies are the following:
- RUP (Rational Unified Process) is an iterative software development methodology, based on Unified Modeling Language (UML), created and maintained by the people at Rational Software which is now owned by IBM. It is commercial product delivered as more detailed version of the Unified Process (UP). The RUP methodology is based around specific team skill set, timescales and some key document models. The RUP suffers from the same problem as the UP, being bloated and too expensive for small projects customization. The RUP includes 4 phases, 6 disciplines
- Prince2 (Projects in Controlled Environments) is a project management methodology, developed by the UK’s Office of Government Commerce (OGC). Prince2 describes many processes and activities covering project management, control and organization , and is deliberately not restricted by IT projects. Even though Prince2’s popularity makes it a real standard for project management (particularly in Europe), it is criticized for being too prescriptive, too big and hardly customizable.
- PMBOK (Project Management Body of Knowledge) – is globally recognized project management framework. It is created and maintained by PMI Organization. The PMBOK provides practices, tools and techniques that can be used in most projects, not only in IT-projects. Similar to Prince2, the PMBOK describes many processes and activities, though thePMBOK can be seen as being descriptive when Prince2 is more prescriptive. Their main similarity is that both are criticized for not being agile.
- MSF (Microsoft Solutions Framework) - is software development framework, created by Microsoft. MSF is not limited to application development only it is also applicable for other IT projects like deployment, networking or infrastructure projects. MSF provides a meta model of descriptive components, and contains two extensions: MSF for Agile Software Development and MSF for Capability Maturity Model Integration.
- RUP (Rational Unified Process) is an iterative software development methodology, based on Unified Modeling Language (UML), created and maintained by the people at Rational Software which is now owned by IBM. It is commercial product delivered as more detailed version of the Unified Process (UP). The RUP methodology is based around specific team skill set, timescales and some key document models. The RUP suffers from the same problem as the UP, being bloated and too expensive for small projects customization. The RUP includes 4 phases, 6 disciplines
- Agile methodologies-are the group of software development methodologies based on iterative and rapid development, where requirements and solutions evolve via collaboration between self-organizing cross-functional teams. The main goal of Agile methodologies is to lower the cost of software requirements change. With traditional system development methodologies like Waterfall Methodology, the requirements for the system are determined and often "frozen" at the beginning of the development project. This means that the cost of requirements change at late project stage can be very high. So this group of methodologies becomes widely popular in the last years. Agile methodologies attempt to minimize risk by software development in short iterations lasting one to four weeks. Each iteration is like a mini-project and includes all the tasks necessary for new functionality increment release i.e. planning, requirements analysis, design, coding, testing, and documentation (although Agile is usually quite simple as for documentation).
The basic principles are:
- Modularity on development process
- Iterative with short (one-four-week) iterations that provide working, tested functionality increments;
- Make releases for the customers smaller and more frequent for faster verification and correction;
- Wider customer involvement to the process;
- Convergent (and incremental) approach minimizes the risks;
- Maintaining the system to run and to pass automated tests always;
- People-oriented, i.e. agile process favor people over processes and technology;
- Organization around cross-functional and experienced teams;
- Collaborative and communicative working stile.
Among these technologies are the following:
- Scrum is adaptive, iterative and incremental light agile project management methodology. It is a skeleton that includes a small set of practices and predefined roles. Scrum becomes a real standard for managing agile software development projects. One reason for Scrum's popularity is that it consists of only few common sense practices that can be applied in many situations. This also means that Scrum is insufficient, and that development teams use other methods (usually XP) for additional practices
The basic principles are:
- There are three main roles in Scrum: Scrum Master (project manager), Product Owner (customer or representative), Team;
- The “Team”, is a cross-functional and skilled group of about 7 people who do the actual analysis, design, implementation, testing, etc.
- Iteration is called Sprint. The Sprint is the basic unit of development in Scrum. Sprints tend to last between one week and one month. During the Sprint all the work on gathering requirements, design, coding and testing of the product are done.
- There are three main artifacts: Product backlog (high-level requirements and features list ), Sprint backlog (requirements list the team should implement during the next sprint), Sprint burn down chart ( public chart showing remaining work in the sprint backlog)
- Active participation of the customer (Product Owner) in the process of working on the project
- There are four main meetings in Scrum: Daily Scrum (fifteen minute meeting regarding current tasks), Sprint planning meeting (planning of the sprint scope), Sprint review meeting (results demonstration at the end of the Sprint), Sprint Retrospective (discussion of the results at the end of the Sprint)
- XP (Extreme programming)- is agile software development methodology which is intended to improve software quality and responsiveness according to changing customer requirements.
The basic principles are:
- mum documentation – There is no need in detailed specifications
- The life cycle of XP consists of five phases: Exploration, Planning, Iterations to Release, Productionizing, Maintenance and Death
- Small/shot releases – new versions are possible to be released daily, but not less than once per month
- Communication and coordination between project members should be enabled any time
- Code review, coding standards, system refactoring and simple code usage
- Code testing– software development is performed with the help of testing. The customers write functional tests
- 40-hour week –maximum working week is 40-hour. Two overtime weeks in a row are not allowed
- Pair programming – two people write the code at one computer
- On-site customer – customer has to be present and available full-time for the team
Development Methods Comparison
Table 1 compares leading development methodologies. The focus is on high-level software processes, not on detailed methods. This list is not supposed to be comprehensive instead it lists the development methods that are commonly used. Table 1 includes advice for when to apply the methodology, and its pros and cons.
Table 1. Software development methodologies Comparison
Methodology |
When to Use It |
Advantages |
Disadvantages |
|
When the client expects no changes in the scope and is sure about how the final product will look Could be used for government projects when you know the budget and duration of the project before it starts. |
|
|
|
|
The spiral model is mostly used in large projects It is reasonable to use the spiral model in projects which business goals are unstable but the architecture should be realized well enough to provide high loading and stress ability |
|
|
|
Medium to large project teams (10+ people). |
|
|
|
|
XP is aimed for small and medium sized co-located project teams (4-10 people) XP is mostly used for smaller and medium projects |
|
|
|
|
Any size project It is particularly useful for fast moving web or media projects (3D animation, interactive application, etc.) |
|
|
|
Waterfall-Scrum |
Any size project In case if the customer is not sure about how the final product will look |
|
What methodology is the best for your project?
Here are some questions you need to be answered before deciding on which methodology to use:
- How stable are the requirements? One of the biggest factors that dictate your choice of a methodology is the clarity and stability of the project requirements. Frequent requirement changes after the start of the project require Agile methodology (e.g. Scrum). If all requirements are clear and unchanging you can use Waterfall methodology
- How much time do you want to spend for the project? If you are willing to take an active part in the project, Agile methodology will give the best result
- Do you know all requirements for the system? If yes, you can achieve stability on project requirements and allow you to use the waterfall approach. If not, you should use Agile methodologies or Waterfall-Scrum approach.
- Is the time line aggressive or conservative? An iterative approach helps to achieve aggressive time lines by giving opportunities to deliver partial functionalities early. This gives an impression that the project is delivering despite an aggressive time line, generally referred to as "quick wins". If your project is not time sensitive and end-users can wait for the release of the system, Waterfall would be a workable approach.
- What is the size of the project? Large enterprise projects generally require large number of the project teams to work on clearly defined deliverables. The scale of the deliverables is proportional to the size of the project team assigned to do it. Thus, larger project teams are assigned larger set of deliverables which need to be clearly defined. With this kind of scenario, long iterations or Waterfall would be preferable.
What we offer
Our creative company has wide and extensive knowledge and great experience of project development and offers the following:
- Software development methodology (Scrum, Waterfall, Waterfall-Scrum, etc.) that is used in our company allows us to achieve the best quality and to satisfy all customers’ needs ;
- Our well-experienced analysts can develop result-oriented project specifications in compliance with your needs;
- After approval of project specification our developers are ready to start diligent working on the project;
- Team of professional Developers, Artists and pure Analysts
- Responsible Project Manager for your project management and on-going communication with you about project issues;
- Free web hosting space on our servers throughout the project life cycle to upload project releases weekly for your on-going review;
- Access to AceRemote Project™ – our system project management application which will provide you with all updates of the project and notices and will make your communication with the team much easier;
- Our support - we handle all your technical questions.
All copyrights of the images used in the article are property of their owners
u/td/td Flexible process i



Tag Cloud
Our Partners
Certification
Last visited: