/

AGILE WORKFLOW

Essay for an efficient work alignment, collaboration and interactions.

Version 2.1


Table of Contents

Table of Contents

1. Introduction

Successful execution

2. Work Principles

The Team Matters

Be Open

Be Proactive

Be Encouraging

Be Productive

Be Agile

3. Agile

Agile is Lean

Be Agile ⇒ Be Lean

4. Use the project management tool efficiently

Keep Asana as it’s your Database of work

Keep your asana organised!

5. Work Agenda

Sprint plan vs roadmap

Sketching out a roadmap

Be aware about new, distracted ideas

6. Feature Lifecycle

Specing

Scoping

Design

Development

Anticipate problems

Documentation

7. Plan and estimate correctly

Extreme Programming

Define success metrics

Data-driven planning

KPI for the Roadmap.

Still not convinced if your Boss will buy it?


1. Introduction

“Genius is 1% inspiration and 99% perspiration” 

-- Thomas Edison

Workflow optimization is all-time emerging field in the business. Even so, all companies have problems with efficient workflow. The document presents ongoing investigation into the central goal: “Efficient IT work”. I created this document based on my corporate and startup experience. I’m an IT Leader and Software Expert. However this document is not about software. It’s about work methodology.

In corporate world I was exposed to the big organization schemas. In startups, among many things, I was responsible for product delivery, system architecture and team building.

Creating an efficient IT structure is very challenging and super important for the business health, work quality and performance. It’s exceptionally difficult in the startup world when you need to be responsive for:

Successful execution

Success is an effect of: organization, risk management, focus, open mindset and proactivity. Having the idea is just a small part of the process.

2. Work Principles

The key to effective management of agile teams lies in the mastery of soft skills.

The Team Matters

The main principle is that the team matters. You should respect the team and the work the team is doing.

Be Open

It is important we all know what’s going on behind each other’s screen to some extent. Be open, share with your teammates your achievements and successes as well as your problems and issues. Don’t hesitate to tell when things frustrate you, when something really motivates you.

Use Asana to track you work and share the updates and goals with others.

Be Proactive

Always share ideas you think are good! Focus on what you can do, rather than what you can’t. Be proactive ⇒ be positively active & be reasonable == able to make reasoning.

Be Encouraging

Encourage is the principal for building an efficient and sustainable environment.

Be Productive

Increase your productivity through better scheduling. Tips below comes from the asana team.

Be Agile

Agile software development is an umbrella term for several software development methods (including Extreme Programming and Scrum). More on this below.

3. Agile

In a nutshell Agile is a time-focused, iterative philosophy that allows to build a product step-by-step (incrementally), delivering it by smaller pieces. One of its main benefits is the ability to adapt and change at any step (depending on feedback, market conditions, corporate obstacles, etc.) and to supply only relevant products to the market.

To its advocates, Agile is a genuinely better way to run a company and an economy—better for those doing the work, better for those for whom the work is done, better for the organization itself. Instead of management extracting value from the firm, Agile generates value for customers and for society as a whole.

Agile is Lean

Agile methods were influenced by the ideas of lean manufacturing.

The main principles are:

Build faster - Measure faster - Learn Faster

Be Agile ⇒ Be Lean

Take Agile as the extension of the Lean.

A typical lean company follows a learn – measure – build cycle, and conducts many tests, frequently connects with customers, understands their value and focuses its key processes to continuously improve it. A never ending cycle leads the the teams to sustainability, smart development and success.

Let’s put them together:

Agile Philosophy

Lean Philosophy

Execute tasks faster, adapt to changes easier

Smart development, when you improve virtually everything you do by eliminating anything that doesn’t bring value to the customer

Makes the developing process flexible

Makes the developing process sustainable

Was initially designed for Software Development, then expanded to Marketing, and is currently applied in other areas

Started from traditional manufacturing and expanded to all existing industries

Action loop: product backlog – sprint backlog – iteration (sprints) – potentially shippable result

Action loop: build-measure-learn

Method for demonstrating progress — definition of ‘done’

Method for demonstrating progress — validated learning

Methodologies: Scrum, XP, FDD, DSDM, Crystal Methods etc.

Methodologies: Kanban, Kaizen etc.

Toolkit: sprints, boards, Scrum Master, acceptance tests, user story mapping etc.

Toolkit: hypotheses, split (A/B) tests, customer interviews, funnel and cohort analysis, Customer Success Manager etc.

4. Use the project management tool efficiently

My project management tool of choice is Asana.

Projects are lists of tasks. Use a project for a larger goal and a task for an action someone on your team needs to take in order to achieve that goal.

-- asana.com

What does it mean?

Mainly that you can use projects to express different goals of your work schedule:

Slice and dice your tasks into multiple projects - this way you will deliver better overview of the work and features. This idea is nicely presented in Project management, goal setting, roadmaps, pipelines… video.

Asana projects go beyond simple task list view:

  1. Check overview of Project Views tutorial to get ideas about sections, ordering, default views, explore files directory, calendar….
  2. Slice and dice your tasks as mentioned above. Get inspiration from the following presentations:
  1. Tribeca Film Festival plans and runs events #withAsana
  2. Pantheon sets company objectives #withAsana
  3. Autodesk manages editorial calendars #withAsana

Keep Asana as it’s your Database of work

It’s uber useful for the team and the company if we can aggregate information (links, decisions, files) in a feature tasks. This way we will not get lost with the job we have to do and it’s related resources. Connecting work video tutorial explains it perfectly.

Keep your asana organised!

5. Work Agenda

There are many good methodologies applying Agile principles. Below I will use the eXtream Programming (XP), which works very well in the startup environment. Other methodology, which works especially well in the enterprise environment is Scrum.

XP focuses heavily on ensuring the quality of delivered software and which prescribes engineering solutions towards that end. XP solicits feedback immediately - you don’t have to wait for the new sprint to tackle the feedback.

The team engage in Release Planning and Iteration Planning. They work in very short development cycles so that changes requested by the customer (who works on-site with the team) can be incorporated frequently.

  1. Quarterly roadmap review.
    Time to dream big and review all ideas we wrote down over the past months.
    Make few events: one for your team and one for the business and development together.
  2. Weekly sprint planning.
    Goal: define the sprint tasks you will commit on.
  3. Daily stand-up.
    Goal: quickly find what’s blocking. Help and support.
    In a distributed environment can be done in a short report form in your chat app.
  4. Keep on track with the sprint plan.
    Work principles ⇒ be productive. Measure.
  5. Weekly sprint review.
    Everybody will present their work (shortly, max 3min per person).
  6. Monthly retrospective.
    Discuss process improvements, successes and failures.
    The team is obligated to note their comments during the sprints.

Meetings

Principles around meetings:

Note: each meeting should have a goal and agenda. If the meeting doesn’t bring any value then it means that the work flow requires some reorganization or there is something wrong with management. Make sure that:

Sprint plan vs roadmap

Roadmap is a high level set of big user-stories. It’s there to keep the define big objectives and priorities. Roadmap helps the sprint planning process to deliver important features to the user and keep the system in a good condition.

Sprint, on the other hand, is to deliver incremental updates leaned into roadmap.

Sketching out a roadmap

Be aware about new, distracted ideas

It’s hard to make meaningful progress when you’re constantly open to changing strategy. On the other hand, rejecting all new ideas is the opposite of fostering the kind of organization that can learn, adapt, and react quickly.

6. Feature Lifecycle

Specing

Specing is the process preceding the feature development. It’s composed from Scoping and Design. Then it is refined during Development.

Scoping

The goal of scoping is to define all stakeholder objectives. Plan ahead for planning!. The project leader have to describe what he wants and why. He have to involve in this process business stakeholders to make sure that the objectives are in line with the product goals, and clear and extensive to think about the solutions.

Design

During the design phase we want to define user and system requirements, describe the user stories. This process have to involve IT (architect and developer) to be sure that the design is aligned with the system architecture and define correct timeline for it.

Development

Development starts with the analysis - collecting the solution ideas and finding possible obstacles which haven’t been defined during the design phase. For non trivial tasks, developer will present his solution idea to the rest of developement team for review before coding the solution. If it’s required, a developer works closely with the business to implement the solution and refine the spec document.

Be clear who owns what part of the work. This way we encourage accountability and empower every contributor to play their part in achieving the broader goals.

Anticipate problems

For more complex tasks, it’s good to do incremental solution idea review. The developer comes with his solution idea and the review is a brainstorm of new ideas and roadblocks. The obstacles you will find can often be gleaned from past failures. Other times, they’re determined by vividly imagining just how certain scenarios will play out

Documentation

The documentation, data and code language is English.

Documentation has many forms: code comments, tests, diagrams, spec documents… In the lean environment the principal artefact of the work is a product. Although much documentation can be replaced with highly readable code and tests, in a world of evolutionary architecture it's important to record certain design decisions for the benefit of future team members and for external oversight. Therefor it’s a good habit to organize the list of objectives, requirements and user stories from the specing / planning sessions. Another form of the documentation is Lightweight Architecture Decision Records. At some point it’s enough to store information in the project management tool → Keep Asana as it’s your Database of work.

To model the feature design use:

Diagram and module specification have to be stored in DEV Wiki folder in Google Drive. Diagrams should be created using Google Drawing or draw.io

7. Plan and estimate correctly

Remember - to successfully complete objectives you need to carefully plan and explain them.

Don’t make the plan by your own!

Without a clear plan, you might find yourself running a race without a route.

-- wavelength_blog

Prioritize Maniacally

What you prioritize is what you value as a company. So, the prioritization process is the process through which you determine and express the company’s values. Ensure that you don’t do anything that isn’t the next most important thing that can be done. The clearest sign that smart prioritization isn’t happening is stupid perfectionism; if you see that happening, you know you need an upgrade to “more maniacal.”

Extreme Programming

XP (Extreme Programming) defines a great framework for high quality and responsive deliveries.

extreme-programming-project.gif

Starting with some framework from the very beginning is uber important. It’s easier to do this job at the beginning then adapt later.

Define success metrics

Data can be an incredibly powerful communication tool, but even the most informed product teams can skew or misunderstand the purpose of a new feature because of a miscommunication.

Data-driven planning

As a Project Leader, during Scoping and Design stay clear about the most important goals that can be solved during the sprint. Drive the user stories using the data (metrics). Establish baselines by gathering metrics and tracking how new features and processes impact them.

However, sometimes the data won’t be able to tell you how to prioritize and scope or why the metrics are shifting (doing opposite than expected). Rely on your best judgment, test often, and build in frequent reviews to see what tactics are causing metrics to shift in the direction you want.

KPI for the Roadmap.

It’s crucial to define KPIs for your roadmap. What brings the value to the customers? Does the system works seamlessly? Measure completeness of your roadmap and KPIs for each sprint planning.

Agile ⇒ Lean: Build faster - Measure faster - Learn Faster

Still not convinced if your Boss will buy it?

source: http://dilbert.com/

© Robert Zaremba http://scale-it.pl