Drupal Feeds

Deeson: Deeson at DrupalCon Vienna 2017: Becoming an Agile agency

Planet Drupal - Fri, 2017-10-20 10:51
Yoga pose

Last month a few of us in the team attended DrupalCon Vienna with fellow Drupal enthusiasts and developers from across Europe and further afield.

Over the three days, my teammates and I hosted several Birds of a Feather (BoF) sessions between us. The format is more participatory than a traditional talk, so it’s a great opportunity to engage in discussion and hear other perspectives from within the community. 

Deeson has been delivering digital projects since 2001, refining our agile delivery process over the years from the DSDM Agile Project Framework in combination with other agile practices particularly suitable for an agency environment.

My first BoF session invited other conference attendees to share their experiences (the highs and lows), tips and best practices for making Agile work in an agency. The following is a roundup of what we discussed over the hour.

Starting slow.

We identified that the typical journey sees agencies start off being ‘agile’ with a small a. They have begun to implement some of the process tools around agile, such as SCRUM, standups, sprints and so on, but aren’t yet living by the core elements of the Agile Manifesto.

Individuals and interactions over processes and tools. Working software over comprehensive documentation. Customer collaboration over contract negotiation. Responding to change over following a plan.

Agile Manifesto

Including the client.

We talked about whether the client should be an integral part of the delivery team or should be kept at arm’s length. Those who believed they had an Agile workflow suggested that the client should be part of the team and involved throughout. The benefit being that – as part of the team delivering the product – they share the risk with delivery.

Those who felt they still had some way to go in becoming Agile were more wary of this approach, believing the client either couldn’t take on these roles or wouldn’t want to. These agencies were more likely to retain full control of the project and client, and accept all the risk as a result.

Handling changing requirements.

There was a discussion about the time taken up with dealing with change, and how clients don’t always appreciate the efforts involved in managing their changing requirements. I described how we deal with this at Deeson with our Dual board in Jira.

Dual board

This process separates new ideas neatly from refined and signed off units of work ready for development. The client can see their backlog of new ideas and what state each is in, and knows that effort will be involved in taking those ideas from concept to ready for development.

We also considered the need for developers to be able to highlight to a client when an idea is completely new, and to prevent them from trying to squeeze additional functionality into a sprint which already had been signed off.

It’s good to have a SCRUM master or some level of leadership position in the team so developers don’t have to make these decisions themselves and can defer to someone else if they are unsure.

Questioning sprints.

Someone raised the idea that sprints were a waste of time in a truly agile project. They suggested that nirvana could be achieved with Kanban alone; there is only work in progress and with an engaged client and team you would be constantly refining the backlog so new work could constantly be pulled in and worked on. This works well in a model where the client has you on retainer as their technical team for a long period of time (rather than to deliver a specific thing, like a website). 

So there’s always a finite amount of WIP (work in progress). If stories are always refined to the point that they are about half a day's effort for one person, and are complete (finishing them can be tested and, in theory, released) then you can calculate the velocity and the time remaining on sections of work fairly accurately.

We invest heavily in agile training for our staff and clients, and we’re currently hiring for multiple roles including a Delivery Manager.

Deeson: Deeson at DrupalCon Vienna 2017: Becoming an Agile agency

Feeds from Drupal.org - Fri, 2017-10-20 10:51
Yoga pose

Last month a few of us in the team attended DrupalCon Vienna with fellow Drupal enthusiasts and developers from across Europe and further afield.

Over the three days, my teammates and I hosted several Birds of a Feather (BoF) sessions between us. The format is more participatory than a traditional talk, so it’s a great opportunity to engage in discussion and hear other perspectives from within the community. 

Deeson has been delivering digital projects since 2001, refining our agile delivery process over the years from the DSDM Agile Project Framework in combination with other agile practices particularly suitable for an agency environment.

My first BoF session invited other conference attendees to share their experiences (the highs and lows), tips and best practices for making Agile work in an agency. The following is a roundup of what we discussed over the hour.

Starting slow.

We identified that the typical journey sees agencies start off being ‘agile’ with a small a. They have begun to implement some of the process tools around agile, such as SCRUM, standups, sprints and so on, but aren’t yet living by the core elements of the Agile Manifesto.

Individuals and interactions over processes and tools. Working software over comprehensive documentation. Customer collaboration over contract negotiation. Responding to change over following a plan.

Agile Manifesto

Including the client.

We talked about whether the client should be an integral part of the delivery team or should be kept at arm’s length. Those who believed they had an Agile workflow suggested that the client should be part of the team and involved throughout. The benefit being that – as part of the team delivering the product – they share the risk with delivery.

Those who felt they still had some way to go in becoming Agile were more wary of this approach, believing the client either couldn’t take on these roles or wouldn’t want to. These agencies were more likely to retain full control of the project and client, and accept all the risk as a result.

Handling changing requirements.

There was a discussion about the time taken up with dealing with change, and how clients don’t always appreciate the efforts involved in managing their changing requirements. I described how we deal with this at Deeson with our Dual board in Jira.

Dual board

This process separates new ideas neatly from refined and signed off units of work ready for development. The client can see their backlog of new ideas and what state each is in, and knows that effort will be involved in taking those ideas from concept to ready for development.

We also considered the need for developers to be able to highlight to a client when an idea is completely new, and to prevent them from trying to squeeze additional functionality into a sprint which already had been signed off.

It’s good to have a SCRUM master or some level of leadership position in the team so developers don’t have to make these decisions themselves and can defer to someone else if they are unsure.

Questioning sprints.

Someone raised the idea that sprints were a waste of time in a truly agile project. They suggested that nirvana could be achieved with Kanban alone; there is only work in progress and with an engaged client and team you would be constantly refining the backlog so new work could constantly be pulled in and worked on. This works well in a model where the client has you on retainer as their technical team for a long period of time (rather than to deliver a specific thing, like a website). 

So there’s always a finite amount of WIP (work in progress). If stories are always refined to the point that they are about half a day's effort for one person, and are complete (finishing them can be tested and, in theory, released) then you can calculate the velocity and the time remaining on sections of work fairly accurately.

We invest heavily in agile training for our staff and clients, and we’re currently hiring for multiple roles including a Delivery Manager.

Categories: Straight From Drupal

Login Redirect to Front

Latest Drupal Modules - Fri, 2017-10-20 08:25
Synopsis

Module redirect to front page after login. At the moment the module has no settings and works for all users.

You can help!

Repository on GitHub

Donate

You can donate here

Categories: Straight From Drupal

Valuebound: Selenium: A beginner’s guide to automation testing tool to ensure better user experience

Planet Drupal - Fri, 2017-10-20 08:02

Before delving into the how of automation testing using Selenium, let me talk about the why.

Over the past couple of years, the demand for automation has increased at an unprecedented speed and scale as it indispensably minimizes the testing time, eliminate repetitive human tasks and make life easier. The advent of an open source automation testing tools, such as Selenium, has significantly reduced the demand and scope of manual testing.

Needless to say, every testing has its own quirks and best practices! However, there are certain standard best practices that generally apply to most automation, too. Let’s review the best practices of automation testing. You…

Valuebound: Selenium: A beginner’s guide to automation testing tool to ensure better user experience

Feeds from Drupal.org - Fri, 2017-10-20 08:02

Before delving into the how of automation testing using Selenium, let me talk about the why.

Over the past couple of years, the demand for automation has increased at an unprecedented speed and scale as it indispensably minimizes the testing time, eliminate repetitive human tasks and make life easier. The advent of an open source automation testing tools, such as Selenium, has significantly reduced the demand and scope of manual testing.

Needless to say, every testing has its own quirks and best practices! However, there are certain standard best practices that generally apply to most automation, too. Let’s review the best practices of automation testing. You…

Categories: Straight From Drupal

Appnovation Technologies: SEO for Drupal Series, Part 1: Project Discovery and The Google Algorithm

Planet Drupal - Fri, 2017-10-20 07:00
SEO for Drupal Series, Part 1: Project Discovery and The Google Algorithm SEO for Drupal Part One - Project Discovery and The Google Algorithm In this new, fortnightly ‘A-Z of Drupal SEO and SEM’ series of Appnovation blog posts, we’ll see what it takes to turn a Drupal site into a traffic magnet, driving traffic growth and providing better Call to Action fulfillments without us...

Appnovation Technologies: SEO for Drupal Series, Part 1: Project Discovery and The Google Algorithm

Feeds from Drupal.org - Fri, 2017-10-20 07:00
SEO for Drupal Series, Part 1: Project Discovery and The Google Algorithm SEO for Drupal Part One - Project Discovery and The Google Algorithm In this new, fortnightly ‘A-Z of Drupal SEO and SEM’ series of Appnovation blog posts, we’ll see what it takes to turn a Drupal site into a traffic magnet, driving traffic growth and providing better Call to Action fulfillments without us...
Categories: Straight From Drupal

Lullabot: React in Drupal Core?

Planet Drupal - Fri, 2017-10-20 00:37
Matt and Mike talk with Drupal core committter Lauri Eskola, Drupal JavaScript maintainers Théodore Biadala, and Matthew Grill, and Lullabot's own Senior Technical Architect Sally Young about adopting a front-end JavaScript framework, specifically React into Drupal core.

Lullabot: React in Drupal Core?

Feeds from Drupal.org - Fri, 2017-10-20 00:37
Matt and Mike talk with Drupal core committter Lauri Eskola, Drupal JavaScript maintainers Théodore Biadala, and Matthew Grill, and Lullabot's own Senior Technical Architect Sally Young about adopting a front-end JavaScript framework, specifically React into Drupal core.
Categories: Straight From Drupal

PreviousNext: Testing CSV output in Drupal 8 with BrowserTestBase

Planet Drupal - Thu, 2017-10-19 21:39
Share:

In a recent project we were outputting CSV and wanted to test that the file contents were valid.

Read on for a quick tip on how to achieve this with Drupal 8's BrowserTestBase

by Lee Rowlands / 20 October 2017

Basically, the easiest way to validate and parse CSV in PHP is with the built in fgetcsv function.

So how do you go about using that inside a functional test - in that instance we're not dealing with a file so its not your ordinary approach for fgetcsv.

The answer is to create a stream wrapper in memory, and use fgetcsv on that.

The code looks something like this:

$response = $this->getSession() ->getDriver() ->getContent(); // Put contents into a memory stream and use fgetcsv to parse. $stream = fopen('php://memory', 'r+'); fwrite($stream, $response); rewind($stream); $records = []; // Get the header row. $header = fgetcsv($stream); while ($row = fgetcsv($stream)) { $records[] = $row; } fclose($stream);

There you have it, you now have the header in $header and the rows in $rows and can do any manner of asserts that you need to validate the CSV generation works as expected.

Tagged Drupal 8, Testing, Functional Testing Photo of Lee Rowlands

Posted by Lee Rowlands
Senior Drupal Developer

Dated 20 October 2017

Add new comment

PreviousNext: Testing CSV output in Drupal 8 with BrowserTestBase

Feeds from Drupal.org - Thu, 2017-10-19 21:39
Share:

In a recent project we were outputting CSV and wanted to test that the file contents were valid.

Read on for a quick tip on how to achieve this with Drupal 8's BrowserTestBase

by Lee Rowlands / 20 October 2017

Basically, the easiest way to validate and parse CSV in PHP is with the built in fgetcsv function.

So how do you go about using that inside a functional test - in that instance we're not dealing with a file so its not your ordinary approach for fgetcsv.

The answer is to create a stream wrapper in memory, and use fgetcsv on that.

The code looks something like this:

$response = $this->getSession() ->getDriver() ->getContent(); // Put contents into a memory stream and use fgetcsv to parse. $stream = fopen('php://memory', 'r+'); fwrite($stream, $response); rewind($stream); $records = []; // Get the header row. $header = fgetcsv($stream); while ($row = fgetcsv($stream)) { $records[] = $row; } fclose($stream);

There you have it, you now have the header in $header and the rows in $rows and can do any manner of asserts that you need to validate the CSV generation works as expected.

Tagged Drupal 8, Testing, Functional Testing Photo of Lee Rowlands

Posted by Lee Rowlands
Senior Drupal Developer

Dated 20 October 2017

Add new comment
Categories: Straight From Drupal

field entity dependency

Latest Drupal Modules - Thu, 2017-10-19 20:24

This module will provide a field type to manage hierarchical dependency between related Drupal 8 entities.
For now, it only works between content types but we have plans to support taxonomy vocabularies and bock types in near future.

How to use:

Go to Manage Fields on any content type and then press on Add field.
Now select the Dependency field type.
Once created, go to Manage form display, make sure that you have selected the Dependency select widget and in its settings, you must specify the entities to display on the field.

Categories: Straight From Drupal

reCAPTCHA Extra

Latest Drupal Modules - Thu, 2017-10-19 18:46

Utility with minor tweaks for reCAPTCHA module.

Features:

- Loading on modal popup.

Categories: Straight From Drupal

Drupal Association blog: Drupal Association Board Meeting Summary - 28 September, 2017

Planet Drupal - Thu, 2017-10-19 18:38

On 28 September 2017, the Drupal Association held its third open board meeting of the year where community members listened in via zoom and in person. You can find the meeting minutes, board materials, and meeting recording here.

The board meeting was kicked off by an update from Dries Buytaert, followed by an Executive update from Megan Sanicki, Executive Director, and a Drupal.org update from Tim Lehnen, Director of Engineering. We also thanked and celebrated Tiffany Farriss, Vesa Palmu, and Jeff Walpole whose terms on the board end in November.

Dries Buytaert moving from Chairman to Founding Director position

One of the key announcements made during the meeting came from Dries Buytaert, who announced that in response to the Community Discussions findings, he is stepping down from the Drupal Association Chairman position. He will remain on the board in the Founding Director position.  This will go into effect in November when board seats expire and Adam Goodman will step into the role as interim Chairman, which is also in response to the community’s request for a neutral, outside expert to lead the board. To learn more about the Community Discussions, go here.

Adam Goodman is a leadership professor from Northwest University in Chicago, Illinois, USA. He's advised the Drupal Association on and off for the past 8 years, helping us evolve from a volunteer board to a strategic board. In this role, Adam will further evolve the board so it can orient itself around a new chairman structure.

Since Adam is a paid consultant, the Drupal Association needs to change its bylaws to allow Adam to sit on the board and be paid for his service. In addition to this change, we are doing a general update of the bylaws to include:

  • Eliminate non-existent committees like the HR committee

  • Modernize the tools we can use for online voting. Today we can use teleconferencing, but we also need to be able to use video conferencing.

To learn more about this board meeting, please watch the recording and stay tuned for an update on other improvements we are making in response to the community’s input.

Drupal Association blog: Drupal Association Board Meeting Summary - 28 September, 2017

Feeds from Drupal.org - Thu, 2017-10-19 18:38

On 28 September 2017, the Drupal Association held its third open board meeting of the year where community members listened in via zoom and in person. You can find the meeting minutes, board materials, and meeting recording here.

The board meeting was kicked off by an update from Dries Buytaert, followed by an Executive update from Megan Sanicki, Executive Director, and a Drupal.org update from Tim Lehnen, Director of Engineering. We also thanked and celebrated Tiffany Farriss, Vesa Palmu, and Jeff Walpole whose terms on the board end in November.

Dries Buytaert moving from Chairman to Founding Director position

One of the key announcements made during the meeting came from Dries Buytaert, who announced that in response to the Community Discussions findings, he is stepping down from the Drupal Association Chairman position. He will remain on the board in the Founding Director position.  This will go into effect in November when board seats expire and Adam Goodman will step into the role as interim Chairman, which is also in response to the community’s request for a neutral, outside expert to lead the board. To learn more about the Community Discussions, go here.

Adam Goodman is a leadership professor from Northwest University in Chicago, Illinois, USA. He's advised the Drupal Association on and off for the past 8 years, helping us evolve from a volunteer board to a strategic board. In this role, Adam will further evolve the board so it can orient itself around a new chairman structure.

Since Adam is a paid consultant, the Drupal Association needs to change its bylaws to allow Adam to sit on the board and be paid for his service. In addition to this change, we are doing a general update of the bylaws to include:

  • Eliminate non-existent committees like the HR committee

  • Modernize the tools we can use for online voting. Today we can use teleconferencing, but we also need to be able to use video conferencing.

To learn more about this board meeting, please watch the recording and stay tuned for an update on other improvements we are making in response to the community’s input.

Categories: Straight From Drupal

Drupal Association blog: Status of Speaker Agreement Violation

Feeds from Drupal.org - Thu, 2017-10-19 17:36

Our community does amazing things together and they deserve to have the best working environment for collaboration. At the Drupal Association, we strive to create these open and collaborative environments at DrupalCon and on Drupal.org.

We recently became aware that a community member violated our speaker agreement at DrupalCon. The Drupal Association removed the video from the DrupalCon event site and the Drupal Association YouTube channel and we are determining additional actions. The community member acknowledged that they broke the speaker agreement and is cooperating with the Drupal Association as we take action.

We apologize that this content was shared. It didn’t create the best environment for our community to thrive and we will do better. We are looking at ways to enhance our process to avoid situations like this from happening again.

We also heard from the community discussion findings that were provided this summer, that the community needs a better understanding of the roles and responsibilities for volunteers that work on Drupal Association programs. The Drupal Association is working to define what is expected of each role and policies for managing situations when expectations are not met. We are working on developing a clear outline of these and you can expect to see them finalized by February 2018.

Categories: Straight From Drupal

Drupal Association blog: Status of Speaker Agreement Violation

Planet Drupal - Thu, 2017-10-19 17:36

Our community does amazing things together and they deserve to have the best working environment for collaboration. At the Drupal Association, we strive to create these open and collaborative environments at DrupalCon and on Drupal.org.

We recently became aware that a community member violated our speaker agreement at DrupalCon. The Drupal Association removed the video from the DrupalCon event site and the Drupal Association YouTube channel and we are determining additional actions. The community member acknowledged that they broke the speaker agreement and is cooperating with the Drupal Association as we take action.

We apologize that this content was shared. It didn’t create the best environment for our community to thrive and we will do better. We are looking at ways to enhance our process to avoid situations like this from happening again.

We also heard from the community discussion findings that were provided this summer, that the community needs a better understanding of the roles and responsibilities for volunteers that work on Drupal Association programs. The Drupal Association is working to define what is expected of each role and policies for managing situations when expectations are not met. We are working on developing a clear outline of these and you can expect to see them finalized by February 2018.

Redfin Solutions: Pulling Salesforce Data in as Taxonomy Terms in D7

Feeds from Drupal.org - Thu, 2017-10-19 16:27
Pulling Salesforce Data in as Taxonomy Terms in D7

Salesforce Suite is a group of modules for Drupal that allows for pulling data from Salesforce into Drupal, as well as pushing data from Drupal to Salesforce. The module api provides some very useful hooks, including the _salesforce_pull_entity_presave hook implemented by the Salesforce Pull module. In this blog post, we’ll look at using that hook to pull three Salesforce custom fields (select lists) into Drupal as taxonomy terms in three vocabularies.

Christina October 19, 2017
Categories: Straight From Drupal

Redfin Solutions: Pulling Salesforce Data in as Taxonomy Terms in D7

Planet Drupal - Thu, 2017-10-19 16:27
Pulling Salesforce Data in as Taxonomy Terms in D7

Salesforce Suite is a group of modules for Drupal that allows for pulling data from Salesforce into Drupal, as well as pushing data from Drupal to Salesforce. The module api provides some very useful hooks, including the _salesforce_pull_entity_presave hook implemented by the Salesforce Pull module. In this blog post, we’ll look at using that hook to pull three Salesforce custom fields (select lists) into Drupal as taxonomy terms in three vocabularies.

Christina October 19, 2017

OpenAgenda connector

Latest Drupal Modules - Thu, 2017-10-19 15:09

This module allow you to automatically publish, update or delete content on OpenAgenda through the OpenAgenda API.
OpenAgenda is a free service to reference and broadcast all your events.

Requirements

This module requires the following modules:
Rules
And you need an account on OpenAgenda where to push your events.

Categories: Straight From Drupal

Pages

Subscribe to My Drupal aggregator