Build Completion Trigger – Build Pipeline do VSTS

Neste post vamos discutir sobre o Build Completion Trigger no VSTS e a contribuição deste recurso quando trabalhamos com produtos de múltiplos componentes (com dependência entre eles), gerenciados manualmente pelos times.

Por exemplo, quando um componente upstream é modificado (bibliotecas, etc.), as dependências downstream precisam ser revalidadas executando o build novamente. Nestes casos criaremos a trigger para executar o Build após a execução com sucesso de outro Build.

É importante saber que em alguns casos o multi-phase build pode ter melhor aplicabilidade. O Build Completion Trigger é muito usado quando seus requisitos possuem diferentes configurações, propriedades ou times para gerenciar um processo dependente.

Trabalhando no VSTS
O primeiro passo é editar o seu Build Pipeline. Selecione a opção Edit Pipeline da Build que será configurada.

build-edit-pipeline

Em seguida, acesse a guia Triggers e na opção de Build Completion, escolha o outro Build que será executado após o Build atual.

build-definition

Por fim, acompanhe o timeline e o log da execução dos Builds em Build Results.

build-log.png

Mesmo que tenha especificado a opção de download dos artefatos (triggering build), você ainda precisa definir um valor para a Build, por ser a origem dos artefatos sempre que sua triggered build for executada por qualquer motivo que não seja BuildCompletion.

 

Referências

Configuração de repositórios TFVC e Git no VSTS – Changesets e Check In

Após a criação dos projetos e a gestão de acessos e permissões no VSTS, neste post vamos trabalhar na configuração do repositório de código-fonte e sincronização com o Visual Studio. Assim, já conseguimos trabalhar desde a criação do Work Item na ferramenta até o controle de versão das aplicações.

O primeiro passo é criar um Novo Repositório (new repository) do tipo TFVC ou Git no VSTS. Você pode criar mais de um repositório utilizando as duas opções, caso seu time de desenvolvimento trabalhe com mais de um tipo de versionador.

agile-vsts-repositories

Já no Visual Studio, conecte no repositório criado no VSTS, referenciando o endereço do servidor ao criar uma nova conexão (manage connections).

agile-vs-repository

A partir disso, a solução já estará atualizando o repositório no VSTS (TFVC ou Git) a cada Check In. É importante ter um bom processo de gerenciamento de código-fonte em seu time.

agile-vs-check-inagile-vsts-code

Veja que os arquivos da solução já estão armazenados em Code > Files no VSTS. Também há o histórico (Code > History) e Changesets para consulta. As guias de Shelvesets e Pull Request Dashboard também estão disponíveis.

agile-vsts-code-files

Escolha a opção Manage repositories para configurar a gestão de acessos (usuários e grupos), conforme a sua necessidade.

agile-vsts-code-security.png

Por fim, outro recurso interessante é trabalhar referenciando Work Items direto no Visual Studio. Veja abaixo que podemos adicionar Work Items na solução e manipular seus status.

agile-vsts-code-wi

Também podemos referenciar o ID do Work Item em Related Work Item ao efetuar o Check In do projeto.

agile-vsts-check-in

E assim, rastrearmos todas as modificações no código (Changesets), e Work Items associados aquela mudança.

agile-vsts-changeset

Gerenciando times, projetos, acessos e permissões no VSTS

Após demonstrarmos os primeiros passos no VSTS, gerenciando projetos ágeis com a criação de times, backlog e cadência, configuramos então a permissão dos times que trabalharão nos projetos. Isso nos ajudará em questões de segurança e na análise do desempenho dos times.

Esta configuração está muito relacionada a forma que sua empresa trabalha. Por exemplo, podemos utilizar o conceito do VSTS de Projeto > Time do Projeto para estruturar da seguinte forma:

  • Cenário 1 – Ágil (ou larga escala)
    • Projeto: nome do projeto
    • Time do projeto: configure as workstreams ou squads (Produto A – times cross responsáveis pelo produto; Produto B – etc.)
  • Cenário 2 – Sustentação (manutenção de sistemas)
    • Projeto: diretoria ou gerência da sua organização
    • Time do projeto: nome dos produtos que os times serão responsáveis pela manutenção do sistema

agile-vsts-home
Acesse a área de segurança (Settings > Security) e crie os grupos que terão acesso aos projetos ou time do projeto.  Veja que a cada novo Time do Projeto (Team Project) criado, o VSTS automaticamente gera um time com permissões padrões nas quais você pode trabalhar e adicionar/remover membros.

Entre as principais configurações do PROJETO estão: alteração do processo do time de projeto | manipulação de testes | movimentação de work item e deletar team project.

agile-vsts-security.png

E há configurações de segurança adicionais do primeiro nível no VSTS (acima do nível projeto), envolvendo a criação de Workspace, recursos de Build, etc.

agile-vsts-security-groups

Importante lembrar que as demais configurações (acesso, escrita e leitura) estão associadas ao tipo de usuário (Settings > Users) vinculado no ingresso da conta no VSTS – Basic | Stakeholder | Visual Studio Professional Subscription.

agile-vsts-users.png

Iniciando seus projetos ágeis no VSTS – Epic | Features | User Story

Este Post é especialmente para quem está começando a trabalhar com o VSTS (Visual Studio Team Services) da Microsoft, e já identificou os benefícios de CI/CD, ALM, gestão ágil e dashboards obtidos na solução.

Trabalharemos então com o Process Template Agile para demonstrar como os times de desenvolvimento podem gerenciar os projetos ágeis durante todo o ciclo da vida da aplicação.

Acesse o VSTS, guia Projects (Projetos) e clique em New Team Project… Abrirá uma janela solicitando as informações iniciais:

  • Project Name: nome do projeto
  • Description: descrição sobre o projeto
  • Version Control: escolha o versionador utilizado em seu time (Git | TFVC)
  • Work Item Process: trabalharemos no template Agile

agile-vsts-new-project

Com a criação do projeto, configure em Team Settings > Work > General os níveis de navegação do Backlog. Deixe marcado as três opções (Epics | Features | Stories) e em seguida configure os working days de acordo com os dias que seu time trabalhará.

agile-vsts-work

Agora em Team Settings > Work > Iterations, defina a cadência do projeto. Ou seja, configure as Sprints e data de início e fim de cada uma.

agile-vsts-work-iterations.png

Crie novos times (Settings > Overview > New team) para segregar acessos e controle das informações por workstream. Explicarei mais detalhes sobre segurança em outro post.

agile-vsts-teams

O próximo passo é a criação das EPICS – grandes iniciativas para entrega de novos produtos, soluções ou serviços. Compreende uma larga quantidade de features.

agile-vsts-epicsE as FEATURES que provém valor para os usuários. Realizado por algumas estórias. São capabilities que o Product Owner está interessado.

agile-vsts-featuresAs STORIES veem na sequência e representam a necessidade do usuário. Possuem três aspectos críticos 3 C’s (Cartão/Conversas/Confirmação). Escreva boas estórias, conforme práticas recomendadas abaixo.

vsts-estoria-tasks.png

  • Lembre-se de incluir a narrativa As a <role>, I want to <perform some actions> so that <I can achieve some goal> ao escrever as estórias
  • Incluir critérios de aceitação
  • Lembrar do INVEST para manter uma boa qualidade nas estórias
  • Técnicas como Planning Poker para ajudar nas estimativas

* também é muito importante configurar o Related Work nas configurações da Epic, Feature ou Stories. A relação é de Parent ou Child entre elas.

E por fim, ajuste o Capacity com a quantidade de horas que cada recurso poderá trabalhar nas Sprints. Estas horas podem ser de desenvolvimento, design, deploymentrequirements, documentação ou testes. Isso ajudará na análise de acompanhamento das Sprints e também na distribuição das tarefas para o time.

vsts-capacity-team

É isso… a ideia deste post é trazer um overview dos primeiros passos para quem está começando a trabalhar com o VSTS em gerenciamento de projetos ágil. Nos próximos posts explicarei mais detalhes sobre as questões de segurança (segregação de acesso e perfis) e configurações de repositório de código-fonte.

 

Disciplined Agile Delivery (DAD) – Book Review

Post: Book Review
Title: Introduction to Disciplined Agile Delivery (second edition)
Subtitle: A Small Agile Team’s Journey from Scrum to Disciplined DevOps
Authors: Mark Lines & Scott W. Ambler

 

1. Introduction

DA (Disciplined Agile) is a hybrid of existing methods that provides the flebility to use various approaches as well as plugging some gaps not addressed by mainstream agile methods. Some quick facts about DAD:

  • DAD is the delivery portion of the Disciplined Agile (DA) framework.
  • Although DAD was originally developed at IBM, it’s now the intellectual property of the Disciplined Agile Consortium, and is freely avaliable for use.
  • The certification program is described at https://disciplinedagileconsortium.org/.
  • DA is not a replacement for existing agile and lean methods. It complements them and in many cases extends them to be enterprise ready.

 

2. Reality over rethoric

agile-reality-over-rhetoric

 

3. Disciplined Agile Delivery in a nutshell

DAD provides a pragmatic approach for addressing the unique situations in which team find themselves. This includes how to sucessfully initiate agile teams in a streamlined manner, how architecture fits into the agile lifecycle, how to address documentation effectively, quality issues in an enterprise environment, how agile analysis techniques are applied to address the myriad of stakeholders concerns, and many more.

Key Points:

  • DAD is the delivery portion of DA framework, not just another methodology
  • DAD provides 5 lifecycles to choose from; doesn’t prescribe a single way of working
  • DAD focuses on achieving common goals in an agile manner
  • DAD addresses key enterprise concerns not described by mainstream methods such as Scrum
  • DAD is complementary to SAFe far less prescriptive
  • DAD shows how agile works from beginning-to-end
  • DAD provides a flexible foundation from which to scale mainstream methods

DAD is a people-first, learning-oriented, hybrid agile approach to IT solution delivery. It supports several risk-value delivery lifecycles, is goal-driven, enterprise aware, scalable, and reflects the realities of enterprise solution delivery.

People-first: Roles in Disciplined Agile Delivery.roles-DAD

Hybrid framework: combines strategies from a range of sources.hybrid-DAD

The focus of DAD is on delivery, although remember that other aspects of IT and your organization still exist such as Data Management, Architecture, Operations, Portfolio Management, and more. A full system/product lifecycle goes from the initial concept for the product, through delivery, to operations and support and often includes many iterations of the delivery lifecycle.

The figure below depicts a high-level view of the DAD lifecycle. The inner three phases – Inception, Construction and Transition – from the delivery portion of the lifecycle. During delivery you incrementally build and increasingly more consumable solution.

dad-delivery-lifecycle

We recommend to access http://www.disciplinedagiledelivery.com/introduction-to-dad/  and visualize all the other lifecycles:

  • The Agile/basic lifecycle (Scrum based)
  • The Lean/advanced lifecycle (based on Kanban)
  • The Continuous Delivery: Agile lifecycle
  • The Continuous Delivery: Lean lifecycle
  • The Exploratory/Lean Startup lifecycle

DAD are Goal-Driven: there are several advantages to taking a goal-driven – it provides a concise, shared pathway to leaner, less wasteful process decision; it supports process tailoring by making process decisions explicit; it enables effective scaling by guiding you through tailoring your strategy the realities of your scaling factors, etc.

The goal diagram for Explore Initial Scope (figure below) depicts a goal that you should address at the beginninf of the lifecycle during the Inception phase.

DAD-Explore-Initial-Scope-mindmap

The process goals of DAD summarizes the goals grouped by the three phases of Inception, Construction and Transition as well as the goals are ongoing throughout the lifecycle.

dad-mindmap-the-process-goals

The DAD distinguishes two types of “agility at scale”: Tactical agility at scale and  Strategic agility at scale. The figure below summarizes the potential tactical scaling factors that you need to consider when tailoring your agile strategy.

dad-agility-at-scale

 

4. Introduction to the case study

From now on, the book describes a fictitious case study based on a retail bank called “BigBank”. The company would like to develop a solution to enable prospective customers to apply for a mortgage on-line. One of the first decisions that any team needs to make is which of DAD’s five lifecycles to use for this team.

This chapter also introduce the team (PO, Business Analyst – BA, Team Lead, Coach, Architecture Owner – AO, Developers, Tester and DBA), Stakeholders (IT VP, Sponsor, CSM, Enterprise Architect, Operations Manager, Support Supervisor, MKT VP and PMO Lead) and describes the market opportunity that they hope to address.

 

5. Inception

The Inception phase is an explicit team initiation effort. It should be as lightweight and short as possible. You plan at a high level to think through the major issues that you will face, trusting that your team will be able to handle the details as they envolve.

dad-inception-goals

Team Kick-off Meeting: who is the sponsor to explain the need for the new system (MAP – Mortgage Application Portal) and how it’s a critical business initiative to attract new mortgage customer to the bank. They feel that is prudent to start with a longer Inception because the team is new to DAD and training will be part of this phase.

Week one of Inception
The team attends a 3-day DAD experience workshop to ensure everyone is on the same page and is familiar with Agile fundamentals and DAD.

  • The PO works on identifying the initial scope (can use a Story Map)
  • The AO leads the team in identifying the initial technical strategy

application-story

Week two of Inception

  • The PO meets with the business stakeholders to prioritize the work
  • The Team Lead, PO and AO meet to identify an initial list of risks
  • The AO and PO meet to review the prioritized work item list
  • The PO and the Dev Team conduct sizing of the work item list
  • The team creates a release plan
  • Estimating the number of iterations required

dad-initial-release-plan

The release plan can include a high-level Gantt Chart to show the release schedule and associated milestones.

Week Three of Inception

  • The Team Lead works with the Facilities group to set up a common work area for the team
  • Also leads the team to update the risk list
  • Summarizing the Inception work into a vision
    • Business goals of the initiative
    • Success criteria
    • Key Stakeholders and Roles
    • Vision (initial scope of the effort; initial technical strategy; initial release plan; work environment details; initial risks)
  • The Stakeholder Vision milestone review

 

6. Construction Iteration C1

After the Inception (agreement around the approach that they are going to take), the team is ready to begin Construction.

Day 1: the team already invested time in Inception to estimate the release plan. So, now it’s created a task board to control the tasks, allocating the resources and updating the status of each one.

Day 2: is described the DoD (Definition of Done) to be discussed with the team and point out any changes do solution.

Day 3: one technical issue appears and it’s necessary to add six hours in the original estimation. No one can pair with Danny to get over this technical hurdle, so he needs to stay late.

Days 4-7: the team continues work and makes up for most of the time lost.

Day 8: it’s better to get as many work items “done” according to the DoD that is posted rather than 80% done on each story but nothing completely done.

Day 9: two resource pair together to implement a story. The team will be unable to fully prove that their architecture works until at least Iteration C2. The Team Lead works with PO to reschedule the milestone at the end of Iteration C2.

Day 10: the team spends the morning stabilizing the work items / stories that they have completed, doing exploratory testing, and fixing last minute defects.

Concluding the iteraton, the iteration review and the retrospective are executed by the team.

 

7. Construction Iteration C2

Iteration Planning Session and ten business days executing the backlog. A bit of thinking now will save a lot of time next iteration. In sequence, it happens the demo, the proven architecture milestone review and the retrospective. And the goal diagram for Produce a Potentially Consumable Solution which is presented.

The iteration goes a bit smoother for the team. The team begins to make improvements based on their retrospective from the previous iteration. More importantly they reach their second risk-based milestone, Proven Architecture, by delivering working end-to-end software that implements technically complex functionality. This greatly reduces the risk faced by the team.

 

8. Construction Iteration C3

The team is excited because the second iteration was successful and the daily coordination meetings are running much better. A pair programming is more frequent and backlog refinement (they identify new stories and drop a few of the low priority requirements). These changes result in what looks to be a 20% increase in scope.

And the PO decide to share with the team that decides to discuss the impact immediately after the lunch, sizing the new requirements and updating the burnup chart. After that, Patricia (PO) facilitates a one-hour meeting with the Sponsor and stakeholders to negotiate some of the lower priority requirements to be implemented in the next release.

The team finds that it has much less hardening to perform during this iteration. This is due to doing more testing earlier in the lifecycle. The demo goes very well. Terry (Team Lead) shares the updated release burnup chart with the team. The chart now shows two requirements lines, one showing the number of “must have” points and the other showing the grand total of points.

burnup-chart.png

The retrospective begins with a review of how they’re doing with implementing the process improvements from previous iterations. The AO feels that they really should be evolving the supporting documentation along with the software that they’re building. This reflects DAD’s philosophy of developing consumable solutions, not just working software.

Carlos (Coach) suggests that the team adopt the practice of continuous documentation where they write the supporting documentation in parallel to writing the code (ex: using the wiki). He also offers to pair with anyone needing help.

 

9. Construction Iteration C7

Now the team is working smoothly, adding new value to MAP every two weeks. Ashok (AO) led the team through these hard technical decisions, exactly as an Architecture Owner should. Other points have been evolving:

  • Stakeholder collaboration
  • Test often, test early (automating acceptance tests and Continuous Integration)
  • Automated deployment scripts
  • Automated dashboard
  • Planning (the team has firmly commited to a delivery date based on ten construction iterations. Also getting serious about deployment planning)
  • The retrospective

 

10. Construction Iteration C10

The last Construction Iteration before Transition and the focus is on implementing a handful of high priority functionality and on final hardening of the solution.

Parallel independent testing in their pre-production testing environment has enabled the team to identify potential issues that had escaped their whole team testing efforts. Part of their hardening efforts is the finalization of training materials for the upcoming training of support staff.

dad-parallel-test

 

11. Transition

The focus of the Transition is for a team to release their consumable solution into production successfully. This should be in as lightweight a manner as possible. The Transition Goals are: ensure the solution is consumable and deploy the solution.

Ensuring that the solution is ready to deploy, the team needs to:

  • Perform final testing and fixing
  • Support training of the help desk staff
  • Finalize the deliverable documentation
  • Support development of end-user training videos
  • Validate the deployment scripts

 

12. The road to Disciplined DevOps

The Construction phase consists of seven two-weeks iterations. Here are the highlights practices of whats happens:

Release 2

  • TDD – Test Driven Development
  • Working from home (using tools to enable and after discussing with the team)
  • Improvement tracking (ex: measured improvement where at each retrospective the team rates how well they are doing at addressing the previously identified improvements)
  • The team evolves (while the team has grown to become extremely efficient and intends to stay together long-term, it’s a good idea to rotate team members to keep them stimulated and give them new learning opportunities)
  • Parallel independent testing
  • Vacations
  • Sharing their learnings

Release 3

  • Training (two-day training for example in ATDD and BDD)
  • Requirements envisioning
  • Improved quality
  • Continuous deployment
  • Adoption of ATDD (Acceptance Test-driven Development)
  • Organizational support for Continuous Integration / Continuous Deployment
  • Strategizing aroud DevOps


Release 4

  • The team reworks MAP with DevOps capabilities
  • The release cadence was tightened
  • The lifecycle evolves
  • Operating and supporting MAO
  • The team stops sizing

In the case was created a DevOps Center of Excellence (CoE) that helped to put the organizational, process, and tooling infrastructure in place to support a Disciplined DevOps strategy.dad-workflow-devops

13. Closing Thoughts

Why DA? You should consider adopting a Disciplined Agile approach when:

  • You want a flexible / pragmatic agile framework rather than a purist agile method
  • You’re successfully using Scrum or XP and want to take it to the next level
  • You’re not getting the results that you expect using agile
  • You’re out of compliance and want to incorporate a lightweight agile governance
  • You’re using Scrum and unsure how to address fundamental activities such architecture, testing and analysis
  • Your organization has adopted SAFe but run aground because you didn’t have a solid foundation in place for your agile delivery teams
  • You need to support several approaches to agile/lean development within your organization
  • You need to understand how to effectively blend agile/lean initiatives with your teams that user a traditional approach

 

Access the websites below to read more details about Disciplined Agile Framework:
http://www.disciplinedagiledelivery.com/
https://www.disciplinedagileconsortium.org/

da-framework

 

 

 

Gerenciando Azure Subscriptions e Team Services Accounts – Portal Azure

Ao iniciar sua jornada Cloud, utilizando SaaS e contas no Portal Azure, você terá acesso a inúmeros serviços (imagem abaixo), entre eles, computação (máquinas virtuais, discos, contêiner, etc.), rede, armazenamento, web, mobile, banco de dados, análises, IA, IoT, integração, identidade, segurança, DevOps e intune.

Sem dúvida, apoiam sua organização a trazer celeridade na adoção de soluções em diferentes áreas. Porém, recomendamos a leitura e entendimento da gestão de assinaturas (subscriptions) e custos no Portal Azure, otimizando os recursos aplicáveis ao seu negócio e os custos em comparação a outros cenários (ex: solução On-premise).

Neste post, abordaremos o gerenciamento de custo e a cobrança da assinatura do Team Services accounts. Veja no site da Microsoft mais detalhes sobre licenças no VSTS e consumo de recurso com Build.

servicos-portal-azure

Em Assinaturas, podemos gerenciar as assinaturas ativas e contratar uma nova assinatura, se necessário.

azure-assinaturas

Entre as ofertas, destacamos o Pago pelo Uso que permite utilizar os serviços sem restrições. É importante utilizar o gerenciamento de custos da Azure para acompanhar as faturas e evitar imprevistos. Outra opção é a Azure Via Open que insere créditos (formato pré-pago) a serem consumidos conforme a escolha dos serviços. Os créditos são inseridos mediante um código (chave) a ser gerado por um provider autorizado da Microsoft, no qual sua empresa deverá estabelecer relação.

azure-add-assinatura

Após habilitar a oferta, acessamos o Team Services accounts (em serviços DevOps) e configuramos a subscription, usuários e outras configurações da conta.

azure-team-services-accounts

Veja que ao acessar o VSTS (Visual Studio Team Services), podemos ver em Settings qual a conta (Account) e inscrição (Azure Subscription) que aquele time de projeto ou torre está utilizando.

vsts-account-settings

É isso! Por fim, como sugestão entre a opção de Azure Via Open (pré-pago) ou Pago pelo uso, avalie como sua equipe está estruturada para gerenciar os custos e trabalhar com soluções Cloud. Utilize empresas Cloud Broker para ajudar na intermediação entre sua empresa e a Azure.

Em estágios iniciais de maturidade, faça a opção pela licença Azure Via Open para evitar custos indesejados na sua fatura, considerando um provider autorizado da Microsoft para gerar os códigos (conforme explicado anteriormente).

Já em estágios mais avançados e com necessidade de uso constante dos serviços do Portal Azure, adote um bom CSP (Cloud Solution Provider) para gerenciar os custos de licenças e serviços com mais precisão.

Lean UX – Book Summary (Applying Lean Principles to Improve User Experience)

Section I: Introduction and Principles

Chapter 1 – Why Lean UX?

Lean UX is the evolution of product design. It takes the best parts of the designer’s tool kit and recombines them in a way that makes them relevant to this new reality.

  • It’s deeply collaborative and cross-functional
  • We can’t continue to ask our teams to wait for us to figure it all out. We need daily, continuous engagement with our teams if we are going to be effective
  • Instead of talking about features and documents, we can talk about what works, and measure (market feedback) what works, learn, and adjust

Lean UX is three things:

  • It’s easiest to understand as a process change for designers
  • It’s a mindset that lets us approach our work in new ways
  • It’s also a way of thinking about managing software

 

Chapter 2 – Principles

Lean UX stands on three foundations

1. The Lean principles underlying Lean Startup apply to Lean UX in these ways:

  • They help us remove waste from our UX design process. We move away from heavily documented handoffs to a process that creates only the design artifacts we need to move the team’s learning forward.
  • Second, they drive us to harmonize our “system” of designers, developers, product managers, quality assurance engineers, marketers, and others in a transparent, cross-functional collaboration that brings nondesigners into our design process.
  • Last, and perhaps most important, is the mindset shift we gain from adopting a model based on experimentation. Instead of relying on a hero designer to divine the best solution from a single point of view, we use rapid experimentation and measurement to learn quickly how well (or not) our ideas meet our goals.

2. Design thinking: takes a solution focused approach to problem solving, working collaboratively to iterate an endless, shifting path toward perfection. It works toward product goals via specific ideation, prototyping, implementation, and learning steps to bring the appropriate solution to light.

3. Agile development philosophies: refocuses software development on value. It seeks to deliver working software to customers quickly and to adjust regularly to new learning along the way.

As you explore the Lean UX approach, keep these principles in mind. Think of your experience with Lean UX as a learning journey. Use these principles to keep you and your team on course:

  • Cross-Functional Teams | Small, Dedicated, Colocated | Progress = Outcomes, Not Output | Problem-Focused Teams | Removing Waste | Small Batch Size | Continuous Discovery | The New User-Centricity | Shared Understanding | Anti-Pattern: Rockstars, Gurus, and Ninjas | Externalizing Your Work | Making over Analysis | Learning over Growth | Permission to Fail | Getting Out of the Deliverables Business

 

Section II: Process

Chapter 3 – Vision, Framing and Outcomes

Describes how Lean UX radically shifts the way we frame our work. The goal is not to create a deliverable, it’s to change something in the world—to create an outcome. And how we can reframe our work in terms of outcomes to search for the best solutions to the problem at hand.

Declaring outcomes, an important process, means to start with the project’s problem statements and then acknowledge our assumptions, then transform these assumptions into hypotheses. Also how to write hypothesis statements that capture intended features, audience, and goals, and that are specific enough to be tested. You’ll end up with statements that will serve as the roadmap for the next step of the Lean UX process: collaborative design.

The hypothesis statement is a way of expressing assumptions in testable form. It is composed of the following elements: Assumptions, Vision, Framing, and Outcomes, Hypotheses, Outcomes, Personas and Features.

And the recommended tools to validate hypotheses are: Business Assumptions Worksheet, Subhypotheses, Outcomes, Personas e Features.

business-assumptions-worksheet

Chapter 4 – Collaborative Design

After written the hypothesis, it’s time to determine what you’ll need to test assumptions.

lean-ux-process

Describes the shift in the design process. Lean UX uses many techniques familiar to designers but shifts the emphasis of work, becoming more collaborative. We aim for speed first. We prioritize learning. We use a key tool to achieve this: the MVP.

It’s shown how the low-fidelity drawings created in Design Studio sessions can help teams generate many ideas and then converge on a set the entire team can get behind. And practical techniques that can be used to create shared understanding, the fundamental currency of Lean UX.

Using tools such as style guides (accessible, continually improved e actionable), Design Studio (example in image below), and simple conversation, your team members can build a shared understanding that allows them to move forward at a much faster pace than in traditional environments.

design-studio-output

 

Chapter 5 – MVPs and Experiments

Lean UX is based on the idea that we begin our work with an assumption. We use experiments to test our assumptions and then build on what we learn in those experiments. This chapter shows you how to orient your design process around experiments and learning.

In this chapter, we defined the Minimum Viable Product as the smallest thing you can make to learn whether your hypothesis is valid. In addition, we discussed the various forms an MVP can take, took a closer look at prototyping, and discussed tactics for learning that don’t require building prototypes. For example:

Low-Fidelity Prototypes: Paper and Clickable Wireframeslow-prototype.png

Mid- and High Fidelity Prototypes
mid-prototype

Hand-coded and live-data prototypes
There are two levels of fidelity for coded prototypes: hand-coded and live data:

  • Hand-coded prototypes: look and function like the end product, but don’t account for any kind of real-time data input, processing, or output. They are still just simulations.
  • Live-data prototypes: will connect with real-time data and process user input. These are often deployed to real customers and offer a level of analytical insight into customers’ usage of the prototype that is not available from hand-coded prototypes. They can also be used when A/B testing certain features or changes to the current workflow.

And finally there are Types of Non-Prototype MVPs as Email, Google Ad Words, Landing Page and the button to nowhere.

Chapter 6 – Feedback and Research

User Experience work in any form requires good input from users. Lean UX puts a premium on continuous feedback to help us guide our design process. This chapter shows techniques that Lean UX teams use to get feedback early and often, and how to incorporate that feedback into future product iterations.

It’s presented many ways to start validating the MVPs and experiments built around hypotheses. The main techniques are: Continuous Discovery, Collaborative Design, Sketches, Onsite Feedback Surveys, incorporate the voice of the customer throughout the Lean UX cycle (static wireframes, mockups, prototypes) and using A/B tests in your research.

And how to build a lean usability-testing process every week and covered what you should test and what to expect from those tests. These techniques, used in conjunction with the processes outlined in Chapters 3 through 5, make up the full Lean UX process loop. Your goal is to cycle through this loop as often as possible, refining your thinking with each iteration.

feedback-research.png

 

Section III: Making it work

Chapter 7 – Integrating Lean UX and Agile

Here will be demonstrated the tactics discussed in Section II and show exactly how they fit into a typical Scrum process and how they make it more effective. First of all, read more about Scrum and be familiar with definitions (user story, backlog, sprint, stand-up, retrospective, planning meeting).

Building Lean UX into the Rhythm of Scrum

Themes: many people frown on Scrum meetings, but if you use them as mileposts during your sprint, you can create an integrated Lean UX and Agile process in which the entire team is working on the same thing at the same time.

Kickoff Sessions for Sketching and Ideation: each theme should be kicked off with a series of brainstorming and validation exercises like the ones described in Section II. The point of this kickoff is to get the entire team sketching and ideating together, creating a backlog of ideas to test and learn from.

Iteration Planning Meeting: the output of the kickoff session should be brought to the IPM. You made the artifacts (sticky notes, sketches, wireframes, paper prototypes) together and because of that, you have the shared understanding necessary to extract stories from them. Then evaluate and prioritize the stories.

User Validation Schedule: to ensure a constant stream of customer voices to validate against, plan user sessions every single week. Your team will never be more than five business days away from customer validation but still your ideas will have ample time to react prior to the end of the sprint. Use the artifacts you created in the ideation sessions as the base material for your user tests. Remember that when the ideas are raw, you are testing for value (i.e., do people want to use my product?). Once you have established a desire for your product, subsequent tests with higher fidelity artifacts will reveal whether your solution is usable.

lean-ux-rhythm-of-scrum

In addition, we can see how cross-functional collaboration allows a team to move forward at a brisk pace and how to handle those pesky stakeholders and managers who always want to know what’s going on.

 

Chapter 8 – Making Organizational Shifts

In this chapter, we’ll discuss the following changes your organization may need to make in these areas. It’s not just software developers and designers who need to find a way to work together. Product managers, project managers—in short, your whole product development engine—is going to need to change if you want to create a truly Agile organization.

  • Shifting from output to outcomes
  • Moving from limited roles to collaborative capabilities
  • Embracing new skills
  • Creating cross-functional teams
  • Creating small teams
  • Creating open, collaborative workspaces
  • Not relying on heroes
  • Eliminating “Big Design Up Front”
  • Placing speed first, aesthetics second
  • Valuing problem solving
  • Embracing UX debt
  • Shifting agency culture
  • Working with third-party vendors
  • Navigating documentation standards
  • Being realistic about your environment
  • Managing up and out

organization-Lean_UX.png

 

Deployment Groups em Release Management – VSTS

Já abordamos o funcionamento dos Agents e a diferença entre Microsoft-hosted e Self-hosted agents no processo de Release Management do VSTS em outro post.

Hoje vamos falar sobre Deployment Groups e a facilidade na criação de grupos lógicos  de servidores para realizar o deploy de sua aplicação, baseado em Agents instalados. Com estes grupos, podemos orquestrar deployments em vários servidores e executar atualizações contínuas com alta disponibilidade.

Permite trabalhar com servidores on-premise ou máquinas virtuais na Azure ou qualquer outra Cloud. Também realiza a execução paralela de tarefas de deployment. Outro ponto é a especificação de segurança, permitindo criar usuários e gerenciar as permissões apropriadas de acordo com o grupo. O log de cada servidor é armazenado para rastrear o processo.

Passo 1: Acesse o VSTS, na guia Build and release, e Deployment Groups. Escolha o nome do grupo e tipo do registro (Windows ou Linux). Copie o script e execute no servidor utilizando a console do PowerShell.

deployment-groups-inicial

Passo 2: Após a execução do comando, veja que as máquinas e respectivos status são relacionados na aba Targets.

targets-deployment-groups

Ao clicar em cada máquina criada, veja mais detalhes sobre os deployments realizados e Capabilities (configurações dos Agents, das máquinas, etc.).

deployment-groups-capabilities

Passo 3: Associar o Deployment Group nas tarefas de release management. Escolha a opção Add Deployment Group Phase (e não Agent Phase). Faça as configurações necessárias para o seu deployment, considerando o nome do Deployment Group criado anteriormente e o artefato do seu projeto.

deployment-process

Entre os principais benefícios para quem já utiliza Deployment Groups:

  • Deploying para múltiplas regiões e data-centers
  • Atualizações em aplicações para múltiplos usuários (multi tenant deployment)
  • Gestão de carga de trabalho transitória em Cloud
  • Executar blue/green deployments com gerenciamento de tráfego e load balancer
  • Com deployment em escala variando de um servidor único até 600+ servidor em um deployment group

Os principais benefícios do VSTS (Visual Studio Team Services) da Microsoft

A nova versão do VSTS (Visual Studio Team Services) oferece uma solução completa para trabalhar com o ciclo de vida da aplicação, práticas DevOps e Agile. Entre os principais recursos estão: gestão de fontes, integração com ferramentas e extensões (SonarQube, GitHub, Jenkins, etc.), planejamento ágil, deploys e testes.

ms-solution

  • Source Control: além do TFVC, trabalha com os melhores versionadores de  código-fonte do mercado. Veja mais detalhes em posts anteriores sobre CI/CD e gerenciamento de fontes.
  • Agile Planning: gerenciamento de backlog nos templates Scrum | Agile | CMMI,  planejamento da sprint baseada no capacity do time, monitoração do progresso com Burndown e Dashboards.
  • Build automation, Continuous Deployment e Release Management: crie seus pipelines e publique suas releases nos ambientes desejados (Dev, Homolog, QA e Produção, por exemplo). Também possibilita configurar aprovadores, muito aplicável em empresas que trabalham com compliance. Nas definições de Build, configure análise de código e outras práticas de CI.
  • Load testing: verifica a performance da aplicação antes do deploy. Acesse o docs da Microsoft para mais detalhes.
  • Feedback management: obtenha feedbacks dos usuários com a ferramenta de Feedback Request e entregue mais valor para o negócio.
  • Team collaboration: melhore a comunicação no seu time, principalmente quando estão distribuídos. As decisões fluem mais rápido e as discussões técnicas (colaborativas) ajudam a engajar o time. O Wiki, Microsoft Teams e Slack são tecnologias sociais recomendadas.
  • Application Telemetry: coletar dados das aplicações – métricas de uso, erros, performance, features utilizadas, etc. – contribui para melhorias e entrega valor aos usuários. O Application Insights é uma ótima solução de análise da aplicação.
  • Lab management: ferramenta usada para testers de software e para gerenciar ambientes virtuais. Avalie o Build e Release Management como opção de teste automatizado ao invés do Lab Management.

 

 

Leitura adicional (recomendada)