Five Ways to Approach Software Development
Many software companies use one or two development methodologies that help them solve their problems and increase work efficiency. However, in many cases the approach that developers use can be improved or even changed. This task is left for management, which is rarely able to do it. Usually it’s because they lack knowledge and best practices how to do it.
Our agency specializes in mobile app development and during the last few years we tried many approaches and will try to give our best shot to explain them in a simple yet useful way.
In a Waterfall approach, each of the stages mentioned above represent a separate unit of project development. It means that generally, the new stage starts after the previous one is finished. Also, there is a stage gate between them. It is usually needed any approvals from the customer side. That is not a distinct feature of Waterfall but nevertheless, it is quite typical for this approach.
Many developers consider Waterfall to be outdated. However, it is still widespread. Mainly, among simple projects that demand up to 100 development hours and have clear and balanced requirements.
According to this methodology, there is no need to waste your time on such activities as paperwork, regular meetings and backlogs.
Waterfall is a great approach to be applied in small projects. It does not provide any extra work. Your goals are clear as well as the technologies you need to use during the project implementation. On the other hand, you can hardly apply this method to a big and complex project as this approach is quite stiff.
- Straightforward planning as the goals are set starting with the early development.
- Easy estimates due to the fact that all the works are planned in advance.
- Customer presence is not required as you are only in need of reviews and approvals.
- The design is complete and more careful as all the requirements and features are discussed beforehand.
- Lacks flexibility
This approach is mainly aimed at close teamwork. Scrum is focused on team’s quick reaction for changing requirements. This way, we can call Scrum a good choice for the flexible development when there are no clear and balanced requirements.
Scrum fits perfectly with projects that demand over 300 development hours. Thanks to this you can get a minimum viable product as soon as possible.
The methodology of Scrum is for self-organizing team with no overall leader. Thus, the whole team takes part in roles distribution among the members.
Scrum also has Sprints. Sprint is the process of implementation for features that were chosen as priority ones. Sprint backlog is a set of features developers are going to implement following 2-4 weeks. During the sprint, there are couple of meetings to confirm that everything goes according to the plan. The meetings are usually no longer than 15 minutes and are aimed at the teamwork synchronization.
This way, Scrum wins the nomination as a right choice for long-run projects with continuous changes and without exact demands.
- Guarantees the effective use of time and money.
- Large-project-friendly due to the division into sprints.
- Suitable for fast-moving development.
- Regular meetings provide team members clear vision of the progress and work needed to be done.
Short sprints allow Scrum to be a flexible solve them.
- The contribution of each team member can be seen during the daily meetings.
- Success largely depends on you. The approach is capable to adapt to different challenges and team’s ability to work together.
- The usage of Scrum approach can be challenging for large teams.
- For experienced teams only.
This approach pays attention to a separate development stages.
The principles of this approach are pretty simple. Kanban visualizes your workflow using sticky notes on a whiteboard. This way, you are able to see the “picture” of your work without disturbing anyone.
Lets consider the picture above as an example. On the top of the backlog section are the tasks of a high priority. Once a team has finished a certain task, they take a new one from the backlog top. This feature makes this approach quite flexible as you can change tasks priority in any moment without distracting the team.
The next two sections should not cause you any problems. “Active” section is for tasks that are being worked on at the moment. In section “Done” the finished tasks are placed. You can manipulate the workflow visualization as you wish. I mean, you may add several more sections or leave just two of them.
Kaban is a good method for complex projects with continuous changes. However, the development time may significantly increase if there’s a huge workload.
- Very flexible due to the absence of set phases.
- Project priorities are rearranged as soon as new information comes in.
- Kanban says no to a waste of time since the workflow is organized in a way that provides actual and concrete goals.
- Comprehensible as the visual information is easily perceived.
- The outdated board can lead to some problems during the development process, so keep it up to date and easy-to-read.
- The biggest problem with this approach is timing since it is not always clear when the task will be completed.
If we mix up the features from the previous two methodologies we will get the structure you can see below.
Being a hybrid approach each team customizes it according to their needs. This fact makes Scrumban a flexible instrument in professional hands.
You will not find a lot of planning in this methodology. It is based on backlogs giving the team enough information to start working. Scrumban includes specialized roles among the team members, so teamwork component is also present.
Unlike Kanban, Scrumban has the work in progress limitation(WIP) that depend on the duration of a sprint. Individual WIP limits also take place since they adjust the workload for each team member as well as the team in general.
If Scrum or Kanban separately cannot fulfill your requirements, you should try the combination of these two approaches. Sometimes, it is a perfect decision.
This approach is called Extreme Programming. The main purpose of this methodology is to create a qualitative product, despite the constant changes in demands. Thus, it is focused on continuous testing, continuous planning and teamwork.
The original XP concept consists of twelve supporting practices you can see on the picture underneath.
The essence of this approach is to avoid the implementation of those functions that are not currently needed.
It is worth noting that this approach is aimed at close cooperation with the customer. This way customer prioritizes features that are currently needed.
XP approach can work in complicated projects. However, taking into account its specific methods, it will take more time and human resources than any other approach.
- Reduces the risks connected with programming since its methods are intended for the bug-free product creation.
- Using the simple design, XP manages to create software faster and with fewer bugs and issues.
- Perfectly suited for projects that don’t have clear expectations.
- Planning is really time-consuming.
- Among its practices, XP has a pair coding that may lead to numerous double entries of code and data.
- Requires the attention of the customer, which is not always acceptable.
- The approach is code centered and this sometimes may lead to the featureless design.
There are many other variations that you can use in your software development. What method are you using in your team? Let us know in the comment section below.
Get feedback and collaborate right on websites and images in real time
TrackDuck is a visual bug-tracking tool for web projects saving up to 80% of time spent on remote communication. It integrates with Basecamp, GitHub, Trello and all other major project management tools.