Saturday, 31 December 2016

Blueprint... o como quiera que se llame esto en 2017

He estado estos últimos meses ocupado intentando dar forma a un montón de ideas sobre qué hacer con el blog, posibles cursos de formación de las que ya te hablaba hace algún tiempo en la entrada Curso de Scrum Agile 101 y otras ideas sobre aplicaciones en la nube o coaching/mentoring online a través de Skype o algún otro sistema de vídeo conferencia.

Estas ideas se resumen en estos puntos que podrían convertirse en gérmenes de nuevos proyectos si veo el interés suficiente:
  • Web de formación online para la venta de cursos online sobre Agile, gestión de proyectos, gestión de recursos humanos, Lean Management o gestión a secas. Crearía una nueva web que podría llamarse Blueprint en la que mediante pago por Paypal recibirías enlaces a los contenidos que cree sobre estos temas. Veo aún pocas respuestas al cuestionario online para conocer más sobre el posible interés de los asistentes a los cursos ¿Se animan ahora a contestarlo haciendo clic en el cuestionario sobre formación online?
  • Web de asesoramiento online a través de sistema de vídeoconferencia como Skype o algún otro. Podría ser un complemento a la solución anterior en la que alguien o alguna empresa decide pagar por formación o asesoramiento más especializado al que se incluye en un curso genérico. En este formato se podrían resolver dudas o tratar problemas específicos que alguien podría tener cuando está implantando Scrum o tratando de llevar una gestión ágil de sus proyectos o empresas.
  • Nuevos libros que tengan el denominador común 'Buenas prácticas en...', por ejemplo, Buenas prácticas en el desarrollo de software o Buenas práctica en la gestión. Este último libro podría ser una segunda parte del libro Gestión práctica de proyectos con Scrum pero tener una visión más global a toda la gestión (recursos humanos, lean management, etc.) y no sólo a la gestión de proyectos software.
  • Aplicación en la nube para vender en formato de pago por uso a distribuidores o vendedores de productos en tiendas comerciales. Muchos de ellos aún usan un bloc de notas para tomar el pedido que le hacen sus clientes y que luego van de vuelta a su almacén a dejar la nota para preparar el pedido y llevar después la factura junto al pedido que se entrega al cliente. Ya existen sistemas similares pero con éste trataría de apostar por sencillez y economía en el presupuesto. Consistiría en una aplicación web que, desde el móvil, permita al vendedor tomar nota del pedido y que cuando llegue al almacén esté ya preparado y anotado en el sistema backend (también web). Habría que tener muchas cosas en cuenta como por ejemplo la integración con el sistema de contabilidad o de ventas que ya tengan o el sistema de impresión de albaranes o facturas (podrían ser simples pdfs).
Como ven muchas ideas para llevar a cabo y poco tiempo. 2017 se me va a quedar corto para todo esto. Ya estoy dando forma a algún curso de Scrum y haciendo sondeos con algunas empresas con comerciales o vendedores en la calle que puedan estar interesados. Si me dejan su opinión en los comentarios a esta entrada me ayudarán a saber cuáles son los sistemas en los que la gente podría tener más interés.

La idea de llamar a todos estos proyectos/empresa/startup como Blueprint viene de que en inglés los bocetos o esbozos de un nuevo edificios o el diseño ingeniería de un nuevo producto se hacía con tinta azul por lo que a esos dibujos se les llamaba blueprints.


Sunday, 23 October 2016

Small start-ups

Ana had been laid off from a software-development company. After some time thinking about it, she managed to convince David and Alberto to join her in a project they had been discussing since college: founding their own company to develop software.
They were lucky that their first client soon appeared. It was a dairy-distribution company that had decided to give them a chance. The Head of IT in their area knew them from their previous jobs, had good references about them, and thought that it would be a wise idea to increase their vendor database by including a young local company. He would give them a small, non-vital project. If it worked well, many more would follow.
Ana, David, and Alberto did not consider it a small project at all. They had no experience managing projects of that size on their own, and were afraid they would “choke” on it. They had offered a very low price to build a stock-control tool, so they had to be very competitive if they were to make money with the budget they had.
There was also another added risk. The international consulting company that normally developed software for the client would be a hard opponent to beat. If the project went wrong or was late, the stock-control tool would end up being integrated as one more module in the ERP that the consulting company had already deployed for their client.
Ana and her partners decided to follow an Agile methodology like Scrum to try and reach the level of efficiency that would help them succeed in their first project. They knew that if they spent too long analysing possible features and then spent months and months implementing them, the project could be cancelled as the client would not be able to see short-term results. Their main target was to get something into production as soon as possible: something useful for the client, even if it didn’t have all the requested features.
With this idea in mind, they started to develop their software. Every 2 weeks they showed the head of IT and the warehouse managers what has been accomplished during the previous fortnight. It looked good, but the company hadn’t started to use it yet, so they didn’t know if it would work or not.
Soon Ana suggested deploying a pilot version to production, one with a pilot version that would allow them only to add new stock, to record stock entries and withdrawals, and to draft a simple stock report. There wouldn’t be any complex functionality that would foresee demand or any SMS alerts when the stock for a given product was low.
When warehouse workers started using the new application, doubts arose, but also it became clearer what was useful and what wasn’t. After so many meetings, no one had thought that it would be useful to add a history of the product’s delivery so they would know how far in advance a product should be ordered before they ran out of stock. Or that the order screen should include current orders of the same product, to avoid duplications in ordering.
The next items on which to work were quite clear now. Also, they constantly received new application-improvement requests. They had seen that if they integrated the warehouse-management tool with the invoicing software of the delivery vehicles, they would avoid typing every product twice, once for each system, which would save them lots of time and errors. This was not foreseen from the beginning, but they reached an agreement. They wouldn’t develop the demand-prediction tool, which would be postponed until a later version was developed, but instead they would add this integration with the delivery agents’ mobile devices.
Cooperating with the client, accepting changes in requirements, and frequent deliveries of working software made the project a success for the dairy distributor. Now, at this local branch, they had a piece of software that did its job and also lightened the load on the warehouse workers and the delivery salespeople. They heard about the project in the Madrid headquarters, and were considering implementing it in other locations. Who knows, maybe this would mean a new project for Ana, Alberto, and David’s start-up.

You can find texts like this and many other about how to manage agile projects in my book Agile 101: Practical Project Management (available on Amazon).

Book on Scrum: Agile 101, Practical Project Management
Agile 101 - Practical Project Management
Translation by Begoña Martínez. You can also find her on her LinkedIn profile. Proofreading by David Nesbitt.

Friday, 21 October 2016

Too small to fail

Kaizen, or continuous improvement, is a well-known term in business or industrial organization. It’s now spreading widely in every sector of the economy, but it also applies in social life or medicine. This philosophy arose in Japan. Their industry had  productivity and quality problems after the end of World War II. They looked for solutions, and brought experts such as  Deming. Yes, the same Deming of ITIL and the “plan-do-check-act” Deming cycle. His mission: training hundreds of professionals and engineers in quality and improvement systems. These methods had already been applied in the USA. But Japan developed them and improved them. They refined them to such an extent that years later they could return them to the Americans themselves as new work philosophies.
The principle behind Kaizen is to carry out small continuous improvements. The results of those changes are analysed and the fine-tuning resumes. In that way  the productivity or quality of the task being performed can be improved. Making small changes little by little is far more effective than trying to tackle everything in one go. This way you avoid the fear of big change—and the procrastination that normally goes with it —when faced with the idea of starting a transformation. These small adjustments, done continuously, end up becoming a habit and generating permanent results.
The idea is to make changes so easy that it would be hard to fail in their implementation. First we created the habit of changing. Then we add new changes or nudge the milestone of a change a bit further, so we can improve incrementally. It’s important to apply adjustments one by one. The idea is to avoid the complexity of choosing what to apply and when. That way we will be able to analyse the result of each of these minor improvements. If we apply several at the same time, we won’t know which one has worked and which hasn’t. Or whether the effect of one has cancelled out another.
In your project you can decide to deploy every SCRUM, TDD, unit testing, continuous integration, and so on and so forth all at once. But probably the only thing you’ll manage to do will be to drive your team crazy. Yes, all those practices are good for your project, but, are the most basic ones working? Do you have good version control? Are you delivering software every two weeks? It’s better to start by the simplest ones or the ones that you consider most effective to improve your situation. Then you will be able to add the others.
Even far away from the field of software, there are companies that use Kaizen and Lean techniques in production. Take, for example, SPB, manufacturers of household brands like Bosque Verde in Spain. Their industrial manager declares:
“SPB has improved its productivity by 15% without investing in new machinery or carrying out staff cuts. The systems we have applied have enabled our company to reduce our expense accounts from 15 to 25%. We have improved our raw-materials management by 45%. And we have reduced the stock period of our product to eleven days.”
SPB had foreseen that to improve, they would need great investments and opening new factories in northern Spain. But instead they have focused on improving their productivity plan.
We can apply such changes to improve our health or personal life too. If we have always wanted to write a book or a blog, we can set out to write 1,000 words a day. But most of us will probably abandon that idea in only a few days. However, if we set out to write just 50, the change will be so easy that it will be hard to fail. First, establish the habit of sitting and writing for 15 minutes a day. Then we can take the challenge further and make it bigger, little by little.
In my case, I have also applied similar techniques, but I’ve hardly noticed. When I published my book it hardly sold at all. For weeks and weeks it had just the few sales I considered F&F (Family & Friends). But I didn’t just park it there and forget about it. I changed it to a different Amazon category. Then I changed the cover. After that, I included some new chapters. Later, I improved the description until I found one that seemed optimal. Some of these changes made my sales increase up to 50% in a week. If I had just left it there, the book would never have reached decent positions in its categories. I would have concluded that the content wasn’t interesting. Or that it just could not sell well without a professional publishing house to support it.

You can find texts like this and many other about how to manage agile projects in my book Agile 101: Practical Project Management (available on Amazon).

Book on Scrum: Agile 101, Practical Project Management
Agile 101 - Practical Project Management

Translation by Begoña Martínez. You can also find her on her LinkedIn profile. Proofreading by David Nesbitt.

Thursday, 20 October 2016

Five lessons learnt in project management

Every time I finish a project, I try to make a balance report for myself. I look at the things that went wrong and the things that went right. The things that I tried and worked, and those that I shouldn’t repeat. Even those times when that final balance came up negative, maybe the project was worth it if in the next one I don’t make the same missteps again. 
I have combed those balances and extracted five of the most important lessons I have learned. Some are beginner’s pitfalls. Others I should have solved by simple logic but matters weren’t so obvious when I was in the middle of things. Here they are:
Agile works
It’s difficult to quantify, but ever since I started using Scrum in my projects, the number of hours spent per feature has gone down —and in my opinion quite considerably so. We were able to gain 80% of Scrum’s advantages with three things. First, the daily 15-minute follow-up meeting. Second, keeping the graph of the state of the project that tells us whether we’re doing well or not. And third, delivering software every the two weeks. Also, every fortnight, clients seemed to feel more comfortable when they received the items that we had agreed on two weeks before. In July and August it was not possible to meet. So every week we delivered a simple two-page document with the percentage of completion of each feature. This document included two paragraphs explaining why those percentages were that way. This helped us to regain credibility in a project that was quite difficult —especially in September when they could check that those percentages were real.
Not everything is positive in Scrum
Being a Scrum Master takes far more work than simply being a project manager. In those daily 15-minute follow-ups you will be told about lots of difficulties that the team needs to overcome before they can continue. Trying to find solutions will take the rest of your morning.
And having a deadline every 2 weeks can be exhausting. You cannot sprint for months. Six months later you start trotting (and that, with luck). You need to take this into account from the first planning meeting on.
Last, but not least, Scrum is not magic. Whatever method you use, you are going to need a team trained for the job at hand, ready to roll up their sleeves and work, and willing to contribute. Teams like this don’t grow on trees. If you have one, your job as a project manager is to get out of the way as much as possible.
Adding more workers to a project that’s behind schedule will only delay it further
This was sufficiently covered a long time ago in the book The Mythical Man-Month. Even so, it’s still necessary to highlight it, as there are hardly any exceptions to this rule. No matter how tight the deadlines are nine women cannot create a baby in one month.
Who owns all this?
No matter what we call it —designating the Product Owner, identifying the stakeholders, engaging them—the end we’re going to need to know who is going to validate the project in real life. And I do not mean who is going to green-light the invoice. You’ll also need to know who is going to use the product. The project will be a success only if, after delivering it, it works and it’s useful.
At some point during the project the area manager gave us all the documentation, validated the partial deliveries, tested the whole application, and congratulated us on our work. Regrettably, when his secretary came into the training session a week before deployment, she said: “that’s of no use to me: that’s no longer the right template, as I need to gather different information now.” This meant a week of extra hours and additional effort, on top of the risk of deploying a product that could be unstable.
Minimum Viable Product
If you already have something that could be helpful to the user, deliver it, deploy it, put it up for sale. Don’t wait until you have each and every one of the features finished. If you remember the Pareto principle, with just 20% of your planned features you’ll be able to cover 80% of the uses that your product will have.

When it’s in production, you’ll be able to get feedback from the users. They know with more precision what they need, and you’ll know where you’ve failed and how you can fix it. If you bet on just one final delivery, you only have one bullet to hit the bull’s eye. If we had done this, it would have saved us a lot of problems with the product of the previous example.

You can find texts like this and many other about how to manage agile projects in my book Agile 101: Practical Project Management (available on Amazon).

Book on Scrum: Agile 101, Practical Project Management
Agile 101 - Practical Project Management
Translation by Begoña Martínez. You can also find her on her LinkedIn profile. Proofreading by David Nesbitt.

Wednesday, 19 October 2016

Lessons learnt

Mistakes are made all the time when we manage projects—at least I have made a few. In this section I will list only some of them. They are the most relevant or the most confessable ones, depending on your point of view. I’ve messed up in many other ways, but this chapter had to have a limit. So, here they are:
First the problem, then the solution
This is the order: first you identify a problem, and then you come up with a solution. Never the other way round. It is quite common to hear about a modern solution that we apply to the project with enthusiasm. No matter whether there was a problem to solve or not. What is the use of deploying the new and sophisticated software for Test Driven Development in our daily work, if your problem with that project is way more basic? Or if you don’t have a tight grip on the version control system?
Counting the steps instead of looking at the road
We all know that in some projects the number of hours spent tends to go through the roof. Only rarely do the predicted number of hours and the actual ones coincide. Our first reaction is normally to double-check every hour registered. Then we draft complex graphs that show us how well we’re doing versus the estimate…. But does this actually help us finish the project on time?
Imagine that someone hired us to carry a heavy load from point A to point B. We estimated that it would take 10,000 steps. What is the use of knowing that we’ve walked 5,000 steps already? Do we know where we are, or if we’ve been going in circles? Wouldn’t it be better to raise our head to see whether we are on the right path? Maybe double check that the road leads from A to B, or see whether there is an easier way to get there?
Phantom requirements
Sometimes we ask our team members to change what they’ve already done because “the client won’t accept it like that.” Or because we think the product should work in some other way. Our colleague had already finished a proposal that took time and effort. It’s better to see whether the client likes it. The client will decide whether it’s right or wrong. Investing time in unsolicited corrections will only delay delivery. Careful, though —this doesn’t mean that we shouldn’t review or check our work for quality before showing it to the client. All I’m saying is: “if it ain’t broken, don’t fix it.
Spreading the need to rush
Project Managers normally work on several projects at the same time. This implies that they juggle several clients, with their needs and deadlines, and thus accumulate tension and stress. Personally I try not to spread the stress to other members of the work team and to supply all the serenity I can. Of course, every team member must be aware of our delivery deadlines and needs to know which job we should finish for each client. Adding the need to rush to the daily routine only brings quality problems in the final product. Or creates things that are only half solved and that you will have to solve for good later on. This will also make us spend double the amount of time that those tasks would have required in the first place.
Could you make it easier?

One of the first mistakes in a project is to start every task as soon as possible without stopping and planning which steps should be part of it, and without determining whether they are truly necessary or whether we could simplify them somehow. I mean not only implementing it in the easiest possible way, but also simplifying the task in itself. Some examples: For this complex system that interconnects several computers…. Isn’t there already some sort of pre-defined standard? Should this parser be able to solve third-order equations? The best way to spend your time is reducing the complexity of the work to be done.

You can find texts like this and many other about how to manage agile projects in my book Agile 101: Practical Project Management (available on Amazon).

Book on Scrum: Agile 101, Practical Project Management
Agile 101 - Practical Project Management
Translation by Begoña Martínez. You can also find her on her LinkedIn profile. Proofreading by David Nesbitt.

Auditoría en Oracle Discoverer

Otro post técnico, en esta ocasión sobre Oracle Discoverer (Oracle Business Intelligence SE One) y cómo conocer, entre otras cosas, qué usuarios trabajan sobre qué libros, con qué frecuencia usan la herramienta, cuando fue usado por última vez un libro o el uso de la aplicación que cada semana hacen los usuarios.

Oracle guarda en las tablas del esquema propietario de la EUL toda la información relativa a los documentos o informes a ejecutar, los datos a utilizar por la capa de presentación y mucha otra información. Estos datos son usados por Oracle Discoverer para hacer una predicción de los queries que el usuario va a ejecutar y poder anticipar los datos a traer de la base de datos para dejarlos en caché por si los solicitase.

En la tabla eul?_qpp_stats se guarda esta información de predicción y es la que se usa en estos ejemplos para ejecutar una auditoría.

Auditoría por usuarios

Como ejemplo, la siguiente consulta muestra el nombre de todos los usuarios que han hecho uso de la aplicación, la fecha de la última vez que la usaron, el número total de veces que la han usado y la media de días entre cada uso:

       stats.qs_created_by AS "Usuario",
       TRUNC (MAX (stats.qs_created_date)) AS "Fecha último uso",
       COUNT (stats.qs_created_date) AS "Nº de veces que se ha usado",
       TO_CHAR ((MAX (stats.qs_created_date) - MIN (stats.qs_created_date)) / COUNT (stats.qs_created_date), '99990.00' ) AS "Media de días entre cada uso"

FROM eul5_qpp_stats stats
GROUP BY (stats.qs_created_by)
ORDER BY MAX (stats.qs_created_date) DESC

Auditoría por documentos

Con esta otra consulta SQL es posible obtener un listado de los informes/reports creados por los usuarios y guardados en la base de datos, el nombre del usuario que los creó y la fecha de la última vez que fue ejecutado el documento (los informes sin estas fechas son informes que nunca fueron lanzados después de guardar):

       DOCS.DOC_CREATED_BY AS "Usuario",
       DOCS.DOC_NAME as "Informe",
        WHERE DM.QS_DOC_NAME = STATS.QS_DOC_NAME) as "Última ejecución"

Auditoría por semanas

En esta consulta se obtiene la lista de usuarios que usaron la aplicación cada semana y el número de veces que lo hicieron. Para cada usuario se muestra:
  • Año al que corresponde la semana.
  • Fecha del lunes de esa semana.
  • Fecha del domingo de esa semana.
  • Usuario que usó la aplicación esa semana.
  • Número de veces que ese usuario usó la aplicación en la semana.
La consulta sería la siguiente:

       TO_CHAR (stats.qs_created_date, 'yyyy') "Año",
       TRUNC (stats.qs_created_date, 'day') "Lunes",
       TRUNC (stats.qs_created_date, 'day') + 6 "Domingo"
       u.nombre "Usuario",
       COUNT (stats.qs_created_date) "Nº de usos" 
FROM eul5_qpp_stats stats, usuarios u
       TO_CHAR (stats.qs_created_date, 'yyyy'),
       TRUNC (stats.qs_created_date, 'day'),
       TRUNC (stats.qs_created_date, 'day') + 6,
       TO_CHAR (stats.qs_created_date, 'yyyy') DESC,
       TRUNC (stats.qs_created_date, 'day') DESC,
       TRUNC (stats.qs_created_date, 'day') + 6 DESC,
       u.nombre ASC 

Tuesday, 18 October 2016

The engineer and the bridge

In the 5th century BC, a certain Roman engineer was appointed to direct the construction of a bridge over the river Leza. The bridge was important for the area. People and goods would be able to use it to cross the river, saving time and avoiding travelling long distances looking for a safe place to ford the river.
The engineer received this appointment with great enthusiasm, and went on to plan an estimate for everything that would be needed for the construction. He calculated how many builders, cranes, pulleys, scaffolds and centrings would be necessary. He could clearly see that with 50 builders the bridge could be finished in 4.7 years.
With the 600,000 sestertii that he had received to execute this assignment, he quickly bought all the necessary materials according to his calculations, and had them delivered to the construction site. He recruited the 50 builders he had estimated he would need and sent them to the river bank to start work at soon as possible. There was no time to lose. The sooner it was begun, the sooner it would be finished.
Soon, however, the workers told him that they didn’t need so many pulleys and cranes, but that there weren’t enough pickaxes and saws for the job. “I can’t do anything about that,” said the engineer, “most of the money has already been spent and there isn’t much left to buy new materials. You’ll have to adapt to what we’ve got.
The construction went on, and soon afterwards it became clear that things weren’t going as planned. The foreman told the engineer that the stone quarry where the stone was being cut was too far away, and that the road was full of bumps and potholes from last year’s flooding. It just took too long to bring the stone in carts to the bridge. “You’ll have to make an extra effort,” said the engineer, “there’s no time now to fix the road.
The foreman also informed the engineer that it would be necessary to build arches in the bridge, to reduce the amount of materials used, and, most of all, to improve its resistance. “There’s no time for frills,” said the engineer. “We’re late. We’ll add a little extra mortar in the pillars, and that’ll be it.
The news about the construction of the bridge came to the Prefect’s ears. He despaired when he heard about how slowly the work was progressing, so he sent for the engineer. The Prefect needed to justify his actions in Rome, and demanded that the bridge be ready for Saturnalia. The engineer explained that, in order to achieve that, he would need at least another 50 workers. As he was also pressured from above, the Prefect agreed and committed to send the new workers a month later.
Back at the bridge, the engineer gathered all the builders and asked them for an additional effort to comply with that new deadline. The workers could not understand how were they to work twice as fast if they didn’t have enough stone, and in any case they always had to wait for the mortar to set.
Not even with the new workers could the bridge be built on time. There weren’t enough tools for everyone, the stone was still slow reaching the worksite, and collapses were common because of the hurried construction process.

In ancient Rome, a bridge’s builders had to stand underneath it while an entire legion crossed it. It’s a good incentive to build firm, solid bridges, don’t you think?

You can find texts like this and many other about how to manage agile projects in my book Agile 101: Practical Project Management (available on Amazon).

Book on Scrum: Agile 101, Practical Project Management
Agile 101 - Practical Project Management
Translation by Begoña Martínez. You can also find her on her LinkedIn profile. Proofreading by David Nesbitt.

Lessons learnt from others

An old Spanish saying says “no one learns a shred from another person’s head.” But let’s try it anyway by reading some experiences other people encountered while managing projects.
In the previous section I’ve told you about my own mistakes in managing projects. In this section I will tell you about the main lessons Jeff Sutherland learned while helping companies like Nokia, Patient Keeper or even Google to adopt Scrum:
In Google, some of the teams adopted Scrum little by little. They did this because they feared resistance from their engineers. They thought that introducing a formal process in teams that were already highly productive would not speed them up but slow them down. They started implementing Scrum using only the most basic techniques. If Google can do it, why can’t we?
In Google, they also had a certain resistance to meeting daily. They thought it would be time spent in vain. They started with meetings that lasted a good deal longer than the initial 15 minutes. At first each engineer took quite a long time to explain what he or she was doing and the problems being faced. After a while, when all the members had explained their job and were aware of the job of the rest of the teammates, the meetings were much more fluid and helpful. To my relief, in their simplified, initial Scrum, they didn’t use a burndown chart for every iteration. They used only one per delivery. That made me feel better. I hadn’t been able to keep the Kanban board updated daily for each sprint (yes, I know, Scrumbutophobia).
The burndown chart helped them realise how long they would spend in developing a feature. For a feature that they initially estimated at 40 points and 3 weeks, they saw that in the first week they had covered only 8 points. In the second week they managed to finish only 7.5 points. But one of the managers thought that they had the feature ready in the third week. Then the graph made it clear that it wouldn’t be ready in that amount of time.

Jeff Sutherland recalls a project for the health sector which would be accessed online simultaneously by hundreds of doctors and other users. In that project, the definition of Done became more and more stringent. At first, they just had to pass the unit tests and acceptance tests. But later on, for something to be really marked as Done or Finished, it had to meet this condition: “deploy to production, and if the phone doesn’t ring for 1 hour, the new delivery is complete.

You can find texts like this and many other about how to manage agile projects in my book Agile 101: Practical Project Management (available on Amazon).

Book on Scrum: Agile 101, Practical Project Management
Agile 101 - Practical Project Management
Translation by Begoña Martínez. You can also find her on her LinkedIn profile. Proofreading by David Nesbitt.

Monday, 17 October 2016

Curso de Scrum Agile 101

Tengo pensado lanzar pronto un curso de Scrum/Agile pero no tengo decididos aún formato en el que lanzarlo o los contenidos exactos que tendrá. Quiero que sea un curso sobre todo práctico y que incluya cuestionarios después de cada tema, hojas de trabajo en las que se planteen problemas o ejercicios para asegurarme de que se entiende cada una de las ideas que se explican y plantillas para las reuniones diarias, las gráficas burndown o la comunicación con el cliente.
Cuando uno intenta plantear un curso de este tipo el primer problema con que te enfrentas es si debes orientarlo a personas que ya tienen un cierto conocimiento de Scrum o Agile porque Scrum lleva ya un tiempo en el mercado o bien crear un curso más sencillo en el que los profesionales que aún no se han decidido a implantarlo en sus proyectos tengan una guía con la que iniciarse en esto de Scrum.
Al terminar el curso quisiera que los participantes hubiesen aprendido:
  • Los roles y artefactos mínimos para una implantación gradual de Scrum.
  • Roadmap para avanzar en la implantación de Scrum.
  • Las ventajas y razones principales para usar Scrum.
  • Las dificultades más importantes a la hora de implantar Scrum y cómo resolverlas
  • Cómo sacar el máximo partido a Scrum.
También hay otras muchas cuestiones como si se prefiere que los contenidos sean de sólo texto o contenga también vídeos, si se quiere incluir asesoramiento personalizado via email o videoconferencia o descuentos por grupos para empresas. Para intentar resolver todo esto he creado un pequeño formulario/encuesta en la que puedes ayudarme a saber qué puede hacer más interesante para ti un curso como éste. En la siguiente dirección tienes un enlace a la encuesta: Encuesta Curso de Scrum Agile 101. Tienes tres minutos y me ayudas a saber qué puede ser más interesante para ti? Gracias!

Sunday, 16 October 2016

The 80/20 Rule

How can we avoid featuritis and concentrate just on the tasks that will make us more efficient? Many years ago, approximately a century ago, someone called Pareto realised that 20% of the pea pods in his garden amounted for 80% of his crop. The remaining 80% of his pea pods amounted to the other 20% of his pea crop. Intrigued by this ratio, he also checked that he could use this rule to other fields. He went on to discover that, back then, 20% of the population had 80% of the income. The remaining 20% of the wealth was in the hands of the poorest 80% of the population. This principle, based in empirical knowledge, has been in use since then. It helps improve efficiency and productivity in economics, commercial distribution, marketing, engineering, and, naturally, in software development.
For example, we start to develop our product with a huge list of requirements and features as a base. Yet we know that only 20% of those features will be used 80% of the time. A large chunk of the remaining features will only be used 20% of the time. We can apply this principle to development time. Using it, we can deduce that if it takes us about 10 months to build a product, in 2 of those months we will be able to develop 80% of the features. Thus it would take us about 8 months to solve the remaining 20% of the most complex and difficult features. This leads us to ponder: will people use these features? Are they really indispensable?

Say we manage to identify the most important features, and we keep them as simple as we can. Wouldn’t we be able to dispense with 8 months of work and deliver a highly effective product in 2 months only? We already know that 20% of our effort will produce 80% of our results. Wouldn't it be worthwhile to sit for a moment and think for a bit about what we should devote our time to? I’m sure it would.

You can find texts like this and many other about how to manage agile projects in my book Agile 101: Practical Project Management (available on Amazon).

Book on Scrum: Agile 101, Practical Project Management
Agile 101 - Practical Project Management

Translation by Begoña Martínez. You can also find her on her LinkedIn profile. Proofreading by David Nesbitt.

Sunday, 9 October 2016

Keep it Simple from Agile 101 book

Some time ago, I had a conversation with an IT colleague, about the sector nowadays. Something reminded me of an Andrés Diplotti cartoon I'd seen on Google+. In it you could see a client reviewing the application that the programmer had delivered. The client says : “It’s all fine, but I don’t see a Cancel button”. The programmer replies: “I don’t program for cowards who cancel at the last minute.”
I’ve been a programmer for a long time. I’m still a programmer, in part. So I can recognize this kind of arrogance (maybe not to that extent). I suppose that it’s a sin of my youth, a brashness that’s been mellowing with age and that some of us already felt in college.
Back then I had just discovered software-design patterns in the book The Gang of Four. Our applications started to be filled with design patterns, the more the better. It looked like we were in some sort of contest. We had to see who used the most obscure, complex pattern —the one that would be the hardest to understand. With this in mind, I can understand the posts and articles I read now. They discuss refactoring old code to get rid of design patterns, and about how expensive it is for some projects.
As the years have gone by, I have suffered the KISS principle (Keep it Simple, Stupid) in my own flesh.  Not just with patterns, but also with the customization of on-screen graphic components. Or with “phantom requirements.” This is a term I once heard from a fellow worker. It refers to those features that no one has requested, but that you consider important for your clients. Things that “most probably” they’ll end up needing. It’s the malady known as featuritis. It makes us think that the more features or characteristics our app has, the more valuable the client will find it.
A long time ago, a client’s project manager commented that someone on another work team had told him that a feature he wanted was impossible. I told him that practically everything can be done, provided enough time is spent on it. I wasn’t clear enough. I should have added: but is it reasonable to use all that time for that feature? You can use practically any programming language to send a rocket to the Moon. But, do you really want to go to the Moon, or do you want a finished app by the deadline?
So, you are saying that my design is too complex?

You can find texts like this and many other about how to manage agile projects in my book Agile 101: Practical Project Management (available on Amazon).
Book on Scrum: Agile 101, Practical Project Management
Agile 101 - Practical Project Management

Translation by Begoña Martínez. You can also find her on her LinkedIn profile. Proofreading by David Nesbitt.