Tag Archive

Tag Archives for " agile "

What is a Sprint In Agile?

If you are interested in Agile, no doubt you have heard of Sprints. But what are they? Well in this article I plan to reveal all and explain more.

What is a Sprint in Agile? Sprint is an iteration of time boxed work that is used within the scrum framework of Agile. Typically, these sprints are short, modularised pieces of development/testing which aims to meet the sprint goal.

To truly understand how Sprints fit into the whole Agile methodology, you need to read on. I will explain the different between sprints and scums, how sprints fit into the Agile Scrum framework and more detail about sprints in Agile.

What is the difference between a scrum and a sprint? 

In some cases people may get these confused, but effectively they're very different. A scrum is a meeting, that is typically done on a daily basis and it's an opportunity for the team members to get together to make sure they're still on track for the sprint.

It is an opportunity to work through any challenges they may have had the day before, and to focus their attention on what needs to be done for that particular day.

It's usually a very short 15 to 30 minutes get together, and then you continue with your rest of your day, and the main focus is on the sprint itself.

The Sprint on the other hand. Is an agreed iteration of work to be delivered in a agreed timeframe.

What an Agile sprint cycle? 

A sprint cycle is really just another way to say a Sprint. As discussed earlier, a sprint is a timed boxed piece of work used in the scrum framework.

What is Agile sprint planning? 

Sprint planning is effectively planning the up coming sprint.  It is a collaborative effort which typically involves a scrum master.

For those of you that are familiar with the framework of scrum. The idea is, the scrum master facilitates the planning of upcoming sprints, and agrees, with the project team, all of the backlog items in the product backlog that are going to be used in each sprint.

What actually goes into a sprint? 

As discussed earlier, a sprint it is an agreed selection of backlog items that will be delivered in an agreed time frame. Obviously the very specific tasks that are delivered are subjective to the project that you're working on. 

For example, let's say that you are building a new banking application, then maybe you'll have two weeks to work on just the graphical user interface and that will be the focus of the first two weeks.

The day-to-day scrums will make sure that you're on track to deliver that sprint goal.

How long does a sprint usually last? 

As you can imagine, there is a bit of subjectivity here because it depends on your individual project, or how your company works, but the average is about two weeks.

It can be shorter, it can be a week or it could even be longer. It's not recommended to have really long sprints because the whole beauty of Agile is to have quick sprints, and then get quick feedback and quick iterations.

To cut a long story short, two weeks is the average, but you could be looking anywhere from one to four weeks, but most people go for two weeks.

Related Questions:

What is a sprint backlog? A sprint backlog is effectively a list of tasks that have been identified to be delivered throughout the entire Agile project.

Each sprint consists of the agreed list of work items, for example, the two week sprint, that are taken from the sprint backlog. Effectively, the sprint backlog  could literally be a document which has all of the pieces of work and development that are gonna be done throughout the entire project.

What is a sprint forecast? A sprint forecast is a scrum guide that refers to what will actually be delivered throughout the project itself.

This is largely reliant on the product backlog and the items that are selected for each sprint. It gives you a forecast of where you're going and where you're going to get to with your actual project.

What is a confluence sprint planning template? If you're into the world of Agile, then maybe you've come across confluence before.

Effectively, confluence is a collaboration tool that is used to help teams to collaborate and share their knowledge. The sprint planning template is just a template within this tool which enables Agile teams to work more effectively together, and effectively that's what it is.

What is the Difference Between Waterfall and Agile

If you are interested how Agile compares to a more traditional methodology such as the Waterfall, you are in the right place. In this article I will break down the key differences between . these very different software development approaches..

What is the difference between Waterfall and Agile? The main differences is an iterative approach as opposed to a rather rigid sequential approach. Agile has agreed work packages, called sprints, that can be changed or improved as the project progresses, as appose to waterfall which has sequential phases from design to development through to testing.

To get the full detail on this continue to read on. I will break down 11 differences between Agile and the waterfall method.

Phases Instead of Sprints

So as mentioned briefly before Waterfall has phases, instead of sprints. In Agile you have bits of functionality that are grouped together in what is formerly known as sprints.

Waterfall Phases instead of Agile Sprints

For example, if you're working on a website graphical user interface, e.g. your first sprint might be the general layout of the actual graphical user interface (GUI).

And then at the end of the sprint, after testing the developed software, you would present this to the team so that they can get an idea of if they like what they see.

After they agree with the functionality, the next sprint maybe to improve on that, add more features or functionality and do this in a continual process until you get to the final end product.

As opposed to the Waterfall model where you have a requirements phase, a design phase, and each phase is locked down, signed off, and then you move to the next phase. Once the requirements are done, there's no going back.

Rigid Phases Vs. Flexibility

So as I previously mentioned, in th Waterfall method, each phase is effectively locked in and agreed, without any flexibilty.

So what this means is, once you, for example, finish the requirements phase in Waterfall, you then have a document which is signed off by all parties and once that's done, that is cast in stone. You will then stick with these requirements to the very end of the project.

Whereas, with Agile, you will effectively be evolving the requirements ongoing from the beginning to the end of the project. So at the beginning the whole requirements could actually change significantly by the end, which gives you more flexibility.

Requirements locked down versus dynamic changes to requirements. 

Waterfall Requirements Locked Down vs Dynamic Changes to Requirements in Agile

So a bit of an overlap with the last one, but the main focus here is once the requirements are done, there is no changes. They're locked down and they're cast in stone.

Effectively it's quite expensive in Waterfall to make a requirements change because you'd have to go back to square one, make changes to the requirements doc, which is pretty much like the underpinning overarching document that dictates the entire project phase and then roll out the design implementation and testing all over again.

Whereas in Agile is quite dynamic and you can effectively make changes on the fly and then work them into the next sprint of work and gently evolve. Both of these, by the way, have their pros and cons, but there is a very big difference between these models.

Testing once versus incremental testing. 

What this basically means is in the Waterfall model, you have a very specific testing phase. Once you exit the testing phase and it's signed off, you are then done with testing for the entire project.

With Agile, on the other hand, you break everything up into sprints and effectively you're testing throughout the whole project and you can continually change requirements. Development code will change and you'll continually keep testing within each sprint. 

For example, for those that don't know what a sprint is, it is a short phase that could be anything as quick as two weeks, finish a piece of functionality, test it and then restart the next sprint and you're continually testing, developing, coming up with requirements and so on and so on.

Customer validation at the end Vs. Customer involvement from the start 

So with the Waterfall method, typically the customer really doesn't get involved until the very end of the project when everything is already delivered, done, tested and everything is signed off.

The customer really just has a hand in agreeing the requirements. But as far as seeing the end product, they don't get involved until the end. Whereas in Agile, on the other hand, the customer is involved from the very beginning because they get to see working prototypes in each sprint and get an opportunity to give feedback that can dictate how the project moves forward.

Sequential department focused versus collaborative. 

So with the Waterfall method, each phase has its own team of people that work on it and sign it off. So for example, when you do development, you have a development phase, whether that be for two weeks, two months or even two years, whatever the duration.

You have a specific team that will focus on that particular activity and once it's signed off it will then move on to the next team. So it's pretty much focused in departments of work.

Whereas with Agile you will have very small sprints. Development is done very quickly, then pass the code to the test team who then test it and then give their feedback immediately back to the development and project team. Then changes are made in development to update/improve and so on and so forth.

So in effect, you've got a very tight knit collaborative environment as opposed to a very much siloed off sequential focused model.

Suited for Defined Requirements vs Evolving Requirements

Suited for defined requirements, for example, a banking application versus evolving requirements such as a startup. What does this actually mean?

In essence, Agile is more geared up for a very dynamic environment where requirements may not be actually defined from the beginning. Whereas if you may have, for example a legacy banking application and you've got requirements that had been locked down from the beginning and you know exactly what you're delivering.

Then a more traditional Waterfall model or maybe even a V-Model will do for this manner may be the best thing to do.

Project development focused versus product focused. 

Waterfall method is pretty much based on delivering and following a very strict project methodology. Agile, on the other hand, is more based on coming up with the very best product.

Therefore you're looking for feedback from the customer to see if you're on the right track to deliver what they want. It's very much focused on the product itself rather than following a very rigid project methodology.

The Waterfall model is very good from a project perspective because you've got very clear milestones and you know exactly where you are and it's easy to estimate and allocate jobs/tasks.

However in Agile it's very much dynamic and can be a bit harder to project manage, but at the end you're hoping to get something which the customer is more happy with at the end.

Limited Communication and transparency versus the open model.

So with the Waterfall model you have very limited communication until you very much get to the end of the project. And when I say limited transparency, it effectively means once the requirements are agreed, you then go into project delivery mode.

Bare in mind, this could take two to six months and then by the end of the project, without having much transparency, you get delivered the end product and it's fingers crossed that the customer's happy with what they see.

For anyone that's spent any length of time in the software development or the testing industry, you know that it's very difficult to actually deliver exactly what someone expects without them seeing it up front, and this is where Agile has become quite popular in recent years.

It's been the answer to some of these challenges. Obviously Agile is not perfect in every shape or form, but it does address this aspect very well.

Simplicity for project management versus Organized chaos. 

Quite controversial, but hear me out first. The Waterfall methodology is quite good from a project management perspective because you've got very clear requirements.

These requirements can be mapped to test use cases, they can give you visibility of how long the project is likely to take, they can give you visibility of who's going to be responsible for producing each deliverable and it's very easy from a project management perspective to follow.

As opposed to Agile, which some people have used the term "organized chaos", which is quite harsh because obviously it does have some great values.

The problem is it's very hard to project manage in some aspects because it's very unclear exactly how it's going to evolve at the end product and exactly how many people you need to resource because you don't know if the project requirements are going to change significantly during the process.  So it's almost like a moving target.

Expensive requirement changes Vs fluid changes. 

What I mean by this is with the Waterfall model, if you decide to make some fundamental requirement changes halfway through the development phase, for example, three months down the line of a six month project, it's quite an expensive change.

Bear in mind that a whole project team could have maybe 20 highly paid professionals who are costing the project tens of thousands, maybe even hundreds of thousands of pounds.

Therefore for you to make a requirements change could mean going back to the beginning, making changes, getting it signed off, get all these people in a room to agree to these things, rolling out development testing again, effectively turns out to a very costly mistake to get the requirements wrong.

However in Agile, if you find that there's something not quite right in the requirements, you can simply make a very quick change rollout a new sprint and then you're back in business.

Related Questions

What is the difference between Scrum and Agile? I think it's more of a misunderstanding of Scrum. Scrum is actually a framework of Agile, so effectively they're one of the same thing, ​

There are other types of frameworks, e.g. Kanban which you may have heard of before, but Scrum is something which is really Agile.

Is Agile more expensive than Waterfall? Essentially this can be quite subjective depending on which project you're working on.

If you're talking about requirements changes, then definitely Waterfall can be very expensive in this process. Agile, again, it could be argued to be more expensive because you don't actually know exactly how much resources you're going to need to throw at it from looking at it at the beginning of the project.

As discussed earlier, this is because you don't have clear visibility of how it's going to transpire. In my opinion, the Waterfall is quite expensive because of the lack of flexibility. ​

You cannot be as dynamic and make quick requirements changes. So in my opinion, I'd say Waterfall is quite expensive, but there are cases to argue it on both sides.

What does Scrum stand for now? Scrum is not really an acronym. This is also probably a misunderstanding or misconception. Many people believe that Scrum is broken down into an acronym, but it isn't actually.

Scrum is just a word used to talk about this framework of Agile and doesn't necessarily mean an acronym. So essentially it doesn't really stand for any particular word or acronym at all.

So what is Scrum SAFe? Stands for "Scalable Agile Framework". Scrum SAFe is an implementation of Scrum. It's A scaling framework to take Agile to an enterprise level. 

Should You Really Be Using Risk Poker in Agile?

What Is Risk Poker In Agile?

Risk Poker is an Agile method for risk based testing. Testing is a way of mitigating risk and in Agile Risk based Poker is a method to handle this.

Planning poker is a fun game based method that oversees user story points matched with related functional elements within an agile project.

Risk poker, on the other hand, is a risk based testing method, similar to planning poker, with the difference being, identifying key risks rather than estimation on user stories.

What is Risk based testing?

Software developers have it hard in their work. Their programs often undergo a lot of scrutiny before getting released into the market. Testing is a method used to identify product defects and software problems which are then returned to the developers. The criteria used in testing is solely based on the owner’s specifications.

Products are often at a risk of failing if they do not satisfy the consumers hence a product risk directly related to its failure. A risk based testing is an agile based approach that oversees tests conducted on a product based on the chances that it may not perform well on the market. This may be as a result of defects in its software coding or simply put as bugs or just shift and preferences in general consumerism.

Pressure from the market to deliver the finished product based on the fixed time frame as per the Iterations could also be another factor for product risk failures.

A risk based testing approach also determines the overall impact of failure and the importance of the consequences that may arise from the risk of failure.

What is Product Risk Management?

Different methodologies exist in identifying the gross mismatch between the market expectations and the finished product. Product Risk Management tops the list as one of the most effective way of managing the set of failures that may arise.

Proper analysis of the influencing factors that may result to the negative output of a product constitute risk management.

It is sometimes referred to as Risk mitigation because management tends to control the severity of the outcomes. Risk management is a lengthy process and often comprises of 6 steps.

  1. Identifying the two dimensions of risks: -by focusing on their strengths and weaknesses.
  2. Classification: -organizing and categorizing risks according to the criteria of your own choosing.
  3. Quantify: - you may need to use probability vectors to properly assess the veracity of the impact each risk poses.
  4. Plan: - this involves coming up with quick solutions to the already identified set of categorized risks.
  5. Implement: - you may need to put your idea solutions into good use at this stage and run them.
  6. Reiteration: - the need to repeat the analysis to make sure old risks remain buried and find out new ones.

What is a Product Risk Matrix?

After identifying the most crucial risks to be tested and quantifying them, rough estimates are drawn and numerical values assigned to their impacts.

A product risk matrix is a mathematical representation of the numerical values expressed divided into 4 different regions each representing a different level and type of risk involved.

Other mathematical based methods of graphical representation such as the use of Histograms and tabular like drawing of often complicated values aren’t as appealing as a risk matrix.

One advantage it holds over the rest is that it is very simple and easy to decipher. The horizontal axis can represent the impact of the risk while the vertical axis can represent the chances of occurrence of the risk involved.

As a result stakeholders may not need to rack their brains trying to figure out exact figures as seen in graphs.

What is the objective of Planning Poker?

Planning poker specifically aims at gathering feedback from all the team members on which way to deal with the project backlogs.

Planning poker also eases the overall estimation process by resizing an already existing story before its implemented. For overall success, you need to have self- control in order to determine when best to quit even if you are winning. Setting a limit becomes a bother especially if you are losing with the hopes of performing better.

In Scrum poker, how hard a story is doesn’t have a definitive method of determination. A dynamic process exists with non-definitive methods like vagueness in level of risks and uncertainty involved.

Contrast exists when defined values like countable figures specify planning poker. The most common poker method used is the Fibonacci sequence of numbers which each team member picks to represent a story value. Other examples include

What is Protection Poker?

The internet world is prone to security risks and unauthorized entry into organizations encrypted files. A method to counteract these illegal activities by malicious hackers is an agile based security risk game called Protection Poker.

The security based game is interactive, collaborative and comprises of a collection of ideas sharing past experiences that offer a better exposure for software security.

Brainstorming for solutions to patch up bugs and defective software coding as an overall risk is also included in the game experience. Team members are required to think like a software attacker and close up any breaches within the product’s network.

Final Words on Risk Poker

Quality service delivery is key in the final product, hence the reason we have the Agile Manifesto, for example. A substantial amount of funding should be set aside to assess and analyze the level of risks involved. It may not be possible to completely analyze every risk and test every aspect of a system as per the orders of the stakeholders.

Methods like Risk Poker, a light weight approach crucially takes care of this problem and gives you a more in depth analysis of the impacts of failures, should they arise. All in all, not infringing on your limited budget.

Before you go, lets look at some key Agile Sprint activities...

7 In Sprint Testing Activities You Need to Do to Get Paid

in sprint testing activities

Introduction - The 7 In Sprint Activities

The mobile and web applications development sector has never seen a better platform than the Agile based methods of software development. If you are new to this technological advancement, here is an in-depth analysis of one the methods and terminologies used: Sprint testing.

A sprint goes hand in hand with Scrum as an agile approach to development which is extremely difficult to master. It’s a form of Iteration that involves quite a number of activities and if you aren’t careful to its approach, the overall structure may collapse. Here are what agile testers need to do in a sprint before the project can be termed as 'done’.

1. Test Estimation

Agile may have fully changed software development but testing software proves quite a challenge. The first step usually entails making a rough estimation for each user story created. 

This involves a detailed time account for all the steps involved that provide an overall scope for the entire project. This may include:

  • Identifying references to different user stories
  • Analysis of the requirements of the story
  • Sizing the whole story by giving proportional values depending on the amount of work to be done

A sprint is usually a development cycle. The scope of the estimate should cater for all challenges that may be encountered within the process. Many agile developers often complain about the possibility completing all the testing in one sprint especially if the sprint also includes backlogs from previous designs.

2. Design Test Cases

If you are a product owner, you would definitely employ the best team to meet your conditions and specifications. Test cases simply outline whether the system being tested meets the variables and requirements of the stakeholders.

A common misconception during the design of a test case is that a user story is a requirement. A test case is created manually with regards to the accepted criteria. Each and every product backlog goes into the sprint backlog where it is analyzed. This includes items like epics, features and user stories.

3. Work Closely with your team

Agile methodology is not to be confused with the traditional waterfall approach that run test checks at the final stages of the software development. Instead testing is done through each development stage.

This may increase product backlog as coding may be prone to bugs which may require technical support and knowledge acquisition.

High level descriptive functionalities are often specified under the user stories. Its complexity may prove quite challenging and its therefore important to grace the team with your presence to offer technical support and smoothen the whole process.

You may need to outline the user stories as the simplest increments that need to be built upon. Once the team understands this, you may need to reiterate the features which are usually too general to build. Using this knowledge, high level features need to be refined greatly to be done under a single sprint if possible.

4. Defect Management

Sprint testing often aims at ensuring the final program is devoid of any glitches and runs as smoothly as intended. This may be achieved through defect management which is the ultimate software debugging process.

Simply put, it’s a process that pin points to the exact bug and its location in a program and developing ways to fix it

Defect management involves four easy steps

  • Detecting the source of the error
  • Defect report writing
  • Debugging
  • Preparation of a defect list that includes all defects identified and fixed

5. Add Value in Stand-Up Meetings

Don’t always be the member of the team who is always absent in important group gatherings. It is important to always show up punctual to daily stand-up meetings to review the overall progress report.

In Agile, silence Is never golden. Share your thought and ideas on how to tackle the most troublesome processes encountered. Your focus should be purely on ways to complete backlogs and new challenging projects.

For instance, do not focus on what you have already achieved or what you are intending to achieve as this will come off as a bit of a show off. Instead, psych up the team and provide solutions to general problems they may encounter.

6. Have a clear exit criteria

Even before you start testing, it is important to have a clear, and agreed exit criteria. The "agreed" part is probably the most important. This means you know when you can exit the process, without going round in circles, continuously raising defects, and re-testing.

An example may be, maximum of five sev 3 defects open, after test completion.

7. Work Closely with Stakeholders

One of Agile’s tenets is its dynamic ability to welcome change. You may need to learn a few details of the task at hand through working closely with the responsible authoritative figureheads.

These may include additional funding in cases of limited resources. Coming from a traditional based developer methodology, you may need to learn about the agile based software. There isn’t anyone more knowledgeable regarding your line of work as the stakeholders.

Conclusion - In Sprint Activities

As an agile tester, negative afterthoughts like the sprint being too short should be discouraged. Planning and collaborative effort is usually key to these kinds of problems.

Trying to mitigate problems during a sprint test is usually a bad idea as the problem will keep on recurring. To ensure you reap the benefits of your work, you may need to simply create test automations that will check on regression and performance during each sprint.

What is the iterative-incremental development model?

Software testing is one of the vital phases of software development since some mistakes might be too costly. Projects developing totally new software are commonly challenged with doubts concerning software requirements as well as realization tools.

As a professional software developer, you spend most of your time working with clients that have very limited knowledge about programming, and most of the time, they cannot fully explain what they actually want you to develop.

This little misunderstanding can cause big troubles. In such cases, it is of utmost importance to constantly communicate and gather information from the customer.

If that happens to you, we recommend you to apply the iterative and incremental software development approach (IID) as it allows swift response to alterations, unlike historical methodologies, such as the waterfall model

Therefore, I decided to provide you with some valuable information about the  Iterative-Incremental Development model throughout this article.

So, what is Iterative-Incremental Development approach? 

Defining Interactive-Incremental Development According to Mockus and Herbsleb (2011) Iterative-Incremental Development is one of the methods of Agile software development, extreme programming and rational integrated procedure.

Iterative-incremental model is an approach of software development, which is formed around a steady enhancement in component additions along with a cyclic releases and pattern upgrading.

It starts with planning and carried out through iterative progression cycles that consist of constant customer response and the incremental computation of extra features, finished with the utilization of completed software before moving onto the next cycle (Larman, 2003).

In short, Incremental is a process of adding new components in small pieces whereas the iterative is a process of acting upon the project repetitively, for example, adding new components in cyclic way.

How Does Iterative-Incremental Software Development Work?​

You first have to identify the software requirements, analyze them, and based on your analysis, you design the software and start coding to develop the designed model. Once you are finished, you conduct with the customer, gather feedback and move onto the next software product increment phase or cycle, where you repeat the steps you took at first cycle, but this time you take those steps based on the freshly gathered feedback and information.

The cycle continuous until the end product is perfectly delivered (Larman, 2003).

The perfect examples of iterative-incremental software development approach can be:

  • Agile Software Development Model ​
  • RAD (Rapid Application Development) Model
  • Prototyping -Rational Unified Process 

The Pros and Cons of Applying Iterative-Incremental Development Let’s be real. There is no perfect approach to software development and as all the other application development models, the iterative-incremental software development model also has its pros and cons.

Let’s take a look at the advantages that IID offers:

  1. It allows the programmer to develop the prioritized requirements before actually starting the project development.
  2. It offers a faster delivery of initial product, and by doing so, it enables the client to acquire the high priority functionalities early.
  3. The preliminary delivery cost is rather low.
  4. After the completion of each increment (cycle), you can provide the customer with functioning software that he can use until the end product is delivered.
  5. You receive a detailed feedback from the customer after the each cycle, so no shockers at the end of the project.
  6. Changes in requirements can be accommodated without difficulties, that saves your time and nerves. 

Even though the advantages sound good, a professional programmer should be aware of the following disadvantages of IID:

  1. The IID approach requires a careful planning since if you got anything wrong in this phase, you might be forced to start everything all over again.
  2. Designing process should also be as efficient as the planning. If you do not ensure addition of the necessary functionality along with provision for modifications during this process, you might find it really hard to continue in later stages of development.
  3. Carefully characterized component interfaces are essential since some of the component interfaces are developed earlier than the others. 4.The overall cost of the project might be expensive since you respond to feedbacks you might have to spend more time and resources. 

When to Apply Iterative-Incremental Approach to Software Development? 

The Iterative-Incremental Approach is a great software development method, however, a good programmer should know when to actually apply this approach in practice.

If you are completely new to this approach, here are the suggested occasions when you can actually apply this method in your project:

  • When you are provided with all the high-priority functional requirements at the beginning of the project development phase, and expected to progress over time.
  • When the initially provided requirements are prioritized, and you know which ones are of high importance and which ones might be changed in later stages of the project -When you are required to provide the customer with basic functioning software even before you completely develop the application
  • When you are given a quite lengthy software development timetable that can enable you to reflect on each stage of the development and gather all the information throughout the development phase
  • When the project consists of new technology, for example, not everything that’s required in the project are clearly stated or previously done. 

Thus, the product can only be perfectly delivered until going on different cycles of development. Throughout this article, we tried to characterize one of the popular software development methods that widely used in practice nowadays.

Moreover, we decided to include this video tutorial that can help you learn more about Iterative-Incremental Software Development Method:

In this video, the author explains IID approach cycles in great detail.

Conclusion In short​

a constant communication is a fundamental necessity for successful realization of Iterative-Incremental Development method. Particularly uncertainties in the form of shifting requirements may require more communication between the software engineer and client for better understanding and problem solving (Larman, 2003).

Within indecisive working conditions, short iteration phases are required to disclose issues as early as possible. If the iteration cycle is longer, the importance of the communication can be vital for integration part. Without a proper communication and understanding between the parties, it is impossible to successfully implement IID. 

Skip to toolbar