Share article Agile Development Part 2: Agile Development Part 2 Get Interview tutorials and videos on .NET 3.5, 4.0, Agi ...
Get Interview tutorials and videos on .NET 3.5, 4.0, Agile,ASP.NET, SQL Server, CAS, Security, WCF, SharePoint, Azure, OOPS and many more on www.questpond.com
This article is a quick FAQ of Agile. By reading this you will understand fundamentals of Agile and different ways of implementing Agile.
I have been writing and recording lot of architecture related videos on design patterns, UML , estimation and C# projects. You can see the sample videos at http://www.questpond.com.
Par1 Agile FAQ :- http://www.codeproject.com/KB/aspnet/AgilePart1.aspx.
If you read the XP life cycle one of the things after we implement the task is code refactoring. Refactoring the process of changing the software in such a way that it does not change the behavior of the code but on the other hand improves the internal structure. No code can be perfect with architecture, coding conventions, high reusability at the first level itself. Normally it improves over the time. It helps developers to implement the necessary solution today and improve / make the code better tomorrow. Refactoring is the process of changing the system to improve the internal structure with out changing what the system does. Below are three major activities performed during refactoring.
XP is all about light-weight and simplicity. This holds true not only for a process but also for coding. When you see a code can be simplified, discuss the same with your pair developer and
implement the same. For instance below is code which was further simplified in to one equation:
Figure: - Simplify Code
Move similar operations in to reusable code.
If we are having similar operations move them to one reusable code. For instance in the below class we have various sort function which sorts by phone, code, name and date. We can combine the same in to one function called as sort and make it simple.
Figure: - Reusable code
When a project has constrained time lines it’s very much possible that project can have lot of duplications. So when developers have executed the task they can review for these kinds of duplications. For example the below figure ‘Remove duplication’ shows how the phone number duplication is removed from the customer table. The customer table had repetitive fields like mobile number, land line and office number. In abstract terms these represent telephone numbers. So we split the customer table in to two tables one is the customer table and the other is customerphone and built a relationship between them.
Figure: - Remove Duplication
Below is again one more scenario where we have an invoice class which has two methods (“
GenerateInvNo” and “
CreateInvNo”) and they do the same thing, generate unique
invoice numbers. We can refactor / improve the code by combining these two methods in to one.
Figure: - Code Duplication
No Code is perfect it has to be made perfect
What is a feature in Feature Driven Development?
Feature is a process which adds value to the end customer and it can be planned. In short it has two characteristics:
Figure: - Feature
In short it’s not necessary that a feature maps with use case or a user story. It should also be planned and manageable. Feature are delivered in a given time box (we will discuss this in detail
in the coming sections).
FDD is an iterative methodology to deliver projects. Rather than delivering projects in one go manner we deliver the features with in time limits. So let’s understand how the FDD cycle moves. We
will have two views one is the over all flow and one is the detail iteration flow.
Below figure ‘Structure of FDD project’ shows step by step approach for FDD project.
Figure: - Structure of a FDD project
The above defined FDD cycle is an overall view. Let’s go deep in to how every iteration will be executed. Below figure ‘Steps in Iteration’ shows how an iteration execution happens in a detailed manner.
Figure: - Steps in a Iteration
Testing is done at end of each iteration. This ensures frequent checks on each deliverable of every iteration.
Every iteration in FDD has to be limited to some kind of timelines. Deciding the length of timelines for every iteration is termed as time boxing. Same has been explained the previous question in
a detailed manner.
Iteration in XP is small i.e. between 1 to 4 weeks. This iteration sounds good for smaller projects, but when it comes to large projects, iteration go in months. That’s where FDD comes under
picture. Iterations in FDD can go in months and probably years.
SCRUM is a methodology which believes rapid changes of customer can not be solved by traditional approach. So it adopts an empirical approach where it believes problem can not be understood or defined. Rather concentrate on the team’s ability to respond to the emerging requirements.
Before we understand the SCRUM cycle let’s get familiar with some terms regarding SCRUM.
Below figure ‘Product Catalog and Sprint’ shows a typical product catalog broken in to sprint. In the left hand side of the figure we have shown two items in the product back log “Create Customer” and “Create Supplier”. To complete “Create Customer” the developer need to the following sprint task “Code Business Logic”, “Design UI” and “Prepare Test Plans”.
Figure: - Product Catalog and Sprint
Below figure ‘SCRUM Flow’ shows how the development flow moves in a project. We will understand the SCRUM flow step by step.
Step 1:- Product owner (i.e. the customer) creates a list of product log (list of functionalities).
Step 2 and 3:- In these phases we sit with the customer and prioritize the product catalog. We discuss with the customer which functionality is must and must be delivered first.
Step 4 and 5:- In both these phases we breakdown the product catalog in to tasks called as sprint backlog.
Step 6:- We start executing the sprint task and monitoring the sprint activity.
Step 7 and 8:- Once we are done with the sprint activity, we take the next sprint / task by again going to the sprint phase.
Step 9:- If there are no more sprint / task the product log is completed, which means the project is completed.
Figure: - SCRUM Flow
SCRUM has some different terminologies when it comes to role names in SCRUM. Below is the list of roles with what actually they mean.
People with pig roles are those people who are committed to the project. If the project fails it affects these people. So of the pig roles are developer, customer, project manager etc.
Product owner means the end customer or user.
Scrum master is the process driver. These are the people who drive the scrum process. They are consultants for Scrum process.
People with chicken roles work indirectly on the project. They do not really benefit from the project but their feedback is valuable to the project. They can not be held responsible if the project is not successful.
Figure: - SCRUM Roles
DSDM also termed as Dynamic Systems Development Method has the following characteristics:-
Figure: - DSDM Characteristics
DSDM has three basic phases Pre-project, Project life cycle and Post project phase.
Figure: - DSDM Phases
There are in all five phases in DSDM project life cycle:-
Figure: - DSDM Project Life Cycle
Lean software development has derived its principles from lean manufacturing.
Below figure ‘Principles of LSD’ shows all the principles.
Figure: - Principles of LSD
Let’s understand in brief about the principles.
Eliminate waste: - Only deliver what’s needed to the end user. Anything more than that is a waste. In short anything which does not add value is a waste. In short we can by pass
tasks and still deliver then it should be bypassed.
Decide as late as possible: - Software systems are complex. The more they are near to execution more is the clarity. So delay decisions so that they can be based in facts rather
than assumptions. For instance your team decides to use automation testing, but when you complete execution you come to know changes are delivered every day by the developer. After execution you
conclude manual testing is the best option. Bad part will be if you have already bought an automation tool, its waste of money.
Deliver as fast as possible: - faster a product is delivered, faster you will get user response and faster you can improve in the next iteration. The concept is not fast coding,
but try to deliver is small user identified chunks for better understanding.
Motivate team: - Team members are the most important aspect for success of any project. Motivate them, given them roles; keep your team spirit high and whatever you can do to
make them feel good in the project. A highly motivated team delivers project on time.
Integrity: - Software system should be delivered in loosely coupled components. Every component or module can function individually and when integrated with the project it works perfectly well. It should be a plug and play from the end user point of view. This spirit is derived from how actual production system work. You can assemble a car with wheels from one organization and seats from other organization.
ASD (Adaptive Software Development) accepts that change is a truth. It also accepts in principles that mistakes can happen and it’s important to learn from those mistakes in the future. Below figure ‘ASD Cycle’ shows three important phases in ASD.
Figure: - ASD Cycle
Let’s understand all the three phases in a detail manner.
Speculate (nothing but planning):- This is the planning phase of ASD cycle. Below figure ‘Speculate’ shows in detail what happens in this phase.
Define Project Scope: - This is the first phase in the main speculate phase. In this we set the main goals and what’s the scope of the entire project.
Set Time for Scope: - Timelines are decided for the scope identified in the previous phase.
Decide the number of iterations: - Depending on the time lines and the scope we identify how many iterations will the project have.
Break Scope to tasks: - In this section we break the scope in to tasks. Tasks are nothing but development activity which a developer has to do to complete the scope.
Assign task to developers: - Assign those task to developer.
Now that we know who will do what task, its time for coding / execution.
Figure: - Speculate
Collaborate (coding / execution):-Execute as per the task and test it.
Learn (Review and give feedback to planning):- At the end of iteration see what lessons we have learnt and apply the same for the next iteration.
From all the methodologies shown above, XP is the most used for Agile. One of the important points to be noted about all the XP methodologies described above is that every body believes in accepting change. Principles of all the agile methodologies are more or less same. So do not get confused just understand what every methodology concentrates on. For instance FDD plans around features, Scrum uses product owner and catalog for describing a project, DSDM gives importance to RAD. So understand the main theme of the methodologies but yes the common acceptance is every one believes on ‘Accepting Changes’.
ADO.NET interview questions videos
Windows Phone Application Questions Videos
MVC Interview questions and answers Article
Explain the concept of View Model in MVC?
Exception Handling in MVC
Explain MVC application life cycle?
100 MVC Interview question PDF download released , Enjoy
Learn Microsoft Business intelligence step by step – Day 1
Can you create TempBag just like ViewBag?( MVC Interview questions)
MVC Unit Testing Unleashed
MVC and .NET learning tutorials for components of MVC and how do you perform unit testing in MVC?
Explain MVC model binders ? ( ASP.NET MVC interview questions)
Explain the difference between layout and master pages ? (MVC Razor interview questions)
WCF Interview questions videos
WPF Interview question with answers videos
C# Interview Questions & Answers Article
C# design pattern (UNIT of Work Design Pattern)
C# design pattern interview questions – What is Dependency injection ?
C# interview questions and answers: - What is the difference between “==” and .Equals()?
C# Architecture interview questions with answers
C# Mock testing interview questions and answers: – What is Mock testing and how can we implement Mocking?
Write a simple regex for email validation? (C# interview questions with answers)
C#.NET interview questions: - What is the difference between Build Vs Rebuild Vs Clean solution menu? What is the
difference “Rebuild” and if you do “Clean” + “Build”?
C# and .NET interview questions around JIT and NGEN
What is the difference between throw vs throw ex ?( C# Interview questions with answers)
C#/.NET interview questions: - What are the steps included to get a collection of records from database in C#?
Learn C# in Hindi video tutorials
WCF INTERVIEW QUESTIONS AND ANSWERS ARTICLE
QUESTIONS WITH ANSWERS :- WHAT IS DATACONTRACTSERIALIZER AND HOW IT’S DIFFERENT FROM XMLSERIALIZER
What is SOA and what is WCF? ( WCF interview questions with answers)
Six important WCF interview questions with answers
7 WCF SOA interview questions with answers
What are the various ways of consuming WCF services?(WCF C# interview questions with answers)
What is the difference between Serialization and Encoding in WCF?( WCF interview questions with answers)
Why returning dataset or data table from WCF service is not a good practice?(WCF service interview questions with answers)
WCF transaction interview questions: - How transaction works in
WCF Transaction interview questions.
.NET WCF(Windows Communication Foundation) interview questions: - Distinguish between Web Services and Remoting | WCF and Web services
WCF interview questions: - What exactly do you mean by Single in WCF instancing? How to set and what is by default set value of instance context mode?
Explain WCF Duplex services? ( WCF Interview questions)
QuestPond: Interview Questions and Answers on learning WCF
WCF Interview Questions: - What are the different ways of doing WCF concurrency and WCF instancing?
QuestPond: Interview Questions and Answers on learning WCF (Windows Communication Foundation)
QuestPond: Interview Questions and Answers on learning WCF (Windows Communication Foundation)
QuestPond: Interview Questions and Answers on WCF(Windows Communication Foundation)
QuestPond: Interview Questions and Answers on learning
WCF (Windows Communication Foundation)
QuestPond’s Interview Questions & Answers on learning data contract serializer and XML serializer
QuestPond’s Interview Questions & Answers on learning serialization events
QuestPond’s Interview Questions & Answers on learning WCF(Windows Communication Foundation)
QuestPond’s Interview Questions & Answers on WCF(Windows Communication Foundation)
WPF Interview Questions And Answers Article
How does “UpdateSourceTrigger” affect bindings?( C#
WPF interview questions with answers)
WPF Interview questions :- Which are the different namespaces and classes in WPF ?
What are resources in WPF? (C# WPF Interview questions with answers)
Explain multi binding and multivalue converters? (.NET WPF Interview questions with answers)
Explain the difference between static and dynamicresource? (.NET WPF interview questions)
18 important WPF interview questions asked in WPF interviews.
.NET WPF(Windows Presentation Foundation) interview questions: - What is WPF? What are the advantages of WPF over Winforms?
Explain WPF relative binding / relative resource? (.NET WPF Interview questions with answers)
Explain Ancestor relative source binding in WPF ? ( WPF Interview questions with answers)
Explain the need of binding and commands?(WPF Interview questions)
Can you explain WPF command with an example? ( WPF Interview questions with answers)
Explain the need of “INotifyPropertyChanged” interface? ( C# WPF Interview questions with answers)
What is MVVM? (WPF MVVM Interview questions)
What is the importance of command and bindings in MVVM pattern? ( WPF MVVM Interview questions)
What is the difference between MVVM and 3 layer architecture? ( WPF MVVM Interview questions with answers)
Explain delegate command? (WPF MVVM interview questions)
WPF Interview questions with answers
Explain WPF styles?(C# WPF Interview questions with answers)
Explain Multitrigger concept in WPF?( C# WPF Interview questions with answers)
How are WPF observable collections different from simple .NET collections? (.NET WPF Interview questions)
What is the difference between control templates and data templates? ( .NET WPF Interview questions)
What are various ways of doing alignment in WPF?( WPF Interview questions with answers)
.NET INTERVIEW QUESTIONS & ANSWERS ARTICLE
What are ACID Properties( .NET Interview questions with answers)?
.NET interview questions: – What are the areas that need to be concentrated for senior(9+ years experience)persons in .NET technologies?
.NET interview questions: - Does code contract only do dynamic
ADO.NET interview questions: - How can we fire a simple SQL Statement using ADO.NET?
.NET interview questions: - What basic steps are needed to display a simple report in crystal?
.NET interview questions: - What is UML? How many types of diagrams are there in UML?
.Net Interview Questions - What is MVC, MVP and MVVM pattern?
.NET interview questions: - How can you define a property read only for external world and writable in the same assembly?
Explain the implicit and explicit conversion of data types with examples?( .NET interview questions on data type)
.NET interview questions: - What is Reflection its implementation and practical uses?
What is downcasting and upcasting? (.NET interview questions with answers)
.NET interview questions: - How to decide on the design consideration to take a Data grid, data list or repeater?
.NET interview questions : - How can we improve performance of .NET and show the difference between .NET 1.X,
2.0, 3.0, 3.5 and 4.0?
How to convert string to ENUM value ?( .NET interview questions with answers)
.NET architecture interview
questions series: - What is mean by modeling language?
.NET architecture interview questions : - What are benefits and Limitation of using Viewstate, hidden frames and Cookies?
.NET interview questions: - What is GAC (Global Assembly Cache)?
Why do we need HTML 5 server-sent
events? (ASP.NET HTML interview questions)
How can we add and remove data from local storage?(ASP.NET HTML 5 interview questions)
What is local storage concept in HTML 5? ( ASP.NET HTML 5 interview questions)
Explain the term cascading in style
sheet ? ( CSS Interview questions)
What is difference between DIV vs SPAN in HTML ?( ASP.Net Interview questions)
HTML 5 Canvas Interview questions: - Canvas in HTML 5.
Dotnetspider Questions And Answers Article
What is the difference between String vs string? ( C# interview questions) ?