Ajedrez - antoniomartel.com

Archivos de Categoría: English

Agile 101 available for pre order

New ebook, Agile 101, is already available for pre order in Kindle stores worldwide. You can find the link to the Amazon.com page here: Agile 101 – Practical Project Management. Order it now and you’ll receive your copy on 5th of November when it will be finally released.

You don’t need a Kindle device to read it, all it takes it’s to download a Kindle reader app for PC, Mac or Android from Free Kindle reading apps or just start reading in any device typing read.amazon.com in your web browser.

It is the English version of the 3rd edition of Gestión práctica de proyectos con Scrum (Spanish edition) which reached twice number 1 in sales at Amazon Spain (across all genres), and remained in the Top 100 for five consecutive days.

With Agile 101 you’ll learn:

  • The main advantages and disadvantages when implementing Scrum. The things you should bear in mind and those you should avoid.
  • How to make agile estimates.
  • How to handle the project’s budget while allowing your client to modify the required functionality.
  • The lessons I have learned during my years as a software development professional. I will tell you what I did right but also what I did wrong, so that at least you don’t make the same mistakes I did.
  • Tips and tricks to prepare for the Professional Scrum Master certification (PSM I), so you improve your chances of landing better jobs.
Begoña Martínez translated the book into English. You can also find her on her LinkedIn profileDavid Nesbitt proofread the translation.
Cover and back cover of the new edition have been designed by Alex Caja Almonacid (also cover and back covers of Spanish editions of Gestión práctica de proyectos con Scrum and Certificación Professional Scrum Master – PSM I).

Agile 101 – Practical Project Management

Oracle XE, Forms 6i y un viaje a Ecuador

Hace algún tiempo tuve que realizar una implantación de una aplicación desarrollada en Oracle Developer 6i (Forms y Reports) para un museo. Por razones económicas decidimos utilizar una licencia Oracle Express Edition 10g, pero al intentar arrancar la aplicación accedíamos a ver durante un instante la consola de Windows y se cerraba inmediatamente.

El proyecto se estaba pasando de las horas estimadas para resolverlo y ahora teníamos un problema con el que nadie en la empresa se había topado antes. Consultamos la página metalink de Oracle, foros y páginas sobre desarrollo con Oracle.

Finalmente, tras muchas búsquedas en Google obtuvimos la respuesta al problema en el foro de Oracle Users Group de Ecuador, exactamente en una entrada de Paola Pullas y los comentarios al mismo.

Parece ser que Oracle XE 10g necesita de un parche para funcionar con Developer 6i y además cambiar el juego de caracteres a UTF8. Les indico aquí los pasos que tuvimos que realizar.

Primero, pedirle al DBA responsable de la instalación de la base de se conectara a la base de datos XE como SYSDBA en el sqlplus y ejecutara las siguientes instrucciones para cambiar el juego de caracteres.

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET INTERNAL_USE UTF8;
SHUTDOWN;
STARTUP RESTRICT;
SHUTDOWN;
STARTUP;

Posteriormente fue necesario ejecutar el siguiente parche de Oracle sobre la instalación de Oracle Developer: Parche 18 de Developer, Patch number 4948577.

Espero que esta entrada resuelva el problema a algún desarrollador. Seguro que aún quedan sistemas y aplicaciones que están usando esta configuración.

Upcoming book: Agile 101 – Practical Project Management

New book, new prezi. I have prepared for you a presentation of the upcoming book Agile 101. There you can find a short description of the chapters you can find inside.

Check it out on Prezi site or directly here:

Agile 101: Broken Windows Theory

In the late 1960s, a university professor carried out a psychological experiment. He left two identical cars in two different neighbourhoods. One in a poor, high-crime neighbourhood in the Bronx, New York. The other one in a rich, quiet area of Palo Alto, California. Shortly after it was abandoned, the car in the Bronx started to have all its parts stolen. First the radio, then the tires, the mirrors, and anything of value. Yet the car abandoned in California remained undamaged. The study did not end there. When the car in the rich neighbourhood had been intact for a week, the researchers broke one of its windows. This escalated quickly, and soon afterwards the effect was the same as it had been in the Bronx. Theft and vandalism swiftly reduced the car to its bare bones in both neighbourhoods. A car with broken windows sends out a message of disrepair and negligence. It spreads the notion that anything goes. Every new act of vandalism reinforced and broadcast the idea that nobody was taking care of that car. That nobody cared.

A similar idea can be seen in the training of health professionals. If a patient or an elderly person has a stain, or gets dirty somehow, that person should be cleaned. Even if it’s only a little spot. If patients stay in that state, they will be less careful themselves in keeping clean. They will tend to feel that it doesn’t matter anymore, it’s already dirty. So their general state of hygiene, self-esteem, and thus health level will start to decline.

The results of this psychological study are applicable in many situations of our daily lives: from the care of our home to the maintenance of our car. But they’re also applicable to our jobs. For example, if you’re a programmer or a project manager, and you allow for a new version to be deployed. But you haven’t had it sufficiently tested. Or if you leave that technical “debt” unpaid in the code now —because “we’re in a hurry.” You’d be broadcasting to the whole team the feeling that anything goes. That “it’s enough as it is” and that one can leave quality aside. Sooner or later the phone will ring with complaints from users. Soon we will see a lengthy queue of reported bugs in our queue.

When we apply this theory to software, it’s helpful to explain the term entropy. In physics, entropy is the level of disorder or randomness in a system. Say you see badly indented or commented code. Or a bad choice when naming a variable or some bad design. Fix it as soon as possible or schedule its correction for the near future. Take some sort of action to limit disorder or it will expand. It will create the feeling that any patch or quick fix is valid.

If some code (or thrown-together code) will make your system deteriorate quickly, impeccably written and designed software will have the opposite effect. It will make new programmers avoid breaking something so beautifully built. They will make an effort to put in place the best code they can write. Now you know: make your life and your project easier by fixing broken windows as soon as they appear.

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.

From Agile 101: The role of product owner

Are you sure you need a Clippy-like assistant on your app?

Many titles could be used for the person who acts as Project Director on the client’s side: the person with the product vision that the company needs, the one that represents the company in the work team. If that person belongs to the external organisation that has ordered the work, the title which fits best might be Product Owner, like in Scrum. That’s because that person literally owns it, is the “Owner” of what will be built. If this person belongs to our own organisation—someone who will represent the “client” in the project—the title normally used is Project Manager or even Business Analyst, depending on the company doing the hiring and naming. Personally, maybe because of the type of projects that I normally manage, I’m more comfortable using the title Project Director.

Whatever we decide to call these people, their contribution to a project is key to its success. They decide which features the project will have, which ones are indispensable and which ones are not. Maybe they will be the users of the final project, and thus will have a very clear idea of which elements would be key to create a useful tool that they use daily at work. However, its usefulness shouldn’t be limited to just themselves or their department, but rather it should also take into account the requirements of the whole company.

When we start a new project, the Project Director on the client’s side and the users of the final product have lots of ideas and great expectations about the new system. Sadly, no project, no matter how big it is, accommodate each and every suggestion from its users. Some ideas would be irrelevant for most users, other features might be too expensive to implement, or they would take so long to build that the project would be delayed for too long before being delivered. It’s here where the Project Director on the client’s side, who knows the market well and has a clear vision of the product, will have to prioritise the most important features and discard those that provide less value to the final product.

To explain how far-reaching the responsibilities of Project Directors are, let’s imagine the following. Our company decides to contract the development of a new airline ticketing system. In the company, they have decided that Elena will be the Product Owner or Project Director, and she will have to transmit to the chosen company all the requirements and needs that the new system must deal with.

Elena has a very clear vision of what she wants and is extremely enthusiastic about the project. So are the IT, marketing, and sales department heads, who have prepared an exhaustive list of features that the new product should include. Even in informal conversations, every day the future users of the system make new feature requests. Elena doesn’t want to miss anything important and conscientiously writes down all these requirements in a notebook.

Two months later, Elena realises that the team carrying out the work in the development company is delivering from 4 to 6 new features every week, and this seems to be their maximum capacity. She is happy with the work they are doing, but she has a problem: in her notebook she gets about 10 new feature requests every week. The list is growing and soon she will need a new notebook.

First of all, she asks the work team to double their efforts and deliver 10 features a week. Unfortunately, not many more features are delivered, and worse yet, she can tell that the quality of those features has gone down. On occasion, they even have to stop everything and correct previous deliveries. If things go on like this, frustration and stress will take over the project.

From now on, Elena must decide what should and shouldn’t be done. Not every feature will be included: at least not now. Some will have to wait for future versions. And of course, the idea of including a Clippy-style assistant to the purchase process for flight tickets will get a clear “NO.”

But, which features should she have developed first? Which criteria should she apply? Elena realises that there isn’t a direct relationship between feature cost and value added to the final project. Some features are easy to build, but some others take a very long time to develop while not actually providing a lot of value to the final product. If she asks the work team directly how many days each of those features would take, she will know what was the approximate cost would be. If she asks the users to score importance of each feature from 1 to 5, she will be able to calculate the value for her company.

If there are two features that have the same approximate cost, but one has value 1 and another one has value 3, they will clearly add the second one. If there are two features with approximately the same value for the company, but the first one would be ready in 5 days while the second one would be ready in a few hours, it’s also quite clear which one they should work on first.

Elena knows that the value and cost of each feature aren’t absolute values, but just approximations. We don’t know how much an apple weighs, but we know it’s about 5 times bigger than a strawberry and that people like the strawberry more (at least, the people who will pay for it like it more), so the strawberry would be built first. It’s an easy way to decide what provides more value, faster, to our project.

Communication is one of Elena’s main responsibilities. She must be in contact with the work team, but also with the people in her company who have something to say about the product that is being built. She has to be able to say “no” when necessary: she has to be practical in this sense, making this decision swiftly and directly. And also, she should know her business inside out, to make sure that everything that gets built will actually provide value to the company. I would say that Elena has quite a lot on her plate, 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).

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

Suscríbete

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad