The roadmap and requirements are very important resources for our team on initiating project development. Work breakdown is assessed and managed to divide complex project into smaller components. Then the components are distributed to each member of our team. It will be implemented and delivered. This kind of practices are the few concept included in Project Management Methodologies. The most common and traditional way to plan out a project is called the Waterfall Model.
“But what are the actual methods we are using on managing our projects?”
These article will gave you the ideas about the Methodologies on Excite. Let us start with the discussion about Agile.
Agile Software Development
Agile Software Development is an umbrella term for a set of methods and practices based on the values and principles expressed in the Agile Manifesto.
Solutions evolve through collaboration between self-organizing, cross-functional teams utilizing the appropriate practices for their context.
Scrum is a subset of Agile. It is a lightweight process framework for agile development, and the most widely-used one.
- A “process framework” is a particular set of practices that must be followed in order for a process to be consistent with the framework. (For example, the Scrum process framework requires the use of development cycles called Sprints, the XP framework requires pair programming, and so forth.)
- “Lightweight” means that the overhead of the process is kept as small as possible, to maximize the amount of productive time available for getting useful work done.
A Scrum process is distinguished from other agile processes by specific concepts and practices, divided into the three categories of Roles, Artifacts and Workflow. These and other terms used in Scrum are defined below.
Scrum is most often used to manage complex software and product development, using iterative and incremental practices. Scrum significantly increases productivity and reduces time to benefits relative to classic “Waterfall” processes. Scrum processes enable organizations to adjust smoothly to rapidly-changing requirements, and produce a product that meets evolving business goals.
An agile Scrum process benefits the organization by helping it to
- Increase the quality of the deliverables
- Cope better with change (and expect the changes)
- Provide better estimates while spending less time creating them
- Be more in control of the project schedule and state
Illustration: Scrum Workflow
Kanban is a method for managing knowledge work with an emphasis on just-in-time delivery while not overloading the team members. This approach presents all participants with a full view of the process from task definition to delivery to a customer. Team members pull work from a queue.
Kanban in the context of software development can mean a visual process-management system that tells what to produce, when to produce it, and how much to produce.
Kanban does the same for software teams. By matching the amount of work in progress to the team’s capacity, kanban gives teams more flexible planning options, faster output, clear focus, and transparency throughout the development cycle.
Kanban Workflow States
- To do / New – work that has not been started
- In progress – work that is actively being looked at by the team
- Code review / Testing – work that is completed, but awaiting review
- Done – work that is completely finished and meets the team’s definition of done
Illustration: Team Kanban Board
Waterfall, Scrum and Kanban Practices on Excite
To sum it up, we are following the ideas of Waterfall Method since our initial process is to gather the requirements, specifications and software design on starting with our projects. A taskboard, or we can refer as Scrum Taskboard is used to tracked down project tasks and a useful visiual tool which provides a daily reminder of the work to which the team has committed. A Stand-up meeting or the Daily Scrum meeting is held at the taskboard so members update the team regarding on their progress tasks. It emphasized the yesterday’s goal, what they hope to achieve today, and whether there’s anything blocking them from progressing. Now this cycle portion came from Scrum Development. Unlike Scrum, we are practicing our efficiency through focusing on one task after another. We are limiting our work in progress which limits the hightlight bottlenecks in our team. Change can also be happened any time during work-in-progress which is opposite to Scrum were the team compromise not to make changes during sprint. On the other hand, these kind of practices came from the idea of Kanban Method.
Illustration: Basic Workflow
There are other methods that we are practicing in our team such as Brainstorming and Peer Programming. By doing so, we can reduced the bottleneck that impedes our work-in-process and prevent it from happening in the future. We can also provide a quality outputs, and learn with each other in the process of Knowledge Sharing. These methods was not just helping the others but also improve ourselves in our daily development life.