R&D and innovation-oriented software development company
arrow Request For Proposal Case Studies

Successful Software Development Methods

Thursday, 13 Nov 2014

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.

      Waterfall Process

    • 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.

      Spiral model

  • 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.
  • 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)

      Scrum

    • 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

      Extreme Programming

 

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

Waterfall

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 ability to determine project cost and time in the first stage
  • The client does not spend much time (and efforts) for the project
  • It is very clear but powerful software development method (clear phases help to realize the whole picture of the project)
  • The project should be started with requirement analysis and creating clear, unambiguous and professional Software Requirement Specification
  • It essentially requires a huge amount of documentation at every stage. This gives better understanding of the project and logic
  • The scope should not be changed
  • All software requirements should be specified on the first phase and there is no possibility for mistakes
  • Project communications with the client are extremely limited being performed either at the beginning or at the end of the development (or phases)
  • The developed product possibly can not correspond to changing economic conditions
  • High risk of budget exceeding or schedule due to unforeseen (or changed) requirements
  • It's slow and not flexible through trying to cover all risks in the early stages of the project

Spiral

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

  • This is a meta-model, which can be used by other models
  • Flexible process allows changes to be implemented at several stages of the project
  • The active involvement of the customer in the process
  • The customer retains control over the direction and implementation of the project
  • The customer 's expertise of the project grows with the project growth
  • This methodology is not complete
  • The customer should spend more time on the project than while waterfall method is applied
  • Spiral models work best for large projects only, where the costs involved are much higher
  • Risk of budget or schedule exceeding
  • Lack of clear organizational recommendations for team structure, management and development processes, iterations, etc.

RUP

Medium to large project teams (10+ people).

  • Well-documented and complete methodology with all necessary documentation description
  • Open and public – RUP is openly published, distributed and supported
  • Changing requirements – proactive resolve of customer’s changing requirements and related risks
  • The development time required is less due to reuse of the components
  • Contains a set of good software tools for the project (UML, IBM Rational Method Composer, Rational ClearQuest, Rational Rose)
  • RUP is bloated and too expensive for small projects and teams The team members need to be expert in their field to develop a software under this methodology
  • The development process is too complex and disorganized- Unless you have a real expert, you are unlikely to succeed in adapting to this process. The process is too complex, too difficult to learn, and too difficult to apply correctly
  • RUP does not capture the sociological aspects of the software development and the details of how to incrementally develop

XP

XP is aimed for small and medium sized co-located project teams (4-10 people)

XP is mostly used for smaller and medium projects

  • It is enough high-level of system requirements for the project start
  • Increases deliverables quality and saves time while doing documentation
  • Flexible process enabling smooth development of the product meeting customer's needs
  • Flexible process allows changes to be implemented at any stages of the project
  • Allows to develop working prototype of the system as soon as possible
  • Impossible to develop realistic estimates of working efforts needed to provide a quote, because at the beginning of the project no one knows the entire scope/requirements
  • Customer should be available full-time for the team
  • XP can lead to expensive re-development and increase of the project scope
  • Requirements are defined incrementally, rather than trying to get them all in specification documents
  • Software developers are usually required to work in pairs
  • Lack of structure and necessary documentation
  • Can be very inefficient—if the customer’s requirements change through various iterations

Scrum

Any size project

It is particularly useful for fast moving web or media projects (3D animation, interactive application, etc.)

  • Flexible process
  • Ability to control development process by customer
  • Increases the values of the project in early stage
  • Promotes customer satisfaction
  • Is focused on delivery speed
  • Provides openness and visibility to customers
  • Increased quality of software
  • Cross-functional, self-organized teams
  • High visibility of progress and regular feedbacks from the customer
  • Emphasis on face-to-face communication
  • Allows to develop system working prototype as soon as possible
  • Increased investment return and decreased cost - prevents from wasting money on the features that will never be used
  • Scrum by itself is never enough, and that development teams have to shop in other methods (usually XP) for additional practices
  • This methodology needs experienced team members only
  • Customer (Product Owner) has to be present and available full-time for the team

Waterfall-Scrum

Any size project

In case if the customer is not sure about how the final product will look

  • After Waterfall approach for detailed Software Requirement Specification (SRS) development and approving the developers use Scrum approach to iteratively deliver the product, get the feedback from the customer and adjust the requirements
  • All advantages of Scrum

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


Request For Proposal
  
Find us on Facebook
Our Services

Augmented reality, virtual 3D trainings, Interactive architectural visualization, serious games, product configurators, and walkthroughs. More »
Our team provides full scope of game development services from art asset creation in 2D and 3D styles to programming and support. More »
We offer cross-platform app development services for all major platforms: iOS, Android, Windows Phone, Blackberry; and devices: web, mobile, PC, consoles. More »
Development of mobile apps and games, migration of applications to different platforms, cross-platform development. More »
Business automation systems, e-commerce solutions, community portals, corporate web-based systems, and websites with 3D. More »

Interested or have questions?
LET’S START A DISCUSSION!

arrow
arrow
     
Testimonials

GSN Games is completely satisfied with Program-Ace's technical expertise and the quality of services they provide. We look forward to collaborating with Program-Ace again...

Stuart Lewis-Smith, Senior VP and General Manager, GSN Games

Program-Ace has completely dispelled my concerns. The online project management system is one of the best I have seen...

– Scott Zerby, Vice President at ValuSoft

If you're looking for a professional, dedicated, digital development partner, I highly recommend Program-Ace...

– Tim Ransom, President at Visual Thunder Media
Our Clients
Electronic Arts logo
Valusoft logo
Wargaming logo
Namco logo
Kuju logo
DTP Entertainment AG logo
About Program-Ace
Contact Us

Phones:
USA +1 347 53 53 543
Ukraine +38 067 578 40 46

Email: rfp@program-ace.com

Skype: program.ace

Address

56, Poltavsky Shlyah,
Kharkiv, Ukraine

Stay Connected