Each development starts with a request from, or need expressed by, a customer.
This is then followed by several different phases.
First, as project implementers you must understand the client’s need or request: What is the problem? What are possible solutions?
Next, evaluate the technology to use, weigh options and decide on the best one. Make sure to choose technologies with which the team is already familiar. Only then will the team be able to estimate the necessary development effort for the various requirements.
Now, prepare the agile development by creating a project plan, collect most of the requirements in the product backlog, working out a test strategy and prepare the development infrastructure for the team. “Preparation” means the team can immediately start creating software once the phase has concluded. To make this possible, it is important to work out the detailed requirements for the most highly prioritized backlog items in the preparation phase.
During agile development, the team iteratively and incrementally creates the software in short sprints, following the Scrum method (see Scrum Guides).
“Iterative” means that in each sprint, the team creates, tests, and documents the software. During the sprint, the team is also responsible for working out the detailed requirements for the following sprint (backlog refinement) and for organizing the backlog refinement meeting. At the end of each sprint, the team demonstrates the working software to the customer and asks for feedback (sprint review).
“Incremental” means that the scope of the software and documentation (the number of implemented requirements) increases steadily. The team must ensure that all the functions always work at the end of a sprint. Test automation can be useful to achieve this.
While continuously improving a software, be careful to maintain a proper structure. If necessary, consider refactoring.
In many student projects, especially the project assignments in the final year (WIPRO, BAA), the project team will be graded based on the final report. You should therefore stop software development at the end of a sprint and concentrate on finalizing the report, including all the documentation created during the agile development process.
The next figure shows a timeline of the project phases described above.
Figure 1: Phases in a software development project
The duration of the phases are estimates based on a bachelor’s thesis project.
A product development project is more than just a software development project. It often requires preceding work, mainly to develop innovative ideas.
The aim of this preceding phase is to find solutions that convince users and cater to market needs.
The “design thinking” method is a good way to do this. At the end of the design thinking phase, the requirements for the software part of the product are well-defined and the agile development process can start.
Figure 2: Phases in a product development project, with design thinking used in the product finding process
Especially in study programs with their time-boxed projects, the team must decide if it has the time and resources to create a viable product or if it only wants to describes the user-centered solution as developed in the design thinking process.
There are many other methods for identifying good solutions worth developing.
- Business process modeling can be used to identify potential improvements in workflows
- Big data analytics is the process of examining big data to uncover information such as hidden patterns, correlations, market trends and customer preferences, and which can help organizations make informed business decisions.
- User experience design is a process design teams use to create products that provide meaningful and relevant experiences to users.
- Game development planning and pre-production stages
At the HSLU, students can set up their own business while studying. Experienced coaches assist them in the early stages (design thinking) and help them to find out if their idea is suitable to achieve their economic objectives. That is why the HSLU offers training around the lean startup method.
Figure 3: Lean Startup method integrated in the product development process
The lean startup phase may run concurrently with the design thinking and agile development processes.