Category Archives: Uncategorized

3 recommendation on software management

Contractor is not an employee

Everybody knows that contractors are cheeper, hard worker and more flexible than the average employee. Is not a rare case that they are working with a 3-6 months contract for 8-10 years on the same customer. It is great for the contractor’s mood being extended so long but is not a good sign then the maximum foreseen contract is 6 months. A the end is this a good management strategy? Probably the problem needs to be found beyond the pure fact of having short contracts, however If you need somebody for such a long time, it means his role goes beyond the 3-6 months contracts.

Of course is never easy to predict what the demand is going to be but after certain time, is clear what the vision and the strategy are. Moreover what are you going to do after your 10 year’s contractor is leaving? During these years he gathered a deep knowledge on the business, on the people and on the environment that is going to be hard to replace. I would recommend to keep as maximum 5 years time after that you consider to inglobate the contractor (in Europe, after 3 years of short term contracts the employer is obligated to hire the person with a permanent contract).

In software management, is normally best practice, well used, to use contractors for development, to train new employees or to make innovation analysis on new technologies. You should not use contractors for maintenance jobs.

If you are a good manager, you should find budget to bring through your good ideas and make your contractors happy to play with new cool stuff. :)

Never buy from the same Vendor. Competition is the key to keep control

Contract management. Enterprise companies and organizations are normally purchasing services and competences from a set of limited selected vendors that have won a tender and are fulfilling certain requirements. Outsourcing: well known and widely used approach to cut costs maintaining or gain flexibility. Sometimes is outsourced only certain part of the company, sometimes most services. Budget apparently is smiling, but there are some important risks.

Especially with big vendors, there is a risk of loosing control and quality over contract. A well know practice is to request an extension to “finish once for all the product” when the budget is already finished, the deadlines are missed and you, manager, start sinking in the shit. In these moments, is always cheaper (and easier to justify) to keep the same bad quality vendor and try to really finish the project before the budget, hopefully. There are never guarantees.

Market and Competition are the key. Buy from different vendor and make them compete to deliver better quality. If you successfully make it, you will gain control and you will simplify the replacement of people, if needed. This is indeed not an easy achievement, especially because in this system, vendors always make team among themselves in order to maximize the common benefits and try not to compete.

A good manager is going to give to any company the same possibility and opportunities to get visibility and to struggle to delivery in time and with quality. After one year is possible to judge and evaluate the performances of any vendor and make a priority list in order to give more to whom gives you more.

Don’t ask or impose people to decommission themselves

Every software developer is proud of what have written. No matter what they say, this is the reality. This attitude is present in any of us, but is more accentuate on junior programmers.

If you have the mandate to rebuild or replace some legacy project or application, you should never ask to do that to people that have worked there for more than 2 years. There isn’t only the fact that we are “touching their stuff“, but we are also threatening the position they have right now. The obvious consequence is a lot of resistance and contrast on your way to get your mission through.

Asking them is therefore neither a good nor an efficient solution. Is more likely not going to work.

What is more problematic here is definitively your position: on one side you have your boss, asking you to get rid of these legacy applications and on the other side a bunch of angry people blaming you for what is happening to them.

If you want to do it right, and in time, you have to invest some money (migration are expensive, not a news). I personally would create a team (not bigger than 5 people, but depends) with basically three different roles: 1 business expert (or Product Owner), 1 technical lead and developers (50 % of them can be an offshore team after the first 4/6 months). The legacy team would be in charge of the legacy documentation, and to support the new team on the implementation. They  would communicate only with the business expert.

Bear in mind that this idea is just a rough set of thoughts, is mostly based on my experience and should not taken letter by letter, depends case by case. The message I want to bring is to never ask people to decommission themselves.

Il Giornalista

I commenti piu` autorevoli:

Anche a diversi anni di distanza la divulgazione di questi contenuti rimane impervia; infatti il video è vietato negli Stati Uniti, Territorio di Guam, Isole Vergini statunitensi, Isole minori periferiche degli Stati Uniti, Marianne settentrionali e Samoa Americane.

Uno dei migliori pezzi del cinema Italiano che non ha mai visto il buio delle sale. 

Agile #2 – Kanban vs Scrum – Myths and Truths

After an introduction on Kanban, in this second article I will try to make some evaluation of Kanban, taking Scrum as reference which is a methodology I consider myself experienced. I want also to emerge some myths and truths that are flying around. Personally I have been using Scrum for almost three years in the same project (in a definitevly non-agile organization – with all the difficulties implied). in 2011 I became Scrum Master certified.

Before start reading, be aware that this article doesn’t aim to support one or another agile methodology. I’d like to share some thoughts coming from my experience.

Let’s talk about Scrum. From Wikipedia: Scrum is an iterative and incremental agile software development method for managing software projects and product or application development. Scrum has not only reinforced the interest in project management, but also challenged the conventional ideas about such management. Scrum focuses on project management institutions where it is difficult to plan ahead. Mechanisms of empirical process control, where feedback loops that constitute the core management technique are used as opposed to traditional command-and-control oriented management. It represents a radically new approach for planning and managing projects, bringing decision-making authority to the level of operation properties and certainties.”

Scrum methodology

Scrum also define three main roles: Team, Scrum Master, Product Owner with different responsibilities and duties. If you want to know more about Scrum this page contains good description and explanation.

Kanban and Scrum, two different models, two different origin, a common goal: deliver business value.

To achieve the same goal, Kanban and Scrum use different approaches, and they can be effective on different contextes. Let’s see some myths and truth about my experience with Scrum and Kanban:

Myth #1: ${methodology} gives better visualization of the workflow and the problems can be better identified. This is not true, if the problems are not visible on the board means the board is not correctly designed. Change the board instead (e.g. add more columns).

Myth #2Scrum is harder to adopt, because has more rules and is more restrictive, Kanban is easier and can be adopted step by step. Indeed Scrum has more rules, but nobody stops you to adopt Scrum gradually or only partially. For example you could start having stand-up meetings every day. Adopting the full implementation of Scrum require just a bit more training than Kanban.

Myth #3Repeated daily meetings are part of the waste generated due to communication overhead. I think in every environment the communication is one of the failure point. The benefit of having daily short meetings is enforce everybody to be informed about what is going on in the team. Believe me, desk-mate sometimes are not talking. 15 minutes must be the maximum time for a stand up meeting for a 7/8 team’s people.

Truth #1Kanban works better in a maintenance team. In maintenance mode, the team has to guarantee a constant lead-time (time from when the ticket is open to when is closed). The input throughput is not predictable and is subject to high variability. The focus is not the delivery before a certain date (end of the iteration) on tasks coming with variability therefore Kanban is surely a better choice.

Truth #2: Scrum works better in a development team. Where the focus is to delivery incremental features within sprint boundaries, Scrum gives to the team better visualization of the short-term and final goal. Kanban has the concept of fixed delivery date, and can be adapted, but Scrum comes naturally as the best choice for this case.

We can stay talk for hours to see the differences, but the real truth is that both can be adapted to basically any kind of situation. The real problem is not the method itself but the maturity of the organization. That’s the crucial point! Maturity of the organization doesn’t mean only maturity of the management, but also maturity of external teams, procurement, test teams, etc however most of the big organizations are still behind the schedule, and they are starting slowly to move out from the old waterfall approaches.

For sleepless nights: Scrum vs Kanban:  is an interesting book, written by Henrik Kniberg that explain how Scrum and Kanban are related and can be used together.

20121025-225739.jpg

    20121026-221831.jpg

20121026-221654.jpg

In due giorni cosa mi sono mangiato?

  • Mozzarella di bufala campana
  • Focaccia casereccia fatta in casa
  • Focaccia alle olive
  • Strudel tirolese fatto in casa
  • Petto di pollo impanato al vino con piselli e patate
  • Riso ai frutti di mare (non in figura)
  • Insalatona (non in figura)

Questa si che e’ vita! :-)

Agile #1 – Kanban

I have finished to read the book Kanban from David J. Anderson and I want to share some thought and comment about it. At my current project (non agile organization) we are approaching the Kanban methodology after some years of Scrum.

First of all… If you don’t know what Kanban is, next paragraph is for you :) .

What is Kanban? Well, I could try to give my own definition, but would be wasted time, so here a comprehensive and complete definition found on Wikipedia“The name ‘Kanban’ originates from Japanese, and translates roughly as “signboard”. Kanban traces back to the early days of the Toyota production system. Taiichi Onho developed 1940/1950 kanbans to control production between processes and to implement Just In Time (JIT) manufacturing at Toyota manufacturing plants in Japan. The Kanban method as formulated by David J. Anderson is an approach to incremental, evolutionary process and systems change for organizations. It uses a work-in-progress limited pull system as the core mechanism to expose system operation (or process) problems and stimulate collaboration to continuously improve the system. One example of such a pull system, is a kanban system, and it is after this popular form of a work-in-progress, limited pull system that the method is named.”

If you want to know more about Kanban, you should indeed start from the latter and read the book of David J. Anderson – easy to understand – although from the total 250 pages, most of the concepts could have been explained within half.

The whole definition seems complicated, but in practice is quite simple. There is a lot to learn on the relations around the team (customers, external teams) which is more complicated to manage (depending on the nature of the organization you are working for), but the principles to be applied within the team are quite straightforward:

  • limitation WIP (work in progress)
  • continuous delivery
  • continuous improvement

Despite the fact that this book is considered the main reference for the Kanban experts and followers I have found it too verbose. It is full of examples coming from personal experience of the author or people close to him. I do not think that experiences explained in books are as effective as in a speech or a course: while talking face to face, you can easily choose the right piece of your experience that better fit the topic you are covering, or the answer you are answering. Examples on a book should be referring on something else, for example on chapter 17, when is referring to the bottleneck created by a bridge/ferry on the 3 lines highway.

I’ve also found some free sarcastic comments about the “Scrum’s advocates” that were unnecessary.

In the next article we will see some truth and myth around Scrum and Kanban.