Agile is most commonly found in large companies and is not common among freelancers, but is it worth it to use a
waterfall ? Not. Freelancers should also use flexible design and development methodologies that help to use iterative development.
The idea came as part of the core work of the Agile development methodology. I thought, why not apply it in the evening, when in a comfortable chair freelance?
What gives Agile?
- Quick demonstration of the result to the client;
- Requests are possible at any time;
- Iterative approach.
Those. My client can see the initial result after 1 sprint, can provide me with a requirement in the middle and at the end of the project development and the newly put forward requirements will not complicate or change the development process. Those. The client can “grope” the product every 2 weeks by making his recommendations for subsequent production. Those. Most of the wishes will not affect the timing and complexity of software development.
This is what the client asks for a professional freelancer. What it looks like in life.
')
Having received an advance payment for the project (I advise you not to never work without a prepayment), we undertake the work, naturally completing the development process according to Agile. We develop the “face” of any page, hang it on the MVC scheme, make links clickable. We remind the client that once a week the dev version of his site is updated and that after each view you can send additional requirements or corrections. Having received a list of all the pros and cons, we finished waiting for the second sprint (previously compiled by us) and left for the weekend. Further we continue in the same vein.
Did what we did coincide? We received a quick result, received new requirements / comments, passed the first iteration cycle. Yes, we are great and follow Agile.
And yet: you can not throw the customer one. Work with the customer goes on throughout the development of the project.
When the customer says, "I will come to look at the finished result," I reply: "Here, please, see the initial version of the finished result and make recommendations." Because the highest priority is customer satisfaction, therefore, we need feedback and therefore we need new wishes, new requirements, new recommendations, and they are needed not at the end of development, but today and now. Someone will say the TK will describe all the tasks and most importantly do everything according to the TZ. In practice, everything is different. In part, the TK will describe everything, and partly if everything is correctly understood and whether everything has been done correctly and whether everything the customer wanted to order, he described in the TK. Or, maybe, “that little thing” which, the client just saw, will not reach the new software. Satisfied customer is a regular customer.
Regular customer - a steady income. Therefore, we must try to ensure that each client is satisfied and all his wishes are satisfied.
Attentive attitude to the client and regular work will always tell about what the client has seen new, worrying about their product. What he does not like in the next version and what he liked about your work. Permanent feedback is the first rule with regular delivery of the new software version.
You can submit software requirements at any time. We constantly receive new and new customer expectations from its software, constantly keep our ears sharp, evaluating the quality of the software and all the expectations with the customer. Naturally, each demonstrated version must be fully operational and effective.
Continuing the story about Agile, you should pay attention to quality control. This approach provides Scrum.
Scrum is a set of principles on which the development process is built, allowing in rigidly fixed and short-term iterations, called sprints, to provide the end user with working software with new features for which the highest priority is defined. Software capabilities for implementation in the next sprint are determined at the beginning of the sprint at the planning stage and cannot change throughout its length. At the same time, the strictly fixed short duration of the sprint gives the development process predictability and flexibility.
Sprint in Agile is the time period for which the result is updated, i.e. the time that we work hard, we don’t think about anything. This is a week, but it can be from 2 to 4 weeks.
Based on the results of each sprint, clarifications are made in the requirements of the project and a list of new tasks is compiled, which will be considered in the next sprint.
Using this approach, it does not work out so that, by evaluating the final result, the client will put forward requirements that affect the foundation of all software, for the introduction of which it is necessary to redraw the engine. This will lead to a complete change of the entire system, because an iterative approach will lead to continuous changes and until the very end any implementations will be useless.
Sprint is also an iteration in the scram, during which the functional growth of software is created.
During the sprint where the requirements do not change, quality control is no less important than quality control at the beginning and at the end of the sprint.
For such quality control, a daily review of yesterday is held - what has been done, what caused difficulties, what caused the problem. Surveying such questions and finding solutions to them, lead to the provision of quality software to complete the sprint. The quality result of all sprints will give a quality result of software development - quality software.
What happens in life: an assessment of the task cycle is performed daily and plans are laid out for the next mini cycle (a day-long sprint). Those. every morning we look at what happened yesterday and what remains to be done today, as far as we are close to completion, as far as our product meets the requirements. After that, we continue to work. Thus, daily self-control occurs, which is good, because self-control of completed tasks leads to self-control of the entire development process. There is always the opportunity to report to the customer, for the customer there is always the opportunity to make adjustments to the requirements and make new requirements for the final product.
In the development process, pay attention to the problem-oriented approach. You should also pay special attention to the implementation of expectations from the software
"just in time" ,
development through the subject area and the
development of testing tools that are recommended to be used in their daily activities.