Empowering Mobile developers with Effective Tips & Optimized Techniques of Programming. , to develop eco-friendly Advanced Software & Enterprise Technologies. How to save our planet EARTH through BEST Software Programming Practices & Techniques.
Agile empowers teams continuously plan their release to optimize its value throughout development life-cycle, so teams are competitive as possible in the marketplace. Development using an agile methodology preserves a product’s critical market relevance and ensures a team’s work doesn’t wind up on a shelf, never released.
A small group of people got together in 2001 to discuss their thoughts about the failure of traditional approach of software development life-cycle and is there a better way to do this? They came up with the agile manifesto, which describes 4 important values that are still relevant today, The use of the word agile in this context derives from the agile manifesto. It says, “we value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.” Ever since then, the use of methods that support these values has become increasingly popular.
The twelve Agile principles derived from four key values in agile manifesto.
These twelve Agile principles are as follows:
1. To meet the Customer Product expectations through iterative high quality, customer friendly software
2. To accept changes as the come from customer to increase customer’s competitive advantage in the market.
3. Deliver incremental working software to the customer in agreed time-boxes or period.
4. Team is mix of cross functional professionals i.e. both technical and business domain experts.
5. Team works in a highly motivated helpful environment, team enjoys all support & trust during project life-cycle.
6. Most effective communication among team members to convey information between them regularly i.e. daily face to face meeting.
7. Working Product is the only measure of progress.
8. Agile believes in constant iterative development, all the team members & sponsors need to keep up this constant development speed.
9. Continuous focus on Quality & Design Enhancements improves effectiveness & usability of the product being developed.
10. Simplifying the art of identifying the incomplete work is the important factor for continuing the product development.
11. Only the most motivated & highly disciplined self-organizing teams can innovate best designs and specifications for the product.
12. The team effectively adapts itself to ever-changing needs of the project & product requirements.
The real goal of any business is the Quality working software and the way to get there is all these things that Agile principles asks us to do, through a continual process of learning.
In the next article of Agile Framework and Methodologies series I will be discussing about finer details about SCRUM Methodologies.
Builder Design Pattern falls under the type of creational pattern category. Just like a house construction follows an ordered process of construction namely 1. Foundation 2. Wall Door & window construction. 3. Roof construction. Similarly a build pattern follows a ordered … Continue reading →
Adapter Pattern Two different objects have unfriendly interfaces and then we introduce adapter to communicate and interact between them without any changes to the existing interface of the two objects. Adapter converts the interface of a class into another interface … Continue reading →
S.O.L.I.D. Design principles suggest that the Individual pieces / building blocks of software should be of solid quality and highly accurate in design. For e.g. build blocks of rockets or Formula 1 car. The high quality software should follow principles … Continue reading →
Design patterns are documented tried and tested solutions for recurring software problems in a given design context. So basically you have a problem to be solved and the proposed solution in the form of design pattern for the same problem. … Continue reading →
Generic Programming is a methodology for the development of reusable software libraries and API’s which are highly efficient and composable. The Generic Programming helps develop multiple libraries which can be combined seamlessly without any modification to any of the interface … Continue reading →
Recursion is a process which evaluates an object in terms of a simpler case of itself is called Recursion. The recursive algorithm invocation must eventually reduce to some computation of one or more simplest possible, non-recursive cases. Every Recursion contain … Continue reading →