Posts Tagged ‘Agile’

Visualize – Collaborate – Automate

Written by Philip Zollinger on . Posted in Continuous Improvement, Lean & Agile Product Development, Lean Product Development Flows

I would like to give some background to our headline „Visualize, Collaborate, Automate“ we introduced following our slogan „challenging complexity – increasing agility“, which of course is still true. However, we wanted to bring more value to our heading as we strongly believe that the three pillars visualisation, collaboration and automation are integral values to the benefits of all our services in improving product development and your quest for continuous improvement.

Since the founding of EVOCEAN almost 10 years back we have been focusing on leveraging product development through experience, techniques and tools. It has been the combination of all three values which created the greatest leverage. Let me iterate today what we understand by these three terms. We will be giving examples in future blogs.

First of all, let’s talk about visualisation. It is essential to know that the term’s meaning depends on the context and has more than one dimension. What we understand by visualisation is – on the one hand – the abstraction in graphics, models, the graphical synthesis in user interfaces, i.e. user experience, and – more generally – a concept helping to visualise complexity. We believe in layers, in different views, each one of them having its benefit for its special purpose. Or to say it in Einstein’s words: “Make it as simple as possible, but not simpler.” As expressed in the term „simplexity“, we are convinced that complexity is inherent and we need ways to manage it (refer also to systems engineering). In future, you will hear more from us in the context of visual management. We believe very strongly that visualisation helps a lot in making decisions earlier, thus helping to validate your tasks earlier. Especially in innovation projects early feedbacks are very important. In another dimension we also feel strongly about models in the context of Model Driven Development or Model Based Systems Engineering. Models are a way to visualize and in further steps to execute, i.e. they are also a basis to generate code, which leads us directly to the automation part.

Automation is always part of an improvement. However, be aware that automation will only improve your activities and make them faster if done manually today, but sometimes you need more profound changes – i.e. adjusting your business model or, in the context of products, its architecture. In all these tasks and with respect to increasing your speed, automation shortens release cycles and reduces time to market to stay ahead of your ever increasing competition.

Collaboration is key for success and is becoming ever more important. If you cannot access your data easily, cannot share, trace, collaborate with others easily, it will be tough – because while speed increases, parallel activities increase and thus teamwork gains weight. Changes need to be transparent and traceable. Having an infrastructure which supports this helps you reducing mundane non-valuable tasks and enables to excel in your product development.

In this sense I ask you to think about how visualisation , collaboration and automation will help you.

Agile Configuration Management – overview

Written by Blaise Rey-Mermet on . Posted in Agile Configuration Management

 

What is it? Configuration Management (CM) plays a central role to keep a development team synchronized. A classical definition can be found for example in CMMI for development: “The purpose of Configuration Management (CM) is to establish and maintain the integrity of work products using configuration identification, configuration control, configuration status accounting, and configuration audits.“Common configuration Management practices are:

  • Identifying and organizing the configuration items (configuration items: work products that undergoes changes during the product lifecycle and needs to be maintained, e.g. software code, documentation, requirements, and more)
  • Maintaining change requests and systematically controlling the changes to the configuration items
  • Managing the status of configuration items
  • Creating and managing product baselines (baseline: a set of specifications or work products that has been formally reviewed and agreed on, which thereafter serves as the basis for further development)

 

Relationship between versions of work products and baselines

Relationship between versions of work products and baselines

Lean / Agile Configuration Management (CM) Concepts The goals of applying lean and agile principle to CM are

  • to reduce the development time by avoiding waste and delays in the development process,
  • and to get fast feedback about the integration and quality of the product.

An important point to remember is that a lean configuration management process is also continuously adapted and improved. For the CM process to profit from the lean and agile software development principles, we should keep in mind the following aspects:

  • Add support for parallel multiple development branches, because large programs will be organized in a set small agile teams.
  • Avoid centralized Change Control Boards (CCB) that control all changes – Instead control non-strategic decisions on changes in the distributed organization of Scrums and using the cadence of the Sprints. Reserve centralized decisions for changes that impacts the whole program or organization.
  • Let the agile team assumes the CM role instead of a dedicated Configuration Manager. The daily management of configuration items can be handled by the self-organizing team, while the Configuration Manager at the program level defines enterprise-wide aspects such as a CM strategy and CM tools, and support the teams when needed.
  • Use automated tools – Automated continuous integration helps to reduce the integration and testing delays and allow quick feedback about the product quality.
  • Continuously observe and adapt the CM tools and process. For example, avoid complex branching or baselining mechanism if your team does not need them, or observe where long build times are slowing down the team and improve these procedures.
Roles Configuration Manager
This describes the role of the Configuration Manager at the Project or Agile Team Level. The Configuration Manager will typically:

  • Adapt the CM Plan with assistance from the (agile) team, the IT project manager or Scrum Master. Communicate the CM Plan to the team.
  • Ensure team compliance with CM Handbook and CM Plan.
  • Manage the CM System and the Configuration Libraries
  • Identify the configuration item,
  • Control configuration
Read more  [1] Configuration Management Best Practices: Practical Methods That Work in the Real World  – Bob Aiello, Leslie Sachs – Addison Wesley Pub Co Inc (10. August 2010)
[2] Practical Perforce von Laura Wingerd von O’Reilly Media (25. November 2005). This book describes in particular branching and merging in agile environments.