Los proyectos suelen empezar con un ritmo de desarrollo muy rápido. A medida que maduran van perdiendo velocidad hasta que llega a un punto en que el coste y tiempo de añadir funcionalidad es extremadamente elevado.
En esta charla @luisrovirosa nos habla, desde un punto de vista técnico, cómo podemos diseñar y desarrollar el producto para aportar valor al final de cada sprint. Para ello muestra ejemplos de cómo hemos simplificado un producto y las prácticas que hemos utilizado para mantener la velocidad de desarrollo y la deuda técnica bajo control. También hablaremos del coste de cada una de ellas.
Algunas de las técnicas son el vertical slicing, simplificar, test driven development, refactoring y automatización de la infraestructura.
25. /** @test SocketIoClientTest */
public function retrieves_the_message_after_sending_it()
{
$client = $this->client();
$sentMessage = ['key' => 'value'];
$client->send('aChannel', $sentMessage);
$retrievedMessage = $client->read('aChannel');
$this->assertEquals($sentMessage, $retrievedMessage);
}
Integration test for frontiers
26. /** @test */
public function its_possible_to_call_next_customer_
_when_the_employee_is_logged_in()
{
$this->loginAsEmployee();
$this->makeGetRequest('/callNextCustomer);
$this->assertResponseIsSuccessful();
}
Smoke testing for
controllers and view rendering
34. use GuzzleHttpClient;
use MyProjectDomainHttpClient;
class MyGuzzleHttpClient implements HttpClient
{
private $client = new Client();
public function get(string $url): string {
return $this->client
->get($url, $this->defaultHeaders())
->getBody()
->getContents();
}
Adapter pattern