Office Dev in Agile & DevOps world

In today’s time, each Office Dev participates in productivity and collaboration based projects. The wave of DevOps also contributes to shape up the Office Dev world.

First, it is important to understand what is DevOps. Then how it differs from Agile.

DevOps is a culture shift and collaboration between development, operations and testing. There is no single DevOps tool, rather a set or consisting of multiple tools. Generally, DevOps tools fit into one or more of these categories, which is reflective of software development and delivery process.

. Code – code development and review, version control tools, code merging.

. Build – continuous integration tools, build status.

. Test – Test and results determine performance.

. Package – application pre-deployment staging.

. Release – change management, release approvals, release automation

. Monitor – Application performance monitoring and end user experience.

 

DevOps was essentially born from the increasingly popularity of agile development. Agile and DevOps are similar but differ in a few aspects.

Agile represents a change in thinking whereas DevOps implements organizational changes. One goal of DevOps is to establish an environment where releasing more reliable applications faster and more frequently can occur.

Continuous delivery and DevOps are similar in their meanings and are often conflated. DevOps has a broader scope, and centres around the collaboration of various teams involved in software delivery as well as automating the process. CD is an approach to automate the delivery aspect. And focuses on bringing together different processes and executing them more quickly.

 

Office Projects –
Based on my experience and learning, I would like to highlight as to how we can use the Agile/DevOps processes in Office Dev world.

In today’s time, in a productivity/collaboration based projects, there are multiple Office 365 artifacts which need to be built. The artifacts can be divided as Infrastructure and Development.

 

In my opinion, the Infrastructure part is related to projects which include below items, but not limited to –

  1. Initial Tenant setup
  2. Activating required services
  3. SSO
  4. AAD management

 

Few Office development project types are as below, but not limited to –

  1. Intranet/Extranet
  2. Digital Workplace
  3. Forms
  4. Automation of business process
  5. LOB Integration

 

With the evolving Office Dev space, it is challenging to map the project lifecycle with Agile/DevOps processes. To deliver an office dev project with DevOps/Agile way, it is important to follow the best practices and recommendations.

Based on different project types and aligning them to continuous dev, build & release cycle, my personal aim is always to build a cycle as below –

Continuous dev, build & release cycle by Ashish Trivedi

Continuous dev, build & release cycle by Ashish Trivedi

 

Here my attempts are always to keep the requirements ready before the dev start their sprint/iteration. Then keep the backlog grooming always on for next iteration. If you can keep the flow requirement – dev – build – delivery of requirements, it will ease the rest of the project delivery.

There are multiple ways to achieve the end goal in productivity projects. But to follow the DevOps/Agile process with continuous development and delivery cycle, there are certain process paths, which do not support the automated process but can allow a manual process to be followed.

Based on my learning and experience with project implementations and delivery, I will recommend few learnings which can help always to deliver a successful project using Agile/DevOps in Office 365.

  1. If opportunity available, engage business stakeholders. In most of the Small and Medium size projects, it is challenging on the ground.
  2. Conduct a business user survey, specifically identify what business user like and what don’t.
  3. Productivity projects are not just SharePoint. Understand what are user actions and how they perform/would like to perform.
  4. Always find out whether one or more Office 365 services are required for the solution based on user story because one size does not fit all.
  5. Always keep the business requirements with expected user interaction and output ahead of the development cycle. Best if you have a UX/UI to define/design it for you.
  6. It is not just a process change; it is a cultural change the way people work.
  7. The challenge for adopting Agile/DevOps process in Office Dev world is the new development model changes. First, identify the types of applications required and how they fit in the Agile/DevOps process. Then secondly, map the process requirement with development work.
  8. Building the ‘requirement –> development –> test –> fix –> release’ cycle should be the goal.
  9. Maximize the automation of the process. If not feasible, should be ok to define a document which can also be part of the process to achieve the result. Producing these types of documents need to be part of the requirement.
  10. Focus should be on maximizing the consistency in delivering the releasable product in each delivery cycle.

There are multiple ways to build Office development projects. Few techniques are Azure Web Job, Azure Functions, PowerApps, Flow, PowerShell, Remote provisioning, Office Add-ins etc.

Microsoft is adding more and more features to these capabilities to build Office 365 solutions. Few like Azure Web jobs are already feature rich to be used with continuous development and delivery cycle easily, while others will take the time to come in line.

Please share your comments below – your thoughts, suggestions, improvements?

[In this article, I am writing information based on my experience. The views expressed here are my own and does not represent views of my employer or third party. If you are not familiar with Scrum Framework, Please read the information on https://www.scrum.org/.]

 

About writer –
Ashish is a Solution Architect focusing on the productivity stack in Australia. He has “lived” in the SharePoint world from the days of SharePoint 2003. He specializes in delivering enterprise solutions using technology. Ashish is a passionate developer with a zeal for creating innovative solutions using Office 365 & SharePoint. Ashish is an active community contributor through various channels. He made early contributions to open source projects such as PnP. He is an evangelist of Office 365/Office development. He has also presented at International conferences, for example, Collab365.

Follow Ashish on Twitter: @_AshishTrivedi 

References:
Scrum.org | The home of Scrum > Home
Scrum.org. (2017). Scrum.org | The home of Scrum > Home . [online] Available at: https://www.scrum.org/ [Accessed 18 Jan. 2017].

En.wikipedia.org. (2017). DevOps. [online] Available at: https://en.wikipedia.org/wiki/DevOps [Accessed 18 Jan. 2017].

Share this on...

Rate this Post:

Share: