In this topic, we described about the below sections -
In order to maximize the efficiency and eliminate waste, avoid roadblocks, and put the productions flowing in accordance with the demand. Many people get involved with their own knowledge, talent, and methods to get the things done. To make sure the flow and consistency from party to party, methods must be used in place to keep the productions going on.
Let us discuss about different methodologies and frameworks that are used for development and manufacturing.
Agile Key Principles
Agile has a set of values and principles that are recorded as manifesto with newer ideas which are developed to use the more complicated. Agile method mainly focuses on the following key principles -
- Customer satisfaction would be the most important aspect.
- Projects would be developed with inspired contributors.
- Personal interactions would be the best.
- Software that would work would be the measure of progress.
- Reflect and adapt an ongoing basis. Additionally, Agile has the following core values:
- Individuals and interactions over processes and tools.
- Working software rather than software documentation.
- Customer collaboration rather than contract negotiation.
- Responding to change over following a plan.
Types of Agile Methodologies
There are several agile methodologies in usage across the world. The most popular ones are –
- Extreme Programming (XP)
- Feature Driven Development (FDD)
- Crystal methodology
- Dynamic Software Development Method (DSDM)
Scrum is an Agile methodology which would consist of complex set of development principles. The main focus would be on the management aspects of the projects. In this method the product owner would collaborate with the IT teams and business to collectively isolate and tackle the functions of the system which is known as the product backlog. Team members would distribute the software program in increments which is known as a Sprint in a duration of one month. Once delivered, analysis would be made on the product backlog and priorities would be shifted if necessary, with each repetition of the cycle. Scrum is transparent. This method would be appropriate for information technology business which would focus on products, features, and delivery in partnership with management teams. A good practice from SCRUM would be the daily stand up meetings that are time boxed time events where in all the teams would discuss work in progress and the obstacles that might possibly occur. For a better collaboration, there are some team roles -
- Product Owner
- Scrum Master
- Scrum Team
The foremost Agile methodologies is the Extreme programming which would involve a highest degree of participation between the two parties in the software exchange-customers and developers. Development would be emphasized by the most useful features of a given software product through the testimonials. The developers would in turn see a successive set of working software upgrades on this feedback before continuing to test new innovations for every few weeks.
XP would have its pros and cons. On the upside, Agile methodology would involve a high level of collaboration and minimum amount of upfront documentation. It is an efficient and persistent delivery model. However, the methodology would need a great level of discipline, as well as plenty of involvement from people beyond the world of information technology. Furthermore, to get best results, advanced XP proficiency is important on the part of every team member. XP has proved its best for experienced developers with a proven track record in communication and management.
Kanban method was developed by Toyota engineer Taiichi Ohno for Lean production. This system was designed for scheduling. This method would facilitate production and inventory control. Using this methodology, work teams would accomplish Just in Time Production. Kanban can be adapted to visualize our work, maximize efficiency and be agile. The best way to visualize our work is by creating and using a Kanban board. Kanban board can be used as an information repository, highlighting the bottlenecks within the system.
Core principles of Kanban -
- Principle 1 - Start with what you know.
- Principle 2 - Agree to pursue incremental, evolutionary changes.
- Principle 3 - Respect the current process, Roles and Responsibilities.
- Principle 4 - Encourage acts of Leadership at all levels.
The six practices of Kanban are -
- Visualize the Workflow.
- Limit Work in Progress.
- Manage Flow.
- Make Process Policies Explicit.
- Implement Feedback Loops.
- Improve Collaboratively (using models & the scientific method).
Lean is a philosophy that focuses on waste reduction.
In lean, we can divide a process into value-adding activities, non-value-adding activities and important non-value adding activities. Any activity that can be classified as a non-value adding activity is a waste. We should try to remove that wastage means non-value adding activity in the process to make it leaner.
A leaner process implies faster delivery and less effort wasted in tasks. Lean process helps to enhance every step in the software development cycle. Because of this, the lean principles were taken into software development from lean manufacturing.
Below are the seven lean principles that apply to use lean software development in any IT project -
- Eliminating wastage
- Amplifying learning
- Making late decisions
- Quick delivery
- Empowered teams
- Built-in integrity
- Look at the whole picture
Feature Driven Development
FDD method would involve turning models into builds at iterations.FDD focuses on walkthrough of the domains, as well as the design, code, and inspection. This model would be built along with the list of features. For every feature there is a development and design plan implemented. Following a series of inspections, a unit test would be performed to see whether it is ready for the build stage. FDD would facilitate top quality documentation and design/code assessment. FDD is the most optimistic for big business developers in the banking and financial sectors, where the process maturity and quality control are mandatory.
Crystal Methodology is a family of smaller agile methodologies such as Crystal clear, crystal Agile, crystal red etc. These methodologies were introduced by Alistair Cockburn. There are three main factors that would determine the characteristics of different projects. Namely, Team Size, system criticality and project priorities. Projects are categorized based on the system criticality as four levels. Namely, Comfort, Discretionary Money, Essential Money, and Life. Size of the team would depend on the size of the project. The number of roles of a team also depends on the project size. Additionally, this methodology focuses on: