Agile is a current software process that is believed to be a solution to build a software. On this article, we discuss how to build a software that implemented Agile and DevOps. For the real example, we will use azure DevOps and eXtreme Programming (XP). Let us get started:
#1 Creating a DevOps project
After the project is agreed and the contract is raised, the team can start to create a DevOps project. They should do:
Choose the process template (in this case we choose Agile). You can learn step by step here Create a project - Azure DevOps | Microsoft Docs
Invite your development teams, product owner, and others stakeholder.
Set the iteration path. You can learn step by step here Define iteration paths and configure team iterations - Azure Boards | Microsoft Docs
Preparing the development environment. You can deploy the development infrastructure in Azure and connecting to your DevOps. You can connect by using service hooks.
You use Azure Service Manager if you connect with Azure Subscription that SAME
with your Active Directory.
You use Azure Classic if you connect with Azure Subscription that different with your Azure Active Directory.
You can use Terraform If you want to publish your solution to Amazon AWS.
Creating initial project with Visual Studio and push it into GitHub or Azure DevOps.
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
#2 Composing the user stories.
This step is a casual XP based requirement engineering technique.
Creating features,
Defining the actor or persona
Creating user stories, https://youtu.be/2Qj3x1RnqHA
Creating iteration plan with user stories deliverables
Discussing the features, user story, and iteration plan with the customer
#3 Designing the Solution.
You start this step by creating a mockup for your design. You can start with.
Creating information architecture (IA). You can create the IA with Mindmap software such as MindManager or XMind.
Create low fidelity prototype. You cab create with your pencil & paper or user wireframe tool like PowerPoint or Balsamiq.
Discussing the low fidelity and IA with the customer
Creating high fidelity with Visual Studio or Visual Studio Codes.
Uploading and presenting the High-fidelity prototype to customer
#4 Developing the Solution.
This step can be the longest step in the project. This is because the solution is developed through one or more of iteration. Of course, this step is executed iteratively.
Since we are using XP, the development team (tester) should create a test suite, test plan, and test case. You can see the video here https://youtu.be/0GKPguP4qLU
The developer should create unit test in Visual Studio.
The developer should create the codes to fulfill the user story.
The developer will commit and check-in daily to the repositories.
The CI/CD process will deliver the nightly build.
The iteration review will be happened in two stages.
Internal play testing – with the development team.
Customer play testing – with the costumer
Revising and getting feedback from the customer or from the defect.
Iteration retrospective with the development team and others. It discusses how to improve the next iteration of the development such as:
How we communicate with the customer
What we need to change in the next iteration
How the development progress so far
Deploying the solution for the iteration.
Continuing to the other iteration
#5 Implementing the solution.
After the entire iteration is finished, it is a good time to implement and to finish the solution.
Confirming the customer that the solution is appropriate to be deployed.
After the confirmation, the development team can create documentation such as:
User manual
Developer manual (optional)
Doing several workshops to socialize the system.
Gathering the feedback for continuous improvement.
Ready for the next improvement and for the next project.
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
So our business analyst ready to kick off a project. the real question is what should we do in release planning session. A session where we start the project for the first time. On this article, we will discuss the main activity in release planning. the activities follow the eXtreme Programming method. Let's get started
Writing Story
The business analyst should write user story as comprehensive as possible. the business analyst will create
set features. i.e. Registration Feature
user story i.e. as a member i can register through social media account so that i dont need to fill basic information
acceptance criteria i.e. member should have at least first name, last name, organization, and email
Estimate the Story
The business analyst should elaborate with the customer to do several things
Validating the user story with the customer
Detailing the user story and acceptance criteria with the customer
Estimating the story point with the development team
Creating the release plan
The business analyst will do several activity to make the plan is solid
Discussing the story depedency with the developer
Discussing the story priority with the customer
Creating iteration plan that contain user story
Stabilzing the release plan
The business analyst should understand that the story will be changed. Therefore, the business analyst should stabilising the plan by doing several activities
iteration review with the customer / weekly progress with the customer
documenting feedback based on the review
reviewieng the changes into updated story
discussing the detail of the story with the task with software development team
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
My teammate feel not really satisfied with the ALM features on VIsual Studio 2013. It is great, but lack of simplicity for small to medium project. After using Visual Studio for almost than 15 years, I agree that ALM is a good feature, but not as for startup who still fighting with the client changes and codes horror. Of you already subscribe to visualstudio.com and feel that you still focusing on the codes or API usage. focusing on the collaboration between client and you in terms of changes control. focusing on planning schedule rather than thinking the burndown chart. If you feel like the situation above is same with your team. This article is for you, this article will show you how to minimize the usage some of redundant TFS features on small and mediim project. This practices is already done on more tha five projects that run on two till six months. We call this practice as ALM minimalist. The ALM minimalist purpose is to Empower the client and your team through multimodal communication Empower the team to focus on creating quality codes by adopting eXtreme Programming practices Empower the coach / project manager to minimize the changes and to get better revenue on a project. With the three purposes of ALM Minimalist. the practice needs several subscriptions for your team which are Office 365 subscriptions Visual Studio Online Subscriptions After you subscribe both services, we will discuss how to utilize the services for ALM activities, see you in the next post. cheers, @ridife
In a hurry?
Building in a three months or less, well you can depend on Agile method like eXtreme Programming (XP) or Scrum. In this article I will show you several things to do if you wish to use XP as your Agile method.
XP flashback
First of all, XP need a discipline. Forget it, if you have a team that have no spirit to work in time and always postponed their tasks. You can read the entire tasks in Meier's Blog. The entire tasks is not a must, you can use it when you are really need it. If you are a new kids on the block of XP try to buy the books below
my XP
If you need more simple way to adopt the XP. I constructs a tiny XP method called my-XP. my-XP is a mini implementation of the XP. In my-XP, we just need several artifacts which are
User story document. http://www.agilemodeling.com/artifacts/userStory.htm
Spike Solution document http://c2.com/xp/SpikeSolution.html
Deployment diagram http://msdn.microsoft.com/en-us/library/ms181902(v=VS.80).aspx
the rest of it is just well tested code. test driven model focused in creating test unit and then evaluates your code. If you are using Visual Studio 2010 ALM or others IDE like Eclipse you can get free unit test tool. several references below
How to- Create and Run a Unit Test - MSDN – Explore Desktop
How to- Create a Data-Driven Unit Test - MSDN – Explore Desktop
How to- Generate a Unit Test - MSDN – Explore Desktop, Web
How to- Create an ASP.NET Unit Test - MSDN – Explore Desktop
How to- Create a Unit Test without Source Code
Ciao
@ridife
Adopting scrum is just like adopting any agile method such as extreme Programming or ICONIX. However, Scrum lays out the playing field and rules for the game. the software construction is a game for Scrum. Scrum adoption has two aspects. First, Scrum is rolled out. a mentor teach a team how to play the game of product development using Scrum, the second aspect is do the SCRUM itself including your team and client. A good guide about scrum can be downloaded here
15 pages of Scrum Guide
Schwaber (2007) in his book called Enterprise and Scrum already have 1,2,3 rules to adopt Scrum.
Creating backlog, a simple user story model
Iteration activity as a heart of the Scrum
And working software that increment the functionality
The rules is done by three roles the Product Owner, the team, and the Scrum Master. All management responsibilities in a project are divided between these three roles. The Scrum Master is responsible for the Scrum process, for teaching it to everyone involved in the project, for implementing it so that it fits within an organization's culture and still delivers the expected benefits, and for ensuring that everyone follows its rules and practices. The Scrum process is simple and mostly focused how team collaborate effectively using daily plan and appropriate tools. You can learn and develop a software with fun using this method. For further knowledge I recommend you to buy book about Scrum
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";