The secret to success is no longer hard work. It is to work in a planned and systematic way by choosing the right path to reach our goals.
Software projects must be carefully planned before they reach the coding stage. Many problems will occur in a project that started without planning. These problems may cause the software project to fail.
Methods used around the world have been developed for the planning of software projects and the way each method is applied is different.
What Is Agile?
Agile project management is a software model developed to solve the problems encountered in the development process and encourages frequent piecemeal software delivery and change.
As a continuation of the approaches in other sectors, it has been applied in the software sector since the 1970s. Prior to the Agile Manifesto, which emerged as a reaction to the overly prescriptive classical software process models, software was developed at a higher cost and slower. The use of this method accelerated the software development process and has been adopted by many software companies in different projects in the world, gaining momentum in the 1990s.
In 2001, Kent Beck and 16 of his friends, one of the leading names in the software world, published the “Agile Software Development Manifesto” and “Principles of Agile Software”, and established a non-profit organization called “Agile Alliance” to support this formation and development. The manifesto consists of 4 items that will guide how they develop better software and those who want to do it.
The 4 Core Values of the Agile Manifesto
- Individuals and interaction over processes and tools
- Working software to detailed documentation
- Cooperation with the customer to the strict rules in the contract
- Adaptability to changes over a certain plan
12 Principles of Agile Project Management
According to the Agile Manifesto, there are 12 core principles of project management. These principles advise us to learn and to work collaboratively by adapting ourselves to learning.
The 12 core principles of the Agile Manifesto:
- The number one priority is to ensure customer satisfaction by providing software early and continuously.
- Changes should be embraced, even at the end of the development process. The customer’s competitive advantage should not be missed.
- It is necessary to deliver the software in a shorter time. If the developments will continue, short-term versioning should be done.
- Business people and software developers should work together on a daily basis.
- Build your projects with motivated people. Give them the environment and support they need and trust them to get the job done.
- The most effective way to convey information to someone in the team is to meet face to face.
- Working software is the primary measure of progress.
- Agile processes encourage sustainable development. Sponsors, developers, and users must go at a certain pace.
- A constant focus on technical excellence and good design increase agility.
- Simplicity means maximizing the don’ts.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team evaluates how it can be more effective and develops its work accordingly.
What Is Scrum?
Scrum is one of the agile project management methodologies that is defined in its own guide as “A framework within which people can address complex and adaptive problems while productively and creatively developing products of the highest possible value”.
It is a solution management tool that can be flexible according to the requirements that arise in detail and according to the needs of the software processes.
How it works can be summarized as follows:
- Everything the team needs to do is listed and prioritized by the product owner.
- Scrum focuses on fixed times. Every time has a goal-sprint. At the end of this period, the work done is evaluated.
- Before realizing the goals, it is necessary to plan what the goal is and how it will be achieved.
- After the development team starts the sprint, every day, it does a daily scrum, stating what it did the previous day, what it will do during that day, and what the risks are.
- At the end of each sprint, a meeting is held to evaluate the previous and plan the next sprint.
- The project progresses in an iterative process.
In this way, instead of producing products at the end of a linear development process for months, weekly work plans are carried out within working periods called “sprints” in order to respond to rapidly changing needs.
The work that needs to be done in each sprint is owned by the people and comes out as a product at the end of the sprint. The Sprint consists of the following parts:
- Preparation: The document prepared for production by the business owners, works that require research, and additional design. Jobs prepared to be nominated throughout the sprint.
- Candidates: Jobs whose preparation is considered completed. At the sprint meeting, everyone gets a card from this list in order of priority. Before the sprint meeting, we all take a look. Developing ideas with the priority of the questions below make our sprint meeting both more efficient and concise.
Is there anything missing about the preparation done?
If we put it in Current, how can I produce it with a time plan?
What kind of preliminary work may I need to do this job?
- Current Sprint: A list of work that the entire team has committed to producing for the current sprint.
- Review not accepted: Cards returned from the customer or PB team.
- In progress: The work we started to do is included in this list so that we can see what work we are all dealing with at that time.
- Waiting review: Sent for testing. Those waiting to be tested by account representatives or business owners on the PB team.
- Client testing: Really waiting for customers or business owners to test for issues that can’t be tested in the test.
- Review accepted: Tested, accepted. Those that are available for production.
- Done: Done, in use — all our live work.
As this is a method that fits both today and our working philosophy, we continue with satisfaction.
- Product Backlog: It is the list containing the requirements for the project. Requirements from the customer are sorted by the product owner. The product owner can add or remove from the product backlog if the needs change.
- Product Backlog Item: It is the name given to each requirement in the product backlog.
- Sprint: The project is divided into small parts called sprints.
- Sprint Backlog: Product backlog items are included in the sprint by the development team in order of priority.
- Scrum Board: It is the area where the items to be made in the Sprint are managed. The tasks to be done are taken to the “to-do” section. When team members start this work, they are brought to the “in progress” section. If this job is ready for testing, it is set to “to verify”. After the control phase is completed, it is brought to the “done” section.
- Burndown Chart: It is the chart that shows the days of the sprint on its horizontal axis and the remaining work in the sprint on its vertical axis and is used to provide transparency.
The terms “chicken” and “pig” come from Ken Schwaber’s story “The Chicken and Pig Story”. Ken Schwaber is a software developer who was involved in formulating the original version of Scrum. These terms are most commonly used in Scrum. “Chicken” refers to someone who is involved in a project but is not responsible for a specific outcome (such as a stakeholder or manager). “Pig” refers to someone who is committed and directly responsible for the deliverables.
“The Chicken and Pig Story” by Ken Schwaber:
A pig and a chicken are walking down the street.
The chicken looks at the pig and says, “Hey, why don’t we open a restaurant?”
The pig looks at the chicken and replies, “Good idea, what are you going to call it?”
The chicken thinks about it and says, “Why don’t we call it Eggs and Bacon?”
“I don’t know,” says the pig, “you’d just be involved, but for me, it would be a commitment.”
Pig Roles: People involved in the Scrum process. These are the Scrum Master, the Product Owner, and the Development Team.
- Product Owner: Provides communication between the development team and the customer. Defines the properties of the project.
- Scrum Master: The person responsible for the team’s implementation of these rules by knowing the Scrum rules, theories, and practices. It eliminates the situations that prevent the team from working efficiently.
- Development Team: Persons who will complete the tasks taken in a Sprint.
Chicken Roles: People who are not actively involved in the operation of Scrum. E.g., customers, marketers…
- Sprint Planning: The tasks and requirements specified in the Product backlog are divided into tasks (tasks) by the development team in this meeting.
- Daily Scrum: These are short meetings held in the same place at the same time every day. Members do not wait to be invited. This meeting is held to plan the next 24 hours.
- Sprint Review: At the end of each sprint, the past sprint is reviewed and the resulting project is evaluated.
- Sprint Retrospective: It is the meeting where the quality of the work done during the sprint, right, and wrong are evaluated.
Our product managers work with you to clearly identify project requirements, milestones, feature and tasks to build the project work statement using the Agile development process. Ready to get started? Contact us today by filling out this form.