Team Work

There are 590 entries for the tag Team Work

The dimensions of Agile

After hands-on experience with Agile practices, working in Agile environments and attending conferences with Agile experts, I have annotated what I think could be the dimensions of Agile that detail and expand the original motto Embrace Change: dealing with uncertainty managing the unexpected recognizing the unknowns exploring through discovery & invention balancing...

After 10 years of Agile Manifesto, Agile is mainstream, maybe the time has come for the next generation

10 years have passed, bringing successes [1], and bringing new challenges for the next 10 years [2][3][4][5]. Also now, Agile is mainstream. And this can be the major change after these 10 years. Indeed this is something that cannot be changed, controlled or forced into a predefined plan. Instead is something to welcome and to adapt to, searching for the best possible outcomes. This event, Agile that from a minority is turned into a mainstream approach, also has the potential to be a disruptive event, because it can change the game and this could fade away most of the original Agile ideas. For...

Cos'é per te XP ?

Questa é una delle domande rivolte da Andrea Gervasini per la sua tesi sull'Extreme Programming come conclusione della sua laurea presso l'Università dell'Insubria di Varese. Trascrivo qui la risponsta che mi sono dato. Commenti e visioni alternative sono ben accolte :) Cos'é per te XP, la personale visione di cos'è xp tralasciando i libri ? Riconoscere in ogni progetto e sviluppo software quello che sappiamo e anche quello che non conosciamo, non possiamo prevedere e non possiamo controllare. e adattare il nostro modo di lavorare di conseguenza. reagendo, adattandoci, esplorando, trovando l'equilibrio tra cio che possiamo anticipare e cio...

Greed dice game exercise from Ruby Koans

One of the Learn Ruby Koans exercise is about implementing a method that calculate the score of the Greed dice game. A friend reviewed my solution pointing out some conditional expressions that could be avoided (from 3 they are zero now), some state that could be removed (greed_roll_scores is calculated and never changed now), and in the way of the refactoring some duplication (2 similar rules of the games now are both applied with a unique common logic) become evident and I removed it. Here is the resulting score method, I left also the comments with the Greed game description and the...

Ruby custom and automatic attribute accessors

The automatic one: class Foo   attr_accessor :name     def initialize     @name = "no name"   end end The custom one: class Foo   def initialize     @name = "no name"   end   def name     @name   end     def name= value     @name = value   end end Tags :  Team Work | Tools | Progettazione Software | Traduci al ITALIANO >>>

Ruby lambdas and each and enumerators

When I define and assign a lambda like this my_lambda = lambda{ |key, value| puts key, value } can I call an array or hash each method that return an enumerator and pass my lambda as body of the each, { :one=>1, :two=> 2 }.each my_lambda like this ? Honestly I felt the lack of an interactive debugger and of a tool/reflector to dig into the each method implementation here. A more experienced Ruby programmer could tell me where to find them probably. That call gave me an error, wrong number of parameters (1 for 0) in the each call. With some memory of C++ syntax...

Ruby Koans and Ruby idioms

At the http://www.ruby-lang.org/ have found funny ways to start learning Ruby with examples and small code exercises, a very practical approach. Ruby in Twenty Minutes has been an enjoyable start, also Hackety Hack! that remember me ProfStef from Smalltalk land. Then I was ready to start with The Ruby Koans, a way to look a little deeper in to the language driven by unit tests, great and funny !!! After that I investigated more Ruby idioms, http://cbcg.net/talks/rubyidioms/ & http://stackoverflow.com/questions/613985/common-ruby-idioms, some of them related to more advanced or esoteric language features, that you would live perfectly without the 99.99% of the times and that...

Ruby closure scope and other ideas

In Ruby you can have closures with a Block, a Proc or a Lambda. They are very similar and have subtle differences. I've found this article very clear to me: Understanding Ruby Blocks, Procs and Lambdas In short, for what I understood, Blocks cannot have parameters and ( http://pastie.org/3107157 ) cannot be stored while Procs can like Lambdas. Blocks cannot execute a return statement, Procs can and the calling method will return, Lambdas can too and simply return the value to the calling method. Here are the scope examples with Blocks: http://www.pastie.org/3099991 with Procs: http://www.pastie.org/3099995 ...

Prepare to be surprised

Let's experiment, explore the unknowns and prepare to be surprised by unexpected results and to be open to evaluate all the possible explanations  -  Or we will possibly miss even our own maybe fortuitous discoveries and inventions. Perhaps the only thing better for a scientist than finding the crucial piece of a puzzle that completes a picture is finding a piece that doesn't fit at all, and tells us that there is a whole new part of the puzzle that we haven't even imagined yet and the scene in the puzzle is bigger,...

Øredev 2011 what I've learned

One of the bes computer programming technology conference I've been with lot of international speaker and where you can get a sense of the Scandinavian programmers talent, initiative and innovative spirit. What I've learned and I will try to apply ? Before my memories vanish, let's take a note. Only your mom wants to use your website Keynote from one of the founders of Reedit A success story about the possibilities for an entrepreneur in Internet, limited only by the fantasy The users driven product development (1 year release plans are for dinosaurs doomed...

XP Days Benelux 2011, what lessons I've learned and I'll reuse

One of the best Agile Conference of the year as usual, XP Days Benelux. What I've learned and I will try to apply ? I should answer this question and log the answer for every conference I attend. Overall I met two ideas cross different sessions: focus on understanding the problem before rushing to search for a solution don't relay only to intuition to find a solution. look at data and do experiments A War Story of the Rise and Fall of an "Agile" Company Focus on understanding the problem A...

Scrum is officially Open for Modification and Extension

Jeff Sutherland and Ken Schwaber, Scrum's creators, are inviting practitioners from around the world to contribute to Scrum proposing and integrating changes and extensions to Scrum. So now there is a formal process that make available a public mechanism for providing feedback on the Scrum Guide and a model for proposing extensions to the basic framework. I see the feedback in this mechanism as a 2 way communication channel. It means that proposing a change or extension can be a learning experience and an interesting exercise. Can be an opportunity to learn how to modify Scrum without lowering potential productivity and quality...

The Laws of Software Process

   1st Law of Software Process: Process only allows us to do things we already know how to do. 2nd Law of Software Process: We can only define software processes at two levels: too vague and too confining. Source: The Laws of Software Process: http://www.corvusintl.com/CACM003-LoSWP.htm A methodology is the conventions the team agrees to follow. Methodology Success = Project delivered + Staff would do it again Source: http://alistair.cockburn.us/Everyone+should+be+a+methodologist A software development process is a framework imposed on the development of a software product. Source: http://en.wikipedia.org/wiki/Software_development_process   Tags :  Team Work | Agile | Pratiche | Leadership | Progettazione Software | Traduci al ITALIANO...

ABIDE model, an exercise: Identities

An excerpt from Joseph Pelrine training material about Identities: are the roles and the responsibilities. By changing someone's role and identity you change the identity of the team. A human can have many identities and exist in multiple socially complex systems simultaneously, and the context will determine which identity dominates.     An identity, as I understood, can be a responsibility assigned to some team member, a role in the organization assigned to someone, or simply an already existing identity (personal, professional, ...). In a system is possible to add or remove or change a responsibility, assign a role,  reinforce or weaken...

ABIDE model, an exercise: Environment

An excerpt from Joseph Pelrine training material about Environment:  The fifth letter in ABIDE stands for Environment, starting with the purely physical environment but also the workplace culture. If you change your workplace structure, if you move people to different offices for example, you will change the dynamics of the team. Environment is also a prerequisite for a self-organising group. Another excerpt from Joseph Pelrine training material about Environment:  The emergent process of self-organisation requires a space to occur. Not too much space – that would allow the agents to avoid each other, and...

ABIDE model, an exercise: Diversity/Dissent

An excerpt from Joseph Pelrine training material about Diversity/Dissent:  Diversity can be interpreted in many ways. The more diverse a team is the higher the potential for conflict is. On the other side too much uniformity can lead to a dogmatic and “religious” like system where dissent is not tolerated any more. Another excerpt from Joseph Pelrine training material about Diversity/Dissent as prerequisite to self-organisation:  Group diversity is also essential. Homogeneous groups don't self-organize; they actually get dumber, since they inbreed to enforce the dominant narrative of the social context in which they find themselves. As far as I understand Diversity/Dissent...

ABIDE model, an exercise: Attractors

An excerpt from Joseph Pelrine training material about Attractors: The attractors are the things or people in the system that are attractive to others and that others get attracted to. By changing the structures of what people perceive as attractors in the system, you can change the dynamics of the system itself. An attractor here can be an idea, a group or a single person i.e. because of his/her knowledge, expertise, popularity, charisma, authority, power.  In a system is possible to add or remove and attractor, amplify the attractor (i.e. empowering, removing obstacles, adding...

ABIDE model, an exercise: Barriers

An excerpt from Joseph Pelrine training material about Barriers: They define the edges of the system, who is in and who is out. By changing the barriers of the system, who is included and who is not, you change the dynamics in the system. In a sense, a boundary is the opposite of an attractor – people will shy away from it. “Barriers” is a more appropriate term than “boundaries” A barrier, as I understood, can delineate a behavior, shape the structure and (as attractors) provide coherence of the system. Can be i.e. a policy, someone who deny a permission/support/cooperation, the scarcity...

Theory X management style Vs Autonomy, Mastery and Purpose

Modern Social Science discoveries tell that Theory X management style work less then Autonomy, Mastery and Purpose. Here is the TED video of Dan Pink about the surprising science of motivation. See also Theory X management style in IT ? Mmmmmmh. Tags :  Team Work | Agile | Leadership | Motivazione | Creatività | Traduci al ITALIANO >>>

ABIDE model, an exercise

I'm starting a series of posts about the ABIDE model (Attractors, Barriers, Identity, Dissent/diversity and Environment) that I've learned about at the interesting course 'Coaching Self-Organising Teams'  by Joseph Pelrine. Here you can read more about the model. My idea is to post here the exercise I'm doing to better understand and learn the ABIDE model. I will take the list of patterns from the Fearless Change book of Linda Rising (you can find it here) and for every pattern I will try to: identify what is the Complex Adaptive System that is described in that pattern (i.e. a...

Theory X management style in IT ? Mmmmmmh

In short Theory X management style is based on the assumption that workers:       dislike work and will avoid it when possible; need to be forced with the threat of punishment to work towards organisational objectives. Prefer to be directed; to avoid responsibility; are relatively unambitious, and want security above all else.        While most hackers and computer programmers enjoy to use their intellectual potential to solve challenging problems (mastery) in their work, are proud to contribute substantially to the company success (purpose) and are keen on taking responsibility for their work (autonomy). This is a scientific finding. Theory Y management...

Consistency & Change

It is possible to pursue Consistency through  simplification of unnecessary complexity and emergence of useful order and at the same time pursue Change subverting established order even exploiting doubt and paradoxes and unintended details to create high value Consistency can enable change as well as change can increase consistency. When you explore and discovery what to keep and what to change and how. Instead bad Consistency  preserve the status quo obstructing both change, emergence of useful order and simplifications while bad Change add complexity and variations and disrupt existing order without creating high value This is the easy part. The difficult one is the willingness to change :) ...

More on traditional and modern management

Traditional management often strive to explain and predict with the aim to anticipate the future. Modern management often strive also to interpret the present and react to events with the aim to adapt and invent the future. The paradox here is that the effort to predict the future make it harder to control the future. While the effort to recognize and interpret the present reality and adapt to it can enable to control the future inventing it : We can't control systems or figure them out. But we can dance with them. - Donella H. Meadows Other curios paradoxes that...

Small steps Vs ongoing big changes

Scrum says: time-box & prioritize items to maximize value. In the release planning meeting, in the sprint planning meeting, at the stand-up meeting, every day during the sprint Startup and Open source lessons and Agile Software Development suggest: release early, release often, and listen to your customers eXtreme Programming principles: Baby Steps (to reduce risks and get early frequent feedback)  and Improvements (don't wait for perfection,don't leave behind you a mess) Complexity Science suggests: strive for safe-fail experiments whose success can be highly valuable and whose failure can be very informative Lean software development principles: Amplify Learning (with rapid try-it, test-it, fix-it feedback ...

CAP theorem and NoSql ideas to make your SQL db scale

Here the full article: Scalable SQL Here follow some key points, a sort incomplete abstract ... so read also the original Why are many of the leading social networking sites and large banking applications still implemented using traditional database instead of using the new NoSQL systems? ... Application architecture cannot use "traditional" database ...

Kanban is a way of improving the process one has, is not a process

Is there a Kanban process? Here the answer in two interesting post in the kanbandev group. Post from David Anderson: ... Kanban is NOT a software development life cycle or project management methodology! ... Use of a kanban system is not possible  unless there is an existing development process in use. ... The Kanban Method is an approach to change management that employs a kanban system on to an existing process context in order to provoke evolutionary/incremental change. ... There is no kanban process for software development Post from Ron Jeffries: ... I really welcome your coming in with these observations, clarifying that Kanban is not a process, but a way of visualizing...

Nowadays Agile Coach challenge (here, now, at present moment, in this organization unique contex)

The Agile Coach facilitate the dev team and management to reach the full potential of the organization in software development. Given the time, energy, passion and effort we put in our job, why not to do it alright ? Improvement requires change. Sooner or later an Agile Coach face obstacles and resistance to change, in his area of influence and outside that area. When the Agile Coach is sponsored by the management then he could face resistance to change from the dev team. And when the Agile Coach is sponsored by the dev team it could be the other way around. Ten...

Coaching Self-Organising Teams

This April in Helsinki I have attended the course Coaching Self-Organizing Teams by Joseph Pelrine. During the course I've been able to find the answers for many practical questions : what really is serf-organization and what is not ? what is the 'self' in a self-organising system, and for a team ? beyond mathematical and biological models (people are not ants: have intelligence, awareness, free will and purposes) what can explain social complex systems like teams...

The redpill and the bluepill of sw development

The   bluepill   of software development: defined process outdated Gant charts procrastination of reality check The   redpill   of software development: empirical process inspect-adapt feedback/control loops continuous reality-checks Choose: http://en.wikipedia.org/wiki/Bluepill or http://en.wikipedia.org/wiki/Redpill Tags :  Team Work | Agile | Lean Agile | Leadership | Team | Progettazione Software | Traduci al ITALIANO >>>

Traditional/Modern Management impedence

Some thoughts about differences I noticed between traditional management and modern software project management. In traditional management a manager can define and be responsible for the deadline and the scope of a project (i.e. fixed scope, fixed price, fixed deadline contracts). Often with the assumptions that : the customer knows all what he wants (before the project start) the developers know how to build it (before the requirements are known and understood and the used technology is proven and well known) nothing will change along the way, unforseen events will not...

Gestione Agile del Codice sorgente: branch o no ?

Copia-incollo da un thread di XPUG-IT contributi da alcuni post tra cui uno di Piergiuliano Bossi. Sul tema viene in aiuto il principio XP di semplicitá (quella che si raggiunge attraverso skill e padronanza, non quella che deriva dal banalizzare) il principio XP di flusso (fare una cosa in modo continuo e incrementale spinge a eliminare le inefficenze e lo spreco e risulta piu effecace, pensa ad esempio al refactoring continuo del TDD comparato a i grandi refactoring) il principio Agile: Gli individui e le interazioni prima...

An interesting Scrum Guide

An interesting Scrum Guide: Professional Scrum Master, Ken Schwaber Tags :  Team Work | Agile | Progettazione Software | Traduci al ITALIANO >>>

Valid alternatives to the strongly-typed Static resource class 2/2

Here follow 3 alternatives to the static strong typed class automatically generated by Visual Studio (2005, 2008, 2010) to get access to the resources (in .resx files) . All are great examples of how to exploit the technology to improve the design of the application instead of writing fragile rigid code highly coupled with a specific technology solution. One alternative is to create an instance class that wrap the static class, it will contain a property get for every resource expesed by the static class. Basically instance class methods are a 1:1 mapping of the static class ones. The instance class...

Valid alternatives to the strongly-typed Static resource class

Starting from  Visual Studio 2005, it is possible to automatically generate code to get access to resources (in .resx files) by a static strong typed class. As soon as you try to write a unit test of the class that access the resources via the static class or  you change the way resources are stored and retrieved (i.e. you move them to the db or you switch to a 3rd party library for the localization) you start to feel all the pain due to the static classes: indeed the code that use that static class violate the OCP and the DIP principles...

On software systems evolution

To the degree that a software system is large and distributed enough that there is no effective single point of control, we must expect evolutionary forces. ... There is much to be gained by recognizing and accepting that computational systems resemble naturally evolving systems much more closely than they resemble engineered artifacts such as bridges or buildings. Specifically, the strategies that we adopt to understand, control, interact with, and influence the design of computational systems will be different once we understand them as ongoing evolutionary processes. -- D. H. Ackley et al. 2002 Here an example on how TDD practices can be evolutionary forces that...

Leadership styles (for sw development)

Let's take a look at different styles of leadership at work. And how they work. And what are the different outcomes for each different style.  This video is quite interesting and pretty practical. One style of leadership is leading the team to "play by the book", or you can say by following the plan. No interpretation, only execution.  An opposite style is not to give detailed instructions, don't ask to play by the book, instead push the team to listen and adapt: let team members listening to each other and to the ongoing project, and the leader is there to correct...

Characteristics of Agile and Traditional Organizations

From InfoQ an interesting article about characteristics of Agile organizations. Now a list of characteristics for teams, management styles and organizations, to you the decision of which one belong to a traditional organization an which to an agile organization:   A ...

Pratichi TDD? Una ricerca/esperimento

      Ultimamente ci si interroga spesso su qual'é l'influsso del TDD sul disegno del codice e quali pratiche sono prescritte dal TDD. L'anno scorso ho documentato l'esperienza di un team e ora ho preparato un questionario e del codice, un esperimento pratico per indagare le ipotesi. Sia chi é esperto nel TDD e chi ha iniziato da poco puo trovare l'esperimento interessante per riflettere sul proprio stile di TDD e confrontarlo con un altro grazie ad esempi minimi e significativi. O semplicemente per partecipare alla ricerca. Questionario e codice sono in beta, qualsiasi feedbak, suggerimenti e commenti per...

DI and IoC: pattern and frameworks, strengths and weaknesses

IoC or Inversion of Control. A well known example of the IoC pattern is the Windows 3.0 programming that inverted the program's control flow compared to DOS. Windows manage the I/O devices and calls program's event handler when the user performs some input.  While in DOS the program in the main loop had to pools the I/O devices to know the position of the mouse and the status of the keyboard. IoC pattern means event-driven instead of pooling the sources. The reference to sources of the events are passed to the program/object that will trigger its behavior when receives an event notification....

TDD with mocks and spies

    Some testing tools like Moq (with MockBehavior.Strict), NMock, JMock and Rhino Mocks fluent and record/playback syntax use mocks.     Other testing tools like Moq (with Verify), Mockito and Rhino Mocks AAA syntax use spies. Here I will note down the characteristics of both. Let start with the differences. Spies allow to assert the expectations after the invocation of the method being tested, while mocks (we are talking abou strict mocks) require to set expectations before the target method invocation. Because of it someone finds the test written with spies more readable, while someone else finds easier to write...

The Manager's Role in Agile

What is the Manager's role in Agile? I'm thinking about this topic and here are my thoughts and notes. You can say it like this: How company management and the Agile IT department can work effectively together? From the Agile IT department point of view it can looks like: how can we make the company management more Agile? From the Management it can looks like: how can we make the IT department more responsible and supportive of company goals, deadlines, business? Read the article: The Manager's Role in Agile Read the paper: Role of the Manager in Scrum About leadership...

Scrum: Roles & Responsibilities II

Product Owner Working on a shared vision Gathering requirements Managing and prioritizing the product backlog Accepting the software at the end of each iteration Managing the release plan The profitability of the project (ROI) Metaphor: The Product Owner is a CEO ScrumMaster Empowering and shepherding the team Removing impediments Keeping the process moving Socializing Scrum to the greater organization ...

My XP Days Benelux 2010 experience

This conference is well known for been highly interactive and centered on feedback. Even so things have exceeded my best expectations. Since after sending a draft proposal for session, I'm been asked to participate to a Perfection Game to give and collect suggestions for improving the sessions proposal. I had received useful comments and suggestions from many experienced agilists and had improved the session based the useful and insightful feedback received. And so also all the other proponents. At the fist day of the conference, every presenter had the chance to introduce and propose his session with a 30 second presentation...

Notes on Functional Programming paradigm 3: pros & cons

Pros: in functional style the sequence of calls and operations seldom matter while in procedural style it does and this add complexity Pros: in functional style it is easier to change a program because assumptions and statements about objects are absolute, they never change over time. While in procedural style state change and a huge effort is required to avoid unintended consequences. Indeed a major effort in OOP with encapsulation and information hiding is about partitioning...

Notes on Functional Programming paradigm 2: data and logic variation frequency

When a computer program solve a problem with data that never change and so the state but instead new values of data are created every time (i.e. like for primitive types in Java and C#)  as in mathematics operations, then it is said to have a functional style, it follow the functional paradigm. Some problem (solution) can be best expressed by a program with a functional style, some other problem can be best expressed by a procedural style (where state change over time) and for some other problem it is just a matter of personal preferences. Human brain has...

Notes on Functional Programming paradigm 1: data and logic

Computer programs can be seen as data (structures, state) and logic (algorithms, behavior). Data changes when data values (state) changes over time, logic changes mainly when different inputs lead to different computations. Just to be clear, conditionals are the most common ways to express changes in logic, and there are a whole set of ways of doing so that are equivalent to conditionals. Programming effectively is about grouping together data and related logic and express properly the variations of the data and the variations of the logic. The same problem can be solved by different programs,...

The fundamental attribution error (2°)

What looks like resistance is often a lack of clarity: look for a proper rational vision What looks like laziness is often exhaustion: look for a proper emotional motivation What looks like defiant people is often proceeding on the easiest path: improve the environment to support the right path What looks like...

UX Prototyping e Scrum

Nicolò Carandini ha proposto la questione di come l'attività di prototyping si rapporta con lo sviluppo software con Scrum. Giá, come ?     Cose é la HCI Comincio la ricerca da alcuni fatti raccolti e sintetizzati sulla User Experience prototyping. Lo UX prototyping é uno strumento della Human-Computer Interaction (HCI). La HCI é la disciplina che si occupa del design, della valutazione e della implementazione di sistemi informatici interattivi. É utile ad esempio per le applicazioni web, di realtá virtuale, nella visualizzazione dell'informazione, nell'ubiquitous computing. Ha tre pilastri: la tecnologia informatica (es. software, device hardware, la grafica e gli stili di interazione), le...

The secret training of Ferrari engineers for the Pit Stops

Just posted about Pair Programming experience in Formula One and the relation with Pit Stop. And today, just one day later, here is revealed the video of Ferrari engineers training for the Pit Stop: Tags :  Team Work | Agile | Pratiche | Progettazione Software | Traduci al ITALIANO >>>

Pair Programming and Formula One

When I was working and developing software in F1, people from other departments of the Racing Team were surprised to see two software engineers working and coding together at the same PC. The CTO used to mention the example of the Pit Stop where many engineers works together at the same car to refuel, switch tires, fix settings as fast and as perfectly as possible. Another example mentioned was the operating room where many surgeons work together to avoid mistakes and keep the surgery short. Not to mention that a real surgical team visited the Racing Team to...

Keyboard Jedi on Windows7 64-bit

After some work finally got the Keyboard Jedi 1.5 tool by Roy Osherove to work on Windows 7 64-bit. Had to use the last version, 1.2.0.10, of the Global System Hooks library by Michael Kennedy from here:  - http://www.codeproject.com/KB/system/globalsystemhook.aspx Then did as described by James  Kovacs here: - http://jameskovacs.com/2008/04/25/keyboard-jedi-on-vista-x64/ to force it to run at 32 bit and to reference the new version of the Global System Hooks library. Download it from here: http://dl.dropbox.com/u/11163041/keyjedi-Win7-64bit.zip This build requires the .NET Framework 4.0, you can repeat the steps described here, using the original exe, in ordert to build it with...

Sviluppo Agile, risorse in Italiano

Sto raccogliendo qui un elenco di libri e risorse in Itailano sullo sviluppo Agile. Manifesto Agile: http://www.agilemanifesto.org/iso/it/ Traduttore: Jacopo Romei col contributo di alcuni membri del newsgroup XPUG-IT La Guida Ufficiale di Scrum: http://www.scrum.org/storage/scrumguides/Scrum Guide - IT.pdf Traduttori: Mirco Veltri, Carlo Beschi Scrum e XP dalle Trincee: http://www.infoq.com/resource/news/2007/06/scrum-xp-book/en/resources/ScrumandXPfromtheTrenchesItalian.pdf - ulteriori formati iPod, iPad, Kindle qui: http://www.open-ware.org/ita/news/kniberg1.htm Traduttori: Antonio Lucca, Luca...

The Texas Sharpshooter Fallacy && Retrospective coherence

Do pay attention to The Texas Sharpshooter Fallacy when looking for Retrospective coherence to avoid placing artificial order over natural random chance. When you do the Retrospective meeting, when you do the root cause analysis, when you try to recognize patterns and search for meanings while looking at data collected from your teams feedback loops, when you try to generalize what worked in your team and you try to replicate it in other teams. The Texas Sharpshooter Fallacy : http://youarenotsosmart.com/2010/09/11/the-texas-sharpshooter-fallacy/ Tags :  Team Work | Agile | Complessità | Creatività | Innovazione | Traduci al ITALIANO >>> Additional remarks and random thoughts...

Clean Code III Functions

One of the training on coding that I usually have with new teams is about proper naming of methods and arguments, and writing short methods. This article explain quite well all these things and add more insights to move to the next level: - choose names of Functions/Methods that are the verbs - choose names of  classes are the nouns of the DSL language that is used to build your system. The art of programming is, and has always been, the art of language design. Read these slides by Robert C. Martin: http://dl.dropbox.com/u/4730299/Clean%20Code%20Functions%20%28Java%29.pdf Tags :  Team Work | Agile | Pratiche | Semplicità | ...

Appreciative Inquire

Appreciative Inquiry is about the search for the best in people, their organizations, and the relevant world around them. It involves systematic discovery of what gives "life" to a living system when it is most alive, most effective, and most... Read the full article: http://processarts.wagn.org/wagn/Appreciative_Inquiry In Italian, see also: The positive core Tags :  Team Work | Agile | Pratiche | Team building | Traduci al ITALIANO >>>

Confessions of A New Agile Developer

I have worked in Waterfall model for most of my career. Some time back I joined Xebia and started working in the Agile style. Specifically, we have been following Scrum and XP methodologies with TDD as an emphasized practice. The transition from Waterfall to Agile is like... Interesting article, read the full story: http://www.infoq.com/articles/agile-confessions-sharma Tags :  Team Work | Agile | Pratiche | Progettazione Software | Traduci al ITALIANO >>>

Software Engineer o PR Microsoft?

Parto dal post The Future of Silverlight del Silverlight Team Blog per suggerire una opportunitá di miglioramento. Silverlight é stato un prodotto che ha esplorato delle possibili aree di innovazione e che ha mantenuto le opzioni aperte in attesa di scoprire come si sarebbe sviluppato il futuro del HTML 5. Una strategia di innovazione che invidiamo a Microsoft e vorremmo fosse adottata anche dalle aziende per cui lavoriamo. Nessuna delusione quindi per un naturale cambio dei piani, anzi un hurrá per Microsoft che ha trovato la strada migliore che porta verso il futuro prossimo. Il suggerimento va invece a...

Prima di voler cambiare gli altri...

Il coach Agile e lo Scrum Master nell'azienda hanno il compito di promuovere e guidare il cambiamento organizzativo e culturale e condividono questo compito con ogni membro di un team Agile che é un agente del cambiamento. Quello che nel tempo ho imparato in questo ruolo, é che prima di chiedere agli altri di cambiare é importante essere capaci di cambiare se stessi. E' il classico lead-by-example ed é anche un reality-check personale per verificare se si conosce realmente quello che si desidera insegnare agli altri! Fatto questo, ho imparato che non basta ancora. Prima di chiedere agli altri...

Un salutare bagno di umiltá

Ho collegato 2 post che ho letto recentemente e... Il primo riporta il risultato di una ricerca secondo cui una coppia in pair "batte" 2 individui se la coppia discute liberamente dei loro disaccordi in particolare di quanto sono confidenti della loro decisione. Mentre la coppia "perde" quando una persona é incompetente su un argomento senza esserne consapevole o senza riconoscerlo. Il secondo riporta il risultato di una indagine secondo cui ogni anno un inglese in media spreca 2000 sterline di carburante perché sbaglia strada e non chiede informazioni. E il 41% dei maschi dopo aver sbagliato strada e dopo ...

Simplify packaging to speed up software developments

Once the team wrote the source code of an application, why should split that app into many modules (assembly, jar, dll, exe, binaries in general) ? Sometime there are no choices: i.e. when different part of the applications are developed with different technologies that require different compilers or even different operative systems. Some other time when a group of classes are used by 2 or more applications, instead of duplicating the classes they must go in a module and be reused. Here is when the REP come in...

Versioning (6, end of this series)

So far we have discussed what team can do to extremely simplify versioning for the modules (assembly, jar, dll, exe, binaries in general). What about executables and web-applications, desktop applications, services and web-services? Verioning and tracking of breaking changhes are useful for changes that affect the production environment, let's make some examples: When an application requires an upgrade to the db schema to work properly, the application and the db must be versioned properly ! When there is an upgrade to a server application that...

Tell Don't Ask, unit tests and mutable state

If you follow the "Tell, Don't Ask" style, objects have very little visible state to assert about. ... When writing a program, I care only about what that program does, not the internal state that the program uses to control what it does. The only visible behaviour that a program has is its interactions with external entities ... Mutable state makes a program harder to understand and maintain ... "Doing encapsulation right is a commitment not just to abstraction of state, but to eliminate state oriented metaphors from programming." — Alan Kay Read the full post: http://nat.truemesh.com/archives/000342.html Tags :  Team Work |...

Blue Green Deployment

If you find it a futuristic goal, it is not because it is rocket science, it is because basic principles and good professionals practices that should be applied for wise business reasons are missing: http://martinfowler.com/bliki/BlueGreenDeployment.html We are in 2010 and these things are are around from at least 10 years (Agile software development is about 20 years old).  There is always time to download the latest beta version of some kind of tool, there should always be time also to learn new modern skills too :) Tags :  Team Work | Agile | Pratiche | Creatività | Innovazione | Progettazione Software | ...

make-it-easy

Il modo migliore di imparare a scrivere i test con i mock object é quello di iniziare a scriversi i mock a mano.  Chi infatti inizia a usare i tool di mocking spesso gli usa a sproposito. Questo é uno dei tanti esempi di come fare la cosa giusta concentrandosi prima sullo skill e solo dopo sul tool. Oggi ho una nuova opportunitá di fare la cosa giusta: il codice dei test deve essere breve, semplice e leggibile cioé descrivere chiaramente cosa si sta testando e qual'é il comportamento atteso. Una delle cose necessarie a raggiungere questo risultato é...

Avoiding Nulls with "Tell, Don't Ask" Style

... and so avoiding also the duplication of IFs: read the full post from Nat Pryce Tags :  Team Work | Agile | Pratiche | Progettazione Software | Traduci al ITALIANO >>>

Are you an amateur or a professional?

Are you an amateur or a professional? Look for example at  bicycle riders: amateurs care mostly about the bike, the frame, the gears, the forks and so on; professionals focus on training to improve their skills and their performances during the race. When a software development project face a challenge or a problem, do you find yourself looking at the tools or at the skills of the people ? Just answer and tell the truth. So you will know if you are an amateur of software development or a professional. Update: this topic has many facets and many trade-off, still no exceptions here, when...

Nuovo libro: Scrum e XP dalle trincee

Scrum and XP from the Trenches di Henrik Kniberg ora é disponibile anche in italiano.       E' il racconto di un team e della sua adozione di Scrum e XP.       Racconta i cosa, i come e i perché, i tentativi, i fallimenti e i successi raggiunti. E condivide le lezioni imparate.       Un repertorio interessante di idee e spunti utili ad applicare Scrum e XP nel proprio unico e specifico contesto.       L'ho riletto ancora una volta e ho trovato ancora diversi spunti interessanti. Il libro é disponibile su InfoQ: http://www.infoq.com/minibooks/scrum-xp-from-the-trenches Il downolad del pdf non stampabile é gratuito e...

Are you good enough to fail ?!?!

The greatest danger for most of us is not that our aim is too high and we miss it, but that it is too low and we reach it. Michelangelo When I see a mediocre team, a mediocre software department and I talk with the CTO and key peoples I usually understand that actually they are not failing at all. Instead they are just succeeding to reach a mediocre goal. This kind of success can kill you :) I read often that failure is a necessary investment to learn and innovate. Indeed successful challenges goes through three phases, it start with hope, in the...

The fundamental attribution error

What looks like a people problem is often a situation problem What looks like laziness is often exhaustion What looks like resistance is often a lack of clarity  What looks like defiant people is often proceeding on the easiest path Tags :  Team Work | Agile | Leadership | Team | Disciplina | Team building | Traduci al ITALIANO >>>

Multi-tasking war story

Multi-tasking war story, click and read

What Good Are Positive Emotions?

Some notes from the paper of Barbara L. Fredrickson, 1998: What Good Are Positive Emotions? 4 positive emotions are: Joy (happiness), Interest (curiosity, intrigue, excitement, wonder), Contentment (tranquility, serenity) and Love (romantic, passionate, compassionate , caregiver, attachment). Positive emotions help us to broaden the scope of our attention our cognition, and actions. They help to build our physical, intellectual and social resources. Positive emotions help us to broaden and build our repertoire of thoughts and actions. Positive emotions increase our curiosity and our hope, encourage our creativity and open our minds. Also build the energies that we can...

Inspect-Adapt loops in Formula One

The well known inspect-adapt loops in agile software development are at work also in F1, and not only for software development, also for the car tests car developments and race controls. You guess why? Because they are more effective than other traditional solutions :) Here it is: - Racing Under a Watchful Eye That’s Thousands of Miles Away (McLaren) - The nerve centre - Renault’s engineering truck Would like to ear more about Ferrrari :D Tags :  Team Work | Agile | Traduci al ITALIANO >>>

Two ways of looking at the same problem

Presenting the problem Reframing the problem It’s them It’s all of us ...

Versioning (5)

So far, as reported here - Versioning (1) - Versioning (2) - Versioning (3) - Versioning (4) team that do in-house development and also many other teams have the possibility to adopt practices that extremely simplify versioning for the modules (assembly, jar, dll, exe, binaries in general, excluding executables as web-applications, services and web-services) and speed-up developments: no need for modules to provide support and bug-fixing for previous versions deal properly the beta, release candidate and official release cycles ...

Code as Design: Three Essays by Jack W. Reeves

Pubblico e mi annoto i link di questi tre essay assolutamente interessanti e attuali. Segnalati da Piergiuliano Bossi su XPUG-IT. http://www.developerdotstar.com/mag/articles/reeves_design_main.html Tags :  Team Work | Agile | Progettazione Software | Translate into ENGLISH >>>

Come fai a capire che un problema é troppo grande?

Faccio un esempio. Chi é del mestiere da prima del 2000 ha assistito al passaggio dalle applicazioni Winform a quelle Web, dalle applicazioni Client-Server a quelle distribuite. E probabilmente ha assistito ad alcuni progetti finiti male: troppo lenti, troppo fragili, incapaci di sostenere il carico degli utenti, etc. Alcune aziende hanno avuto la possibilitá di imparare dagli errori e altre non ne sono state capaci o non hanno potuto. In realtá ogni volta che cominciamo un nuovo progetto, o un nuovo sprint, o cerchiamo di imparare qualcosa di nuovo, c'é la possibilitá che il problema sia troppo complesso per il tempo o le risorse/energie...

Allora non capita solo nel software !

Alcune frasi prese dall'articolo: il grande spreco dell'intelligence USA "La mancanza di focus, non la mancanza di risorse, è al centro della strage di Fort Hood che ha fatto 13 morti. Così come dell'attentato di Natale: sventato non dalle migliaia di analisti impiegati per trovare un terrorista solitario ma dall'allarme di un passeggero". E "Soprattutto con questo deficit, dobbiamo essere pronti ad abbattere qualche muro". Muro? L'intelligence Usa è un labirinto. Problema numero uno: la duplicazione inefficiente di centinaia di agenzie. E ancora Problema numero due: la moltiplicazione dei dati. Comincio a credere che non é un problema specifico del...

Versioning (4)

Versioning for every module (assembly, jar, dll, exe, binaries in general, excluding executables as web-applications, services and web-services) can be even further simplified when the software development team that develop the module is  the same team that use the module in their applications or at least the two team can agree on a common release date for the application and the module. In pracatice when both teams has synchronized time-boxed sprints and releases. In this case for the modules there is no need to have an explicit beta=>release-candidate=>official cycle, the last source code for the code can...

What is a Framework?

An object-oriented abstract design for a particular kind of application, also called a framework, consists of an abstract class for each major component. One important characteristic of a framework is that the methods defined by the user to tailor the framework will often be called from within the framework itself, rather than from the user's application code. The framework often plays the role of the main program in coordinating and sequencing application activity. This inversion of control gives frameworks the power to serve as extensible skeletons. The methods supplied by the user tailor the generic algorithms defined in the framework...

Framework: Three Examples

Three Examples: Every attempt to determine the correct abstractions on paper without actually developing a running system is doomed to failure. A framework is a reusable design, so you develop it by looking at the things it is supposed to be a design of. ... Develop three applications that you believe that the framework should help you build. These applications should pay for their own development. Source: Evolving Frameworks: A Pattern Language for Developing Object-Oriented Frameworks, Don Roberts and  Ralph Johnson, 1996 Tags :  Team Work | Agile | Progettazione Software | Traduci al ITALIANO >>>

About frameworks

Ralph Johnson is one of the gang of four that published Design Patterns (http://www.refactory.com/people/ralph.html). And has been deeply involved in the Smalltalk community. In the 80's he published some papers about framework, that still today are the most interesting and advanced literature on that topic. From these papers also originate the position of the XP and agile community about frameworks. If you looks at frameworks and libraries and components in use today, you can see that many of those learning are still unused. So those paper today are an opportunity to learn something useful, to be on the edge. Here...

Design principle, dalla teoria alla pratica

La prima volta che ho letto e imparato i principi di disegno, gli ho usati come guida e ispirazione nel mometo di immaginare e disegnare le classi di un sistema, magari mentre le disegnavo in UML. La seconda volta che ho (ri)imparato i principi di disegno, ho imparato a guardare il codice di una classe e indicare precisamente la riga dove c'é una violazione di un principio, spiegare il perché e indicare come rimuovere la violazione. E per questo mi ha aiutato il TDD. Questa é la terza volta che sto (ri)imparato i principi di disegno, sto cercando di applicarli strettamente...

The tip of the iceberg

Souce: http://blog.energizedwork.com/archives/2007_11_01_archive.html Tags :  Team Work | Agile | Complessità | Leadership |

Work must begin with...

Since people make things, work must begin with developing people - Eiji Toyoda source: http://tinyurl.com/toyota-production-system-quiz Tags :  Team Work | Agile | Progettazione Software |

Micro-esercizio di TDD 2

Gli unit test sono uno strumento che guida il disegno del codice e la lente che evidenzia i difetti del disegno nel codice esistente. Propongo questo secondo micro-esercizio di TDD é un classico problema, quello di testare in presenza di membri statici o di singleton. Immagina di aver ereditato il codice che produce e poi stampa i biglietti di attesa con il numero del turno: la classe TurnTicket che rappresenta il biglietto col numero del turno, la classe TurnNumberSequence che genera la sequenza dei numeri e TicketDispenser che restituisce ogni volta un nuovo biglietto per il turno. (http://www.pastie.org/1039025) ...

Versioning (3)

Versioning for every module (assembly, jar, dll, exe, binaries in general, excluding executables as web-applications, services and web-services) can be further simplified when the module used in a code-build-test-deploy environment has Continuous Integration and the application that uses the modules has sufficient automatic tests as acceptance integration and unit tests, and at every automatic build the last official binary version or source code of the module is pulled into the build. In this case for the modules there is no need to trace and document breaking changes (i.e. for the public interfaces, for the...

What practices do you use?

Source: What practices do developers use? Tags :  Team Work | Pratiche |

Archeo informatica?

Il Model–View–Controller (MVC) é stato descritto per la prima volta nel 1979 da Trygve Reenskaug mentre stava lavorando allo  Smalltalk al Xerox PARC. Cioé oggi sono piu di 30 anni fa. Lo sviluppo di Smalltalk al Xerox PARC, un linguaggio object-oriented dinamicamente tipizzato con reflection, invece é cominciato nel 1969 da Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Scott Wallace e altri. La versione piu nota e diffusa del linguaggio é lo Smalltalk-80 rilasciata appunto nel 1980. Che sono 30-40 anni fa. In questi mesi nelle sue varianti il MVC é diventato particolarmente popolare anche per Silverlight e WPF. E in questi...

About sessions of Agile conferences and current Agile literature

Some session discuss topics that are covered also by current agile literature. When this is the case, current related agile literature could be mentioned and it could be interesting to know if the session content confirm or deny the current literature.  I think that this could help to build on what we already know today, still giving us room for innovation and to subvert preconceived ideas. Tags :  Team Work | Agile | Eventi | Creatività | Innovazione |

How often do you release in production ?

Source: How often do you release in production Tags :  Team Work | Pratiche |

Il Manifesto Agile tradotto in Italiano

Alcuni amici hanno tradotto il manifesto agile in Italiano realizzando la versione italiana ufficiale che trovate anche nel sito agilemanifesto.org. Eccola qui:     http://agilemanifesto.org/iso/it/ La trovo decisamente utile, per verificare la propria comprensione e per passarla anche a quei colleghi e manager  curiosi sullo sviluppo agile del software, ma non cosi tanto da mettersi a tradurre un testo dall'inglese. Tags :  Team Work | Agile | Progettazione Software | Translate into ENGLISH >>>

Memo for a better customer discovery

Click to read more

Scrum: did you know that...

1) To start a Sprint using Scrum all of these are important to have: - a Release plan and budget - executive sponsor and technical lead - team space and team rules - a vision and the Product Backlog And  is absolutely needed: some work to do, a purpose, and some people to do the work. 2) Is it permissible to modify Scrum, but be aware that each modification may lower potential productivity and quality. Tags :  Team Work | Agile | Pratiche | Traduci al ITALIANO >>>

Test your knowledge of Scrum

Before I posted interesting links to assessment of your team Scrum/Agile adoption  (here, in Italian). Here there is also the link to assess your knowledge of Scrum: http://www.scrum.org/scrumopen/ The test result show each mistake together with  the right answer. Just completed it now, after reviseing  the Scrum guide and Scrum & XP From The Trenches: Score: Percentage: 48 out of 50 points 96% What I got by taking the test ? I have learn from my mistakes  :)  And you ? Tags :  Team Work | Agile | Leadership | Pratiche | Traduci al ITALIANO >>>

Versioning (2)

In order to reduce the costs, visible and hidden ones, of giving support for previous versions:    Microsoft have tried hard many years to push his customers to use the latest versions of his software products as Visual Basic, Visual Studio and related technologies. When can you simplify here ? And how ? Versioning can be simplified for every module (assembly, jar, dll, exe, binaries in general, excluding executables as web-applications, services and web-services) that actually is used only by a partners or by a software develoment team inside your organization and in...

Scientific empirical evidences on PP effectiveness

The known empirical studies about effectiveness of Pair Programming are well documented on Wikipedia: - Pair programming scientific studies   6 empirical research examined   experiments conducted with both professional software developers and with students   experiments published between 2000 and 2009   http://en.wikipedia.org/wiki/Pair_programming#Scientific_studies Here are links of cited studies that now are broken on the Wikipedia page: - The effectiveness of pair programming: A meta-analysis, 2009   http://www.idi.ntnu.no/grupper/su/publ/ebse/R11-pairprog-hannay-ist09.pdf - Pair programming productivity: Novice–novice vs. expert–expert, 2006   http://userweb.cs.utexas.edu/users/mckinley/305j/pair-hcs-2006.pdf Overall the empirical studies report contrasting results about effects of PP on quality, duration and effort. They all agree that  PP works well when...

Scientific empirical evidences on TDD effectiveness

Here the known empirical studies about effectiveness of TDD: IMPROVING BUSINESS AGILITY THROUGH TECHNICAL SOLUTIONS: A Case Study on Test-Driven Development in Mobile Software Development, 2005 1 study in industrial context http://agile.vtt.fi/docs/publications/2005/2005_business_quality_ifip.pdf Test driven development: empirical body of evidence, 2006 7 studies documented in industrial context 6 studies documented in academic context conducted between 2001-2005 http://www.agile-itea.org/public/deliverables/ITEA-AGILE-D2.7_v1.0.pdf TDD--The...

Unconscious incompetence

How do you deal with someone that has an unconscious incompetence: claims a skill and experience that doesn't have, acts based on this belief, is genuinely incapable to observe the problems caused by an inappropriate action and decision, and is genuinely incapable to see the failure ? Come ti comporti quando qualcuno é inconsapevole di una propria incompetenza: rivendica uno skill una esperienze che non ha, agisce in base a questa convinzione errata, é genuinamente incapace di vedere i problemi provocati dalla sua azione e di riconoscere un fallimento ? Tags :  Team Work | Agile | Comunicazione | ...

The "Command and Control" Military Gets Agile

The full article on InfoQ: The "Command and Control" Military Gets Agile An interesting excerpt among others: The great thing about the military today is that they know if they are not Agile they will lose the war. Unfortunately, many of our commercial companies have not figured this out yet. Jeff Sutherland Tags :  Team Work | Agile | Complessità | Leadership | Team | Creatività | Innovazione | Traduci al ITALIANO >>>

Versioning (1)

As software engineers we should be aware of the costs of dealing with versioning and tracking compatibility breaking changes. And we should be able, in every software product, team and organization, to see where and when versioning is really needed, and so use it properly. By a practical point of view, as is very effective in security to start with all permissions disabled and then enable only the really needed permissions case by case, in versioning I've noticed that is very effective  to start with no versioning and begin to use versioning only when a real need emerges (e.g. through ...

I will be @ XP2010 Reloaded

Matteo has announced he will be at XP2010 Reloaded in Bolzano. I will be there too, sharing some empirical finding about TDD. XP2010-Reloaded 1st International Workshop on eXtreme Programming and Applications September 15, 2010 Bozen-Bolzano, Italy Paper submissions:   June 25, 2010 - http://xp2010-reloaded.case.unibz.it/ Matteo Vaccari ha appena annunciato la sua presenza ad XP2010 Reloaded in Bolzano. Ci saro pure io, condividendo delle osservazioni empiriche raccolte facendo TDD. XP2011 sará in Spain il prossimo anno e la comunitá Agile spagnola sta gia preparendo l'evento come una occasione per incontrare la comunita Agile internazionale. XP2010 Reloaded da la medesima opportunitá, giá quest'anno, a...

Micro-esercizio di TDD, soluzioni a confronto

Ecco le varie soluzioni postate per il micro-esercizio di TDD: http://pastie.org/994235 - C#, TDD con mock objects http://pastie.org/994831 - C#, TDD con mock objects http://pastie.org/994969 - C#, TDD con mock objects http://pastie.org/997427 - Python, TDD test du accettazione: http://pastie.org/1001378 unit test e codice risultante: http://pastie.org/1001380 - Python, TDD con...

Micro-esercizio di TDD

Gli unit test sono uno strumento che guida il disegno del codice e la lente che evidenzia i difetti del disegno nel codice esistente. Propongo questo micro-esercizio di TDD per confrontare e riflettere come soluzioni diverse guidano a scelte di disegno diverse. Immagina di aver ereditato il codice di queste due classi: Sensor che legge in tempo reale il valore attuale della pressione in psi (pound per square inch) di un pneumatico e restituisce il valore; Alarm che verifica il valore corrente della pressione e avvisa quando esce dal intervallo di valori normali. (http://pastie.org/993782) Il micro-esercizio...

Leadership

...A belief in your abilities to make changes in the world, and an appreciation that you can't do it all on your own!... ...Sitting on your ideas and going along on with other people's plans when you have a better alternative feels bad... ...To instill confidence in others, you have to believe in yourself and want change... Source: Leadership is a State of Mind Initiating change over ... Source: Kent Beck's evolution of Agile Manifesto Tags :  Team Work | Agile | Leadership | Traduci al ITALIANO >>>

The Secret Powers of Time

How we can looks at the present and at the past. And appreciate what is. How we can think about the consequences of our actions. And imagine how future might be. How can we plan our future. Design and determine what should be and how to do it. A nice video about the different cultures of time with an interesting prospective on the North and the South of Italy and the Lega party. Source: this post by Yves Hanoulle Tags :  Team Work | Agile | Leadership | Motivazione | Traduci al ITALIANO >>>

Kanban

Traduci al ITALIANO >>> Kanban prescribes 3 rules: Visualize the workflow Split the work into pieces, write each item on a card and put on the wall Use named columns to illustrate where each item is in the workflow. Limit WIP (work in progress) – assign explicit limits to how many items may be...

Upcoming Agile events!

Conferencia Agile-Spain 2010, Madrid, 10-11 June - http://conferencia2010.agile-spain.com/ 1st International Workshop on eXtreme Programming and Applications September 15, 2010 Bozen-Bolzano, Italy Paper submissions:   June 25, 2010 - http://xp2010-reloaded.case.unibz.it/ Tags :  Team Work | Agile | Eventi | Progettazione Software |

Scrum e la pratica dei self-organizing & self-managing team

Translate into ENGLISH >>> Scrum prescrive delle cose molto pratiche, concrete e semplici per i self-organizing team. Allo Scrum Master assegna il ruolo del manager del processo, non del team. Con Team si intende le persone direttamente e attivamente coninvolte nella esecusione dei task di realizzazione degli Item delllo Sprint Backlog e nel raggiungimento del Goal dello Sprint. Annoto le principali cose che Scrum prevede esplicitamente: Il Team é l'unico responsabile di condurre il Daily Scrum meeting, di tenerlo sotto i 15 minuti, di rispondere alle 3 domande e di produrre la lista degli impedimenti...

L'arte di programmare, codice e pensieri

Translate into ENGLISH >>> Segnalo due link decisamente interessanti dove ci sono argomenti molto pratici e concreti e codice per esercitazioni pratiche:   http://essap.dicom.uninsubria.it/pmwiki.php?n=Main.LetsDoItAnAgileMicroproject   http://matteo.vaccari.name/tai/diario Resi disponibili da Matteo Vaccari Tags :  Team Work | Agile | Pratiche | Progettazione Software |

Spirito di squadra e mentalita vincente

Non sono Interista (be come italiano all'estero in caso di finale con una squadra Italiana, si sono anche Interista) ma questa vittoria della Champion é il risultato di uno spirito di squadra e di una mentalitá vincente. Avendolo vissuto in prima persona é facile riconoscerlo. Ed é un ingrediente utilissimo per il successo del lavoro in team nello sviluppo sw. Magari la passione del calcio torna utile anche nello sviluppo sw :) Update 24 Maggio: una ricerca scientifica a dimostrazione di questa intuizione, i dettagli qui: Tactile Communication, Cooperation and Performance: An Ethological Study of the NBA, Tags :  Team...

Multi-sensing success

Traduci al ITALIANO >>> We are learning machines and a fundamental skill that we have is the ability to naturally discern a success from a failure. This is what enable us to learn from experience. This is the first sense. For example we see that the team on the left is more engaged, involved and collaborative so is probably exploiting the team potential while the team on the right looks less interested, a little bored and detached so is probably not performing at his best. This is a qualitative first impression. Are we sure that it can tell...

Modern Leadership

Are you walking in the future or waiting in the prehistory ? Discover it reading this article here. A short excerpt from the article here. Tags :  Team Work | Agile | Lean Agile | Leadership | Team | Creatività | Innovazione | Team building |

Learning in the modern Enterprise

Moving from Formal to Informal Learning Memo: - Asking questions - Observation, Trial & Error - Job shadowing/rotation - Simulations - Study Group Tags :  Team Work | Agile | Pratiche | Creatività | Innovazione |

Fear driven programming

Traduci al ITALIANO >>> Fear driven programming:  /fɪə(r) draɪvn prəʊgræmɪŋ / noun definition: copy-paste, add a new flag and a new IF, never change/delete code, put new classes in a new project/code repository Treatment: To enable code-base-wide refactoring and deletion of unused code: merge all repos in one repo, replace unnecessary Reflection abuse and replace IoC (and similar) harmful XML Configcopy-paste, add a new flag and a new IF, never change/delete code, put new classes in a new project/code repositorycopy-paste, add a new flag and a...

Sustainable Test-Driven Development

Traduci al ITALIANO >>> Advice on writing good tests that make development easier avoiding adding dead weight code that is hard to maintain. Covered areas: test readability, complex test data, test diagnostics, and test flexibility. Interesting session from QCon conference, who practice TDD should look this recording :)  http://www.infoq.com/presentations/Sustainable-Test-Driven-Development Tags :  Team Work | Agile | Pratiche |

When the ingredient of a team success is unvisible

Traduci al ITALIANO >>> Have you ever happened to walk with one of your friends or your lover. Silently, no need to ask, no need to tell, no need to talk at all, instead just feel that connection, that shared understanding ?  And the simple astonishing joy for been there, in the same place, at the same time, now, together ? If you look at things from the outside, you will * not * notice an action, a word, a sound or a noise. The ingredient that make this moment special, is simply unvisible. I know, is...

Leadership evolution: commands => rules => boundaries

Traduci al ITALIANO >>> In the beginning only the Strong Directive Leadership styles was know, then leadership style evolved and now also the Process Leadership style is known. Do you agree with this description of the evolution steps of the leadership style ? Commands: command and control often together with a shared vision and a clear goal Rules: rules proven to be effective by practice, applied with force and flexibility; generative rules ...

Why? Perche?????

Traduci al ITALIANO >>> Why spend your life developing software unless you care about doing it well?   From The pragmatic programmer Tags :  Team Work | Agile | Pratiche | Progettazione Software |

Funny hard to die myths about software development

Traduci al ITALIANO >>> We already all know about this, but still very funny :) Twitted by Joseph Pelrine Looks also: 3 myths about software development Tags :  Team Work | Agile | Leadership | Team | Cliente | Aziende | Team building | Progettazione Software |

Replace conditional with...

Traduci al ITALIANO >>> Conditional statements like "If" and "switch" multiply the number of possible flows the code execution can follows. So they increase the complexity and the number of tests required to verify the code. => Conditional statements are time and effort (costs €€€) multipliers Here is a list of known techniques to eliminate conditionals : Replace conditional with polymorphism (look also the patterns template method and pluggable selector and  abstract factory) The patterns Null Object and Special Case ...

Focus vs multi-tasking

Translate into ENGLISH >>> Quando cerchiamo di aumentare la velocitá di un team, é piú efficace: - (a) avere un goal unico per lo sprint o (b) avere piú goal - (a) un dev che lavora a una user story alla volta o (b) a piú user story contemporaneamente - (a) cancellare lo sprint corrente o mettere i task urgenti e non pianificati nel prossimo sprint (con una durata dello sprint tale che si possa aspettare) o (b) aggiungerli allo sprint in corso - (a) un tester dedicato al 100% al team...

Tools build productivity like keyboards build software

Traduci al ITALIANO >>> People, skills and actual work come first.  And if you don't get it, gets a new job.  Even better, retires :D Courteously shared by Riccardo. Tags :  Team Work | Agile | Tools | Semplicità | Progettazione Software |

Irreversibile decisions, last responsible moment & Formula 1

Traduci al ITALIANO >>> Here I reflect about two concepts that Agile software development borrowed from Economics. And how they relate to the pit-stop that brought Button to win the Australian GP, and how they relate to the Alonso decision to delay the exit on the track for the Q1 session of the Malaysian GP that brought Ferrari to the early elimination. The concept of irreversibility was explained by Enrico Zaninotto italian professor in economics at the XP2000 conference: decisions the are irreversible, or to much expensive to revert,  are one of the prime drivers of...

Formula 1 values & agile software development

Traduci al ITALIANO >>> F1 values: Speed: think about the trade-off between raising the maximum speed at the Speed-Trap point of the track and at the same time minimizing the Lap time (these can be 2 conflicting goals: think about reliability and slow tracks with lots of corners). Excellence: that in F1 is the foundation to improve the performances and leads to success. Competition: competing with opponents is a source of great motivation and get...

Guide To Self-Organization

Traduci al ITALIANO >>> Interesting slides: The Dolt's Guide To Self-Organization View more presentations from Jurgen Appelo.   Tags :  Team Work | Agile | Complessità | Pratiche | Team building |  

La prova del 9

Translate into ENGLISH >>> Ecco dei numeri chiari, semplici e immediati per valutare il lavoro di un team sulla code-base: Guarda a quelli del tuo team, quando i numeri sono in modo evidente fuori scala e ancora in crescita é facile farlo notare al team e al CTO e chiedere loro di scoprire la causa e come cambiare questa tendenza: Principio K.I.S.S. verifica se lo applichi davvero Keep the Peel and Throw Out the Banana Come va il QI di gruppo nel tuo team? Se per esempio la code-base scomposta in...

Empower Other People

Interesting post: 50 Little Things You Can Do to Empower Other People See also Empower del team : Il principio , Esempi , Conclusioni (in Italian) Tags :  Team Work | Agile | Lean Agile | Leadership |

Principio K.I.S.S. verifica se lo applichi davvero

Translate into ENGLISH >>> Guardando i numeri, diresti che il tuo team pratica realmente il principio K.I.S.S. o diresti che segue la legge di Parkinson ?  .NET Framework 2.0 il nucleo é composto in tutto da soli 12 Assembly per piú di 12.000 classi (una media di 800 per progetto) e 2.800.000 istruzioni IL (190.000 per progetto) Fonte: Analyzing the .NET Framework 2.0 with NDepend  Google ha un singolo source code repository che é completamente accessibile a tutti i 10.000 sviluppatori. Sebbene tutti i sistemi vengono rilasciati indipendentemente l'uno dall'altro...

Coaching Self-Organizing Teams

Traduci al ITALIANO >>> Here is the link to the 3rd and last of this group of interesting presentations: http://www.infoq.com/presentations/coaching-self-org-teams Here my notes on tools described or mentioned in the presentation: self organizing systems what they are and how they work core group theory what drive the behavior of a team read about here The Core Group heat model how to stimulate a team to self-organize ...

Formula1 and Agile sw development

Traduci al ITALIANO >>> Michael Schumacher: driving is always about adapting to new circumstance Source: Looking very much forward to the start of the season - Schumi So it is the agile software development Looking forward for a new exciting F1 season What a qualifying session!  Vettel (Red Bull) leads on pole position, Ferrari very very near then McLaren and Mercedes. How will be the weather Sunday? Will the temperature of the air and of the track surface change? How will be tyres degradation during the race? What will be the pit-stop strategy of the opponents? How the engines, the electronics...

Divide et impera ... is a flawed principle

Divide et impera ... is a flawed principle. Merge and simplify ! Is the binomial formulas of software engineering :         a * b + a * d => a * (b + d)         Source 1: Uwe Aßmann from Linköpings Universitet Source 2: Addition through subtraction Tags :  Team Work | Agile | Pratiche | Progettazione Software |

Tacit knowledge

Traduci al ITALIANO >>> Tacit knowledge shape the way we perceive the world. Is made of subjective insights, intuitions and hunches. Have a technical dimension and a cognitive dimension that consists on beliefs, ideas, value, mental models and schemata. What we learn, what we discover and what we invent blooms in our tacit knowledge. How to make this tacit knowledge visible and expressible, how to communicate and share it with others ? Read this pdf: The concept of `Ba': Building a foundation for knowledge creation. And this article: Ba and Knowledge Creation in Scrum Tags : ...

Dealing With the Organizational Challenges of Agile Adoption

Traduci al ITALIANO >>> Here the link to the 2nd interesting presentation: http://www.infoq.com/presentations/Agile-Adoption-Joseph-Pelrine My notes of tools mentioned in the presentation: emotional resonance levels of a team adopting Agile within an organization read Leading Resonant Teams retrospective coherence of complex systems read on retrospective coherence part I system x knowledge matrix and sense-making for ontological boundaries ...

Abnormal Sprint Termination, ancora sulla

Translate into ENGLISH >>> La causa piú comune tra quelle che provocano la cancellazione dello Sprint in corso é quando il Product Owner valuta che non é piú utile completare lo Sprint (ad esempio perché il Goal dello Sprint é obsoleto e non piú valido). In questo caso é il Product Owner che ha l'autoritá di decidere la cancellazione. C'é un altro possibile caso. Scrum indica chiaramente che durante il Planning Meeting all'inizio dello Sprint gli Item dello Sprint Backlog sono scelti dal Product Backlog insieme allo Sprint...

50 Famously Successful People Who Failed At First

Traduci al ITALIANO >>> People make mistakes. This is not 'human error',  it is human nature Is this that permits us to learn, to adapt and to innovate. There is arrogant people that makes mistakes like everyone else but denies it and always thinks it's someone else fault. They think they are smarter just because they believe that anyone else is stupid. There is people that puts all his energy into avoiding mistakes, and this prevent them to pursue their potential. There is shy people, that makes mistakes like everyone else, when it happen they blush, and they try hard to learn...

Scrum: i meeting e la loro durata

Translate into ENGLISH >>> Tutti i meeting sono Time-Boxed: Sprint Planning: max 8 ore per uno Sprint di un mese, proporzionalmente meno per Sprint piú corti Partecipa necessariamente Team e Product Owner, SM opzionale Daily Scrum meeting: massimo 15 minuti Partecipa Team, sono opzionali Scrum Master e Product Owner Sprint Review: max 4 ore per uno Sprint di un mese, proporzionalmente meno per Sprint...

Sul Daily Scrum Meeting

Translate into ENGLISH >>> Alcune cose che Scrum prevede riguardo il Daily Scrum: É time-boxed con durata massima di 15 minuti Il luogo e l'ora sono fissi per tutta la durata dello Sprint Lo Scrum Master deve assicurarsi che il team abbia il Daily Scrum meeting ma non é obbligatorio che lo Scrum Master partecipi quando non é anche un dev del team. E' previsto che lo Scrum Master...

Blend of Science, Process &Teamwork

Traduci al ITALIANO >>> Have found this presentation very interesting: http://www.infoq.com/interviews/pelrine-social-network-complexity Here follows my annotations of tools mentioned in the presentation: speed dating to put teams together narrative inquiry or archetypal narrative used in requirements elicitation and surfacing problems Read the definition on wikipedia, read also this paper buffers to deal with external teams social network analysis or SNA...

OpenAgile Vs Scrum

Traduci al ITALIANO >>> Read about in this interesting post: Comparison of OpenAgile with Scrum To me they are really the same thing, explained and described in two different ways. This means to me twice the chances to understand it right... or one chance to understand it twice deeper. Indeed. If you are really curious about the deep similarities read this excerpt from OpenAgile The six blind men and the elephant and compare it with Sense Making a complexity science tool that stands at the foundations of Scrum. And you? Do you see more differences or...

Guardare alla propria adozione di Scrum/XP da una angolazione diversa

Translate into ENGLISH >>> Ecco dei riferimenti sull'argomento: Nokia Test di Bas Vodde e Jeff Sutherland: pdf e on-line  A Better Team di James Shore: on-line Scrum Checklist di Henrik Kniberg (Crisp): pdf Catalog of Scrum Smells della Scrum Community: link User Story Smells di...

Scrum: un processo di sviluppo Empirico 3 (generative rules)

Traduci al ITALIANO >>> Scrum is an framework with a simple set of rules that constraints on behavior and cause a complex adaptive system (the team and the company) to self-organize into an intelligent state See also: Scrum: un processo di sviluppo Empirico (ITA) e Scrum: un processo di sviluppo Empirico 2 (Scientists Give Their Opinion) And also Generative Systems and Complex adaptive system from Wikipedia,  Agile software development: the business of innovation, Highsmith-Cockburn, 2001 Tags :  Team Work | Agile | Complessità |

Root Cause Analysis & Diagrammi & Sense Making

Translate into ENGLISH >>> In questo pdf è documentato il diagramma causa-effetto utile a visualizzare e condividere i ragionamenti durante una Root Cause Analysis. L'autore è Henrik Kniberg di Crisp: http://www.crisp.se/henrik.kniberg/cause-effect-diagrams.pdf Chi è interessato ad affrontare l'argomento in modo avanzato, ecco i riferimenti ai concetti chiave: Wicked problems & Social complexity Sense making Dialog Mapping E i tool a supporto: Issue-Based Information System (IBIS) Compendium Tags :  Team Work | Agile | Complessità | Pratiche | Leadership |

Undecided / Incerto

“ Some problems are so complex that you have to be highly intelligent and well informed just to be undecided about them. ” --Laurence J. Peter Tags :  Team Work | Agile | Complessità | Progettazione Software |

Scrum: back to the foundations

Traduci al ITALIANO >>> The way Scrum works is that it surfaces existing problems and gives everyone an opportunity to solve them. So when an existing problem is surfaced, it is usually the current major bottleneck for the team or the company .  This cause some disagreement and discomfort: people usually have a good reason to do things in the way they are doing now. So it is important to tolerate disagreement and discomfort and to show...

Altruismo e Egoismo caratteri stabili della personalità

Translate into ENGLISH >>> Una ricerca pubblicata recentemente da Nature Neuroscience mostra che la tendenza a reagire negativamente a situazioni di inequità invece che non avere alcuna reazione, condividere e dividere equamente invece che cercare il massimo guadagno personale sono caratteristiche stabili della personalità di un individuo. Infatti hanno osservato che in situazioni di inequità negli individui prosocial si osserva una attività nella zona del cervello importante per il controllo automatico delle...

Release Often (rilascia spesso!)

Now in 2009 the practices reported here are well established and accepted. Already in 2006 the same practices emerged in the sw dev team of the F1 Racing Team I was part of and was reported in the keynote speach at the Italian Agile Day 2006. Oggi queste pratiche descritte qui sono note e riconosciute da (quasi) tutti. Già nel 2006 queste pratiche sono emerse spontaneamente nel team di sviluppo sw del team di F1 di cui ho fatto parte e sono state citate nella keynote del Italian Agile Day 2006.     How it works in Google as reported by Mark Striebeck...

Agile Cultural Patterns

From XpDay 2007 session People vs Process - Cultural Patterns of Software Organisations the slide here. The session on video on InfoQ: Beyond Agile Tags :  Team Work | Agile | Team | Progettazione Software |

Social aspects of Agile sw development teams

From XpDay London 2007, the slide of the session by  Elizabeth Whitworth: The social nature of agile teams Other slide on the same topic from Elizabeth Whitworth here. and also this interesting pdf document: Agile Experience:Communication and Collaboration in Agile Software Development Teams Tags :  Team Work | Agile | Team | Team building |

Science Scrum: Managing a research group the Agile way

From this experience report at the XpDay London some interesting idea on applying Scrum in a unique context. Lessons learn here imho can help to better understand the internals of a successful Scrum. Scientific research is usually done as an individual effort and with high level of confidentiality: work in progress is not shared with other scientists until it is officially published still researches and PhD students research projects have similarities,need to solve...

Criteria to assess the usefulness of a unit test

From the keynote at XpDay London: Mark Striebeck, engineering manager at Google where he is responsible for developer testing infrastructure, tools and adoption. Here are some criteria to assess the usefulness of a unit test How often the test fails? When the test never fails there are chances that it is not testing anything that need tests. Has the test been marked as "ignore" to...

Prioritize & Focus

Crystal clear and simple : Tags :  Team Work | Agile | Leadership |

Quali tecniche fanno parte della tua Arte di Programmare?

Quali tecniche, quali invenzioni e quali scoperte fanno parte della tua Arte di Programmare? Dargli un nome, renderle esplicite e consapevoli, condividerle e confrontarle è più utile e vantaggioso di quanto potessi immaginare. Comincio con il condividere le mie e aspetto di conoscere nei comments anche quelle degli altri. (((Clicca x leggere)))

Innovation, Disruption and the Future of the Web

Una presentazione interessante di Mitch Karpor, un personaggio che ha fatto la storia dei PC (leggi qui). Qui la presentazione: http://www.infoq.com/presentations/mitch-kapor-keynote-glue-web Dal minuto 30 considerazioni illuminanti: algorithms Vs humans e algorithms that argument-supplement creativity, human wisdom and  good human judgment poi sulle startup start-up "waterfall" Vs data-driven inspect-adapt start-up   Tags :  Team Work | Agile | Complessità | Creatività | Innovazione |

Gartner suggest to use an Emergent Enterprise Architecture

Gartner has identified seven properties that differentiate emergent architecture from the traditional approach to EA: Non-deterministic - In the past, enterprise architects applied centralised decision-making to design outcomes. Using emergent architecture, they instead must decentralise decision-making to enable innovation. Autonomous actors - Enterprise architects can no longer control all aspects of architecture as they once did. They must now recognise the broader business ecosystem and devolve control to constituents. Rule-bound actors - Where in the...

Creativity loves constraints, ideas come from everywhere

Marissa Mayer Innovation, design and simplicity This talk was given on March 14, 2008 in Portland, Oregon at the 39th Technical Symposium on Computer Science Education (SIGCSE 2008) From the presentation, important skills set for real-life software projects: Large projects & legacy code: taking an existing piece of code and changing it Scale: write code that scale and tests that support that scale requirements Resilience & Robustness: write algorithms that are inherently robust instead of recurring to manual tuning Working in team: no...

Il Kubler-Ross Grief Cycle applicato a un progetto Software

Ricordo Lisa Simpson parlare di qualcosa del genere in un episodio della serie (qualcuno sa quale ?). Il questo post  Challenging projects and the five stages of grief il  Kubler-Ross Grief Cycle  è applicato al umore di un developer che affronta un progetto sw decisamente impegnativo : Immobilisation stage: Initial paralysis at hearing the bad news. Denial stage: Trying to avoid the inevitable. Anger stage: Frustrated outpouring of bottled-up emotion. Bargaining stage: Seeking in vain for a way out. Depression stage: Final realization of the...

The six blind men and the elephant

Perception and Prejudice You may know the story of the six blind men and the elephant. Each blind man is touching a different part of the elephant. One is touching the tusk and thinks that it is a spear. Another is touching the leg and thinks it is a tree trunk. If you tell them that they are all touching the same thing, it is very likely that they will argue about what it is. Unless they are also truthful about their own limitations, it will be difficult for them to come to a unified vision about what...

Le PMI del Nord Est abbracciano il Lean

Ci sono le aziende che chiudono, quel­le che resistono e quelle che pensano. E che addirittura scoprono che il manage­ment può rivelarsi una risorsa decisiva anche per i Piccoli. Per di più senza biso­gna di assumere e pagare dei manager. Chi l'ha detto che le tecniche più sofisti­cate sono adatte solo alle grandi impre­se? Perché anche le aziende manifatturie­re con meno di 50 dipendenti non posso­no farsi in casa la loro rivoluzione cultu­rale? ... Caron è tutt'altro che pessimista. L'obiettivo è prepararsi per la ripresa e perciò è diventato, parole sue, «un fanati­co della lean production», il modello dell'impresa anti-burocratica alla...

Note to Programmers by Kent Beck in Extreme Programming Explained 2nd Ed.

Even programmers can be whole people in the real world. XP is an opportunity to test yourself, to be yourself, to realize that maybe you've been fine all along and just hanging with the wrong crowd. And here 2 more: From OpenAgile Primer, Foundation One: Truthfulness “Truthfulness is the foundation of all human virtues” - Bahá'u'lláh From Mike Cohn, Best  Agile Advice Contest Winners Scrum is like a mirror, use it like one and see your product and your team for what it really is, not what you think it is. It’ll transform the way you think about building anything.  - Gabe Brown What...

Hackman sul teamwork

Rilancio qui questo post segnalato da Pietro Di Bello. che riporta considerazioni che corrispondono abbastanza a quanto ho visto/vissuto sinora:   Hackman sul teamwork - Mi annoto in particolare la frase: "Perfino il miglior leader non è in grado di far funzionare bene un team.   Tutto quello che può fare è lavorare per aumentare le probabilità di successo.   Ma è il gruppo stesso a determinare il proprio futuro." - quando invece è un cattivo elemento che finisce per danneggiare tutto il team e quando l'ostacolo é esterno al team: The bad apple, bad decisions - e quanto invece i conflitti nel team aiutano a...

Innovation, where it come from?

Video source: http://www.cognitive-edge.com Tags :  Team Work | Creatività | Innovazione |

Coaching Self-Organizing Teams

Una presentazione molto interessante sulle applicazioni pratiche della scienza della complessitá alle dinamiche di team. Un libro è in preparazione, Joseph Pelrine tiene corsi con esercitazioni pratiche e simulazioni sociali (è il prox corso a cui mi interessa partecipare) per vedere i meccanismi in azione e imparare ad utilizzarli, e nelle conferenze/presentazioni condivide pratiche che si basano sui progressi scientifici di questa nuova disciplina. Per ora ecco la presentazione: http://www.infoq.com/presentations/coaching-self-org-teams Summary Self-organization is a tricky thing. Agile coaches are challenged with how to motivate/persuade/trick their teams into self-organizing and doing things, without telling them what to do. This tutorial presents an...

Transparency in practice

Key points imho are share information instead of retain information as a way to exercise strict control setting goals instead of assigning tasks let people take responsibilities instead of giving orders monitor outcomes instead of controlling tasks/activities execution From the article On the Way to Agile Transparency: Climbing the Big Wall  : Transparency is a major dynamic associated with agile development. ...  When broken down, this concept consists of management components such as individual responsibility, commitment, and accountability. “Organizational responsiveness comes...

The need for top talent

Barry Boehm’s principle of top talent, “use better and fewer people" [1] is central to an agile process. Agile processes strip nonessential activities from projects, leaving developers more time to develop. Although the difference in productivity between the best and worst programmers on a team may exceed the documented ratio of 10:1 [2] the productivity difference matters most when the programmers are working on tasks essential to software delivery. Productivity differences are irrelevant when the programmers are engaged in nonessential activities....

Lean Software Development MindMap

Clicca sull'immagine per la MindMap in formato grande: Fonte:  http://bizdriven.blogspot.com/2009/07/lean-software-development-mindmap.html Gli altri post sul Lean Software Development: http://blogs.ugidotnet.org/luKa/Tags/Lean Agile/ Tags :  Team Work | Agile | Lean Agile | Leadership |

W-Scrum (e poi?)

Quando... L'azienda mantiene una cultura/mindset Comando e controllo invece delle cultura/mindset Empowerment e delega Il Project Manager e il team (e)seguono il processo in modo predefinito  invece di implementare e farsi guidare dai cicli di feedback in modo empirico ...ecco alcune mie (condivisibili o meno) riflessioni: Percorrere una transazione verso la cultura/mindset Empowerment e delega  la trovo una questione molto "sociale" : di relazione tra le persone, della pazienza e della capacità di sviluppare reciproca fiducia basandosi sui successi via...

W-Scrum ? (esempi)

L'azienda mantiene una cultura/mindset Comando e controllo invece delle cultura/mindset Empowerment e delega Ad esempio il feedback del team viene sempre accolto con pazienza e apertura, tuttavia nessuna azione concreta/significativa segue. Ad esempio meeting in cui si decidono questioni importanti che riguardano il team o il progetto sono fatti in modo assolutamente opaco: in "segreto", da poche persone e il team e le persone coinvolte o condizionate dalle scelte non vengono informate e ascoltate. I...

W-Scrum?

 W-Scrum è una adozione di Scrum che usa i nomi e mima le "cerimonie" di Scrum e   restando nella sostanza un Waterfall Solitamente capita di implementare W-Scrum a  Project Manager davvero capaci, quando 2 ingredienti essenziali di Scrum vengono fraintesi: L'azienda mantiene una cultura/mindset Comando e controllo invece delle cultura/mindset Empowerment e delega Il Project Manager e il team (e)seguono il processo in modo predefinito  invece di implementare e farsi guidare dai cicli di feedback in modo empirico ...

Ken Robinson, Do Schools Kill Creativity?

Kids will take a chance. If they don't know, they'll have a go.  They're not frightened of being wrong. Now, I don't mean to say that being wrong is the same thing as being creative. What we do know is, if you're not prepared to be wrong, you'll never come up with anything original. If you're not prepared to be wrong. Fonte: Can Scrum Help Facilitate Creative Process? Tags :  Team Work | Agile | Creatività | Innovazione | Progettazione Software |

Agile Skills Project

An ongoing project to define an Agile Skills Inventory and also defining a “learning ecosystem” including paths of learning, or “quests” and defining self and peer assessments: http://agileskillsproject.com/ and https://sites.google.com/site/agileskillsprojectwiki/home Tags :  Team Work | Agile | Pratiche |

Un esempio di semplicità con Resharper (VS key mapping)

Cambiato team cambiano gli shortcut di default e quindi aggiorno il post originale con quelli di Visual Studio: - - - ((( continuo la serie di post pratici sulla semplicità. La sfida di Gino qui ora è trovare qualcosa ancora da togliere, da sottrarre per arrivare all'essenziale da cui cominciare, al minimo indispensabile a cui non si può rinunciare  ))) Gino conosce tutti gli short-cut di Resharper, praticamente li ha inventati lui  ((( minchia! ))) Il collega che ha introdotto al refactoring ci ha preso gusto e ora Gino vuole avviarlo ... all'uso di Resharper! Per farla semplice da dove comincia? Gino fa...

Conway's Law (persone e sw)

Conway's Law Organizations that design systems are constrained to produce designs which are copies of the communication structures of the organization.     Conway's Law is a valid sociological observation. You can find case studies from the Harvard Business School (here the pdf) and from Microsoft Research (here the publication and also here: The Influence of Organizational Structure on Software Quality: An Empirical Case Study). Some interesting pratical example of organizational and cultural factors is in Mike Cohn presentation: Scaling Scrum and Working...

Scrum: te l'ha ordinato il dottore?

Si, lo so, quando non c'è nessun processo di sviluppo che accompagna il ciclo di vita dello sviluppo sw,  qualsiasi cosa sembra meglio di niente! Oppure quando si è alle prese con un Waterfall o un RUP che non calza tanto da sentirsi agili e scattanti quanto un dinosauro imbalsamato ed esposto al museo. Ma non è una buona scusa per adottare Scrum a occhi chiusi, non l'ha mica ordinato il dottore! Ti sei informato prima cosa comporta, cosa conviene, e quali sono i requisiti per avere successo? E poi avere successo con Scrum è quello che realmente ti...

A quote of Richard Phillips Feynman

A quote of Richard Phillips Feynman (Nobel in Physics 1965) from 'The Character of Physical Law' (1964): It doesn't matter how beautiful your theory is, it doesn't matter how smart you are. If it doesn't agree with experiment, it's wrong. Tags :  Team Work | Agile |

Everybody needs a coach (Google CEO says)

Se conosci una persona esperta in Agile chiedigli chi sono i suoi maestri. L'Agile è una disciplina pratica come il Rugby, la musica, il nuoto, la corsa, lo Judo.  Pensi possa esistere un Judoca o un nuotatore professionista senza maestri? Quando la risposta è "nessuno", fatti una domanda ... e datti una risposta ! :D Segnalato da: Google CEO says everybody needs a coach Tags :  Team Work | Agile | Leadership | Professione |

Do we really need Domain Specific Languages ?

One of the features of DSLs often cited is enabling non programmers to write "computer programs" in near natural language. So for example business people or final users will be able to write requirements for a software application in plain English and developers will be able to "run" the requirements just like a computer program that test and verify  the application against the requirements. Well, not in plain English, but at least in a way easier to understand to business people or final users than the current alternative e.g. FitNesse. Michael Feathers points out that even when using a natural...

Tests: a Glossary

Developer tests: Unit tests : Isolated, atomic, innocuous: exercised with xUnit often  in combination with mocks objects => useful to improve code quality with continuous design Integration tests: Isolated tests that might change the state of the system, i.e: saving into database, writing file... An integration test does not represent a functional requirement as is. Can be written for xUnit. They check the integration of our code with a third party tool or with the different layers of our own code, i.e: the...

Sul dare feedback negativi 3° (experience report)

   Tempo fa ho organizzato un meeting su come avanzare l'uso di Scrum (leggi aumentare le chances di successo dei progetti, migliorare le prestazioni del team e realizzare sw realmente utile al business dell'azienda) in una azienda. Nel meeting era necessario dare con trasparenza anche alcuni feedback negativi riguardo 2 cose della implementazione corrente. Mi sono letto e riletto i suggerimenti annotati nei post precedenti. Il risultato? I feedback sono stati accolti, riconosciuti e discussi con interesse. E' stato chiesto di organizzare un altro meeting per proseguire il dialogo e approfondire gli argomenti. E alla fine del meeting invece della sottile tensione...

Space Monkey (Processing)

Il mio terzo Sketch con Processing Come interagire col mouse: ~ move left-right to rotate left and right ~ move up-down to raise and lower rotation intensity ~ click and drag to change the point of view Clicca per vederlo in azione: P.S. ora sto lavorando alla mia prima elaborazione video con Processing, se qualcuno ha esperienza di creazioni video da uploadare su youtube accetto volentieri consigli e suggerimenti Tags :  Team Work | Agile | Creatività | Innovazione |

Sul dare feedback negativi 2°

   In questo post ci sono idee su quando e come dare feedback negativo : Sul dare feedback negativi    Una cosa altrettanto importante é bilanciare il feedback negativo cioé proporre idee di come migliorare, segnalo questi link sul argomento: - Facilitation Antipattern: Negator - il Perfection Game     Qualdo per te l'argomento é importante, comunicalo con urgenza; quando le conseguenze possono essere serie descrivile esplicitamente; quando sei preoccupato, dí come ti senti (il linguaggio del corpo spesso giá parla da se). Funziona meglio di un atteggiamento catastrofista o allarmante. Tags :  Team Work | Agile | Lean Agile | Leadership | Comunicazione |

Girandola 19 (windmill 19)

Ecco il mio secondo Sketch con Processing Come interagire: ~ move left-right to rotate left and right ~ move up-down to raise and lower rotation intensity ~ click and move to change the point of view L'immagine di Background viene da www.davebollinger.com/works/ Clicca per vederlo in azione: Tags :  Team Work | Agile | Creatività | Innovazione |

Imparare divertendosi: è per questo che abbiamo iniziato a programmare

Post molto interessante:  Work as Play (Zenhabits) Segnalato da Work as Play (PierG) Da 'Isole nella rete' del 1988 di Bruce Sterling :         Non abbiamo 'lavoro' solo cose da fare e gente che le fa. Per noi giocare è Apprendere... Tags :  Team Work | Agile | Leadership | Creatività | Innovazione | Team building |

3 myths about software development

The code quality is related to the available time for implementing the solution wrong code quality is related to developer's skills and is related to company's structure and organization in teams and departments  ((it took me 30 years to learn from practice what my grandmother told me when I was young: it takes as much time to do something wrong as it take to do it right))) The...

Db deploy: SQL delta scripts Vs ActiveRecord Migrations pattern

Tool: ToughtWorks DbDeploy.NET - use ActiveRecord Migrations pattern - You can use other approaches if you have an ORM and you haven't released to production yet. - You shouldn't use this pattern When you have a huge legacy database - reference:  http://www.dbdeploy.net/ Tool: Dbdeploy - use SQL delta scripts - for developers or DBAs who want to evolve...

Tool di automazione Vs tool di suppporto

Ho notato questa distinzione che condivido qui: Tool di automazione Esempi: DbDeploy, CruiseControl.NET Cosa fanno: Automatizzano un task, una attività per il team di sviluppo, ad esempio eseguono automaticamente una build o creano automaticamente un setup-kit. Come: offrono un servizio che una volta creato non richiede sforzi, impegno e skills da parte dei developer Tool di supporto Esempi: PivotalTracker, NUnit, RhinoMock ...

Hai un buon rapporto con le nuove tecnologie ? (Project complexity budget)

Un articolo che mi ha fatto riflettere, molto interessante spiega la tesi che spendere il complexity budget sulla Continuous Integration e a cascata TDD ha un impatto positivo sul progetto maggiore che investire su programming languages e frameworks:    Taming the project complexity budget by focusing on continuous integration Quale di queste 2 progetti descritti qui preferisci ? Project is “awesome”, as it uses nice a programming language plus frameworks and tools. Design is “perfect”, methodologies are used...

Hai un buon rapporto con le nuove tecnologie ?

Un programmatore senior si crea degli spazi sicuri per il divertimento, la scoperta e l'apprendimento di nuove tecnologie[1] all'avanguardia, le pesa le valuta quanto sono stabili e affidabili e dopo le usa sul lavoro solo  dove, quando e quanto sono utili al progetto Un programmatore inesperto usa progetti cliente al lavoro per provare nuove tecnologie che non conosce bene, che non ha provato e valutato a sufficenza, i cui benefici al progetto e alle persone sono poco chiari Sei quello che mangi...

Michael Feathers TDD/Refactoring course in Stockholm

In September 15-17 with Michael Feathers the author of  Working Effectively with Legacy Code.    The info about the course are here. While the Nokia Test help to assess the ability of an Agile team to Inspect+Adapt to deal with the Software Development Life Cycle (that for in-house developers includes Operations and Maintenance)...     ...the number of code duplications and of if/switch in the code base can assess the ability of an Agile team to effectively deal with coding: duplications and of if/switch are the primary costs/time multipliers of software development (1 duplication => double the effort for a feature change,...

Egoismo vs Altruismo: Chi vince ?

E' più conveniente un comportamento egoista o uno altruista ? Quando, come e perché ??? Questa serie televisiva in 3 parti The Genius of Charles Darwin indaga le risposte a queste domande. Ho trovato la 2nda parte particolamente interessante. Un assaggio qui su Youtube. Buona visione, buon divertimento :) Tags :  Team Work | Agile | Team | Conflitto | Negoziazione |

Update su Game e Simulazioni

Ho aggiornato la lista di giochi e simulazioni con i nuovi link che ho raccolto utili a definire un buon piano di lavoro per apprendere Scrum e team-work [*]: Qui game/simulazioni: http://blogs.ugidotnet.org/luKa/archive/2009/04/21/comportamenti-che-funzionano-la-pratica-12.aspx Qui coding dojo / kata: http://blogs.ugidotnet.org/luKa/archive/2009/01/22/coding-migliore-lo-stile.aspx _______________________________ [*] Why Role-Plays work to learn Agile   Tags :  Team Work | Agile | Lean Agile | Complessità | Leadership | Team building |

Startup, quando programmare ci divertiva ancora

   Per ricordarci quando programmare ci piaceva davvero e ancora, il senso della scoperta e dell'avventura Una storia da non perdere Code Rush:  the commercially-unavailable documentary from 2000 about the open-sourcing of the Netscape code base and the beginning of the Mozilla project. A proposito di Startup 2 link in tema Baltic & Nordic Startup index, Sweden 100 da cui mi annoto queste : - Spotify  (Music biz snapped up Spotify shares - http://www.stardoll.com/ (teenage girl community, 25 million user accounts) - http://www.emotionr.com/ - http://www.bodybug.se/ - http://www.bluewalks.com/ (condividere percorsi di passeggiate) - http://hittatiden.nu/ (fissare un meeting) - http://jalbum.net/ (album fotografici di qualità) Tags :  Team Work |...

Il mio primo esperimento con Processing

    Ho scaricato Processing e in pochi minuti ho completato l'installazione. Ho scorso gli esempi nella sezione Lerning per scoprire quello che è capace di fare e ho provato anche le librerie esterne per assicurarmi che l'acquisizione di immagini e l'image recognition real-time funzionava bene sul mio PC.  1 ora di divertimento è decisamente volata, tutto ha funzionato al meglio, l'ambiente è stabile  e quindi tempo ben speso, si prosegue :) La sezione Getting Started è piacevole e scorrevole e siccome il miglior modo di imparare è fare, comincio il mio Sketching con Processing, c'è un mucchio di cose da provare e...

The technology is the easy part

The technology is the easy part. Understanding what drives people - individuals, societies, what makes cultures clash - all of those questions are way, way harder to answer than how to solve any particular technical problem. Dean Kamen, inventor/entrepreneur Dean Kamen è l'inventore di Segway che è poggia sui risultati di iBOT un progetto ancora più importante eambizioso (a medical technology, made to help people with severe mobility problems) e figlio del fumettista Jack Kamen Fonte: Iconoclasts Season 2 Episode 4: Isabella Rosellini...

Tra un buon programmatore e uno ottimo - 2°

Un buon programmatore sa realizzare il disegno di una applicazione nuova Solo un ottimo programmatore sa migliorare il disegno di una applicazione esistente Il disegno di una applicazione nuova rappresenta una dichiarazione astratta di intenti la speranza che altri troveranno il codice semplice e facile da modificare ed evolvere. Il lavoro di migliorare il disegno di una applicazione esistente giorno per giorno è la realizzazione pratica di un disegno e il suo reale utilizzo perchè quotidianamente usa il disegno fatto ieri per semplificare il codice e renderlo più malleabile e oggi realizza un disegno per rendere possibile il lavoro che c'è da fare...

It takes more than smart people to succeed. It takes smart people who have the interpersonal skills for creative collaboration

Groups that avoid conflict won't be able to face tough issues or handle the creative conflict that generates new ideas. Groups that are highly competitive won't share ideas and build on other's ideas. People won't share the credit for success, further decreasing the chance for creative collaboration. Groups that defer to a person of higher status will miss many good ideas, and fail to tap and develop the talents of the entire group. ...

The 11 Laws of the Fifth Discipline (Systems thinking)

   The ones that I prefer actually are 6 and 2, the ones that  arouse my curiosity are 3 and 8.  And your ones? Today's problems come from yesterday's "solutions." The harder you push, the harder the system pushes back. Behavior will grow worse before it grows better. The easy way out usually...

Ruby: il bello e il brutto di

Il brutto: Monkeypatching is Destroying Ruby I pro e i contro: Ruby at ThoughtWorks (Fowler analizza pro e contro con dati reali da progetti cliente fatti con Ruby) Ruby per .NET: IronRuby In estrema/esagerata sintesi alcune frasi rubate:      It offers palpable gains in productivity      Is Ruby Slow? In a word "yes" even by the standards of scripting languages      Is a Ruby Code-base Hard to Understand? no se hai sviluppatori sopra la media, che usano approcci altamente           disciplinati come XP e danno molto valore ai test Un libro per cominciare ? L'esperto...

System Archetypes

   I system archetypes descrivono i comportamenti di un sistema, in particolare situazioni, e dinamiche che emergono comunemente in aziende e organizzazioni. Sono stati studiati e descritti nel 1990 da Peter Senge nel libro The Fifth Discipline e sono alla base del System Thinking. Insieme ad ogni archetipo c'è la spiegazione delle forze in gioco, come si combinano e che effetto producono le possibili azioni. 1 Balancing process with delay Early Warning Symptom: "We thought we were in balance, but...

The Seven learning disabilities (in organizations)

From The Fifth Discipline by Peter Senge (MIT) 1   I am my position 2   The enemy is out there 3   The illusion of taking charge 4   The fixation on events 5   The parable of the boiled frog 6   The delusion of learning from experience 7   The myth of the management team  Here is the description of all seven : Seven learning disabilities which are often responsible for organizational failure I'm very good to avoid myself 1 and 2, while I find it more difficult to avoid 3. I've seen...

Why Role-Plays work to learn Agile

Role-Plays work very well to learn and improve agile practices, the reason is explained in The Fifth Discipline by Peter Senge: 6. THE DELUSION OF LEARNING FROM EXPERIENCE The most powerful learning comes from direct experience. Indeed, we learn eating, crawling, walking, and communicating through direct trial and error—through taking an action and seeing the consequences of that action; then taking a new and different...

Le “verità” sul Project Management

Un post spassoso di Lorenzo: Le “verità” sul Project Management Le mie preferite sono 8) There's never enough time to do it right first time but there's always enough time to go back and do it again. 51) The person who says it will take the longest and cost the most is the only one with a clue how to do the job. 6) A user will tell you anything you ask, but nothing more. E le tue ? Tags :  Team Work | Agile | Leadership |

Art & Code: e ora divertiamoci

    Un po di idee per divertirsi imparando e smanettando: Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction Di tutti i libri su processing mi sembra quello piú leggero e con l'approccio piú pratico x divertirsi smanettando Processing is an open source programming language and environment for people who want to program images, animation, and interactions. Un modo divertente di mettere in pratica...

Tra un buon programmatore e uno ottimo

Ogni buon programmatore sa risolvere un problema difficile aggiungendo complessità Solo un ottimo programmatore sa farlo semplificando Bel principio !  Come metterlo in pratica ? Per esempio ... - Non confondere un sintomo con la causa principale del problema. Puoi verificare con i 5 perchè e la root cause analysis. E affronta la causa principale ora. - Lascia la soluzione tecnologica (serve un nuovo tool, serve questa libreria, serve questo prodotto) come 3za opzione - Prima cerca la soluzione nelle relazione tra le persone (tra...

A Vicious Triangle of Organisational Conflict

   Se hai lavorato in una grande azienda    sicuramente riconosci la situazione spiegata qui: A Vicious Triangle of Organisational Conflict    Guarda anche: Negoziare un Conflitto : le differenze tra piccola e grande azienda Tags :  Team Work | Comunicazione | Conflitto | Negoziazione | Team |

Simposio Arte & Codice

ART && CODE SYMPOSIUM: Processing, Ben Fry and Casey Reas from STUDIO for Creative Inquiry on Vimeo.   ART AND CODE is a symposium on programming tools for artists, young people, and the rest of us Guarda anche: Art Oriented Programming & Live Coding Tags :  Team Work | Creatività | Innovazione |

Learning-Flow zone

Task vs Skills Demand vs Safety Tags :  Team Work | Agile | Leadership | Disciplina | Team building |

Altre indicazioni utili dalle simulazioni sociali

Ho scovato questo libro in rete Social Simulation: Technologies, Advances and New Discoveries (Premier Reference) una conferma indiretta che sulle simulazioni sociali c'è un grosso interesse e nuovi risultati continuano ad emergere. Mi annoto in sintesi (...) e collego ai post precedenti Chapter I: Fairness, commitment and inequality Una conferma sulla teoria del individualismo illuminato Una aggiunta su come la possibilità/eventualità di stringere rapporti di cooperazione con partner più forti (es. con maggiore conoscenza o esperienza) promuove l'uso di strategie più eque perché favorisce la...

Team Building

Una mind-map dal open-space tenuto da Jacopo Franzoi alla UGIALT.NET conference Leggi il post completo di Jacopo qui: http://jfranzoi.wordpress.com/2009/06/28/about-how-pleasant-a-saturday-can-be/ Tags :  Team Work | Agile | Team building |

Scrum: un processo di sviluppo Empirico 2 (Scientists Give Their Opinion)

Riporto dal sito di Ken Schwaber Scientists Give Their Opinion Why do the defined processes advocated by SEI CMM not measurably deliver? We posed this question to scientists at DuPont Chemical's Advanced Research Facility, where research into biochemical processes is applied to process automation. The scientists inspected the systems development process. They concluded that many of the processes, rather than being repeatable, defined, and predictable, were unpredictable and unrepeatable. With that, the scientists explained the difference between predictable (defined) and unpredictable (empirical). ... A defined process is predictable; it performs the same every time. An empirical process requires close watching and control, with frequent intervention....

Scrum, XP e le pratiche di Engineering 2 (XP @ Scrum)

Riporto dal sito di Ken Schwaber XP @ Scrum Scrum has been employed successfully as a management wrapper for Extreme Programming engineering practices. Scrum provides the agile management mechanisms; Extreme Programming provides the integrated engineering practices. An article written by Ken Schwaber and Kane Mar on one implementation is at the Prentice Hall InformIT web site.      Continua la lettura: http://www.controlchaos.com/about/xp.php Vedi anche Scrum, XP e le pratiche di Engineering Tags :  Team Work | Agile | Pratiche |

Scrum: quando non é divertente, c'e qualcosa che non funziona

Uno delgli Smell di Scrum:  quando non é divertente, c'e qualcosa che non funziona Tags :  Team Work | Agile | Team | Progettazione Software |

Shock therapy self-organization in Scrum

Una presentazione interessante di Jeff Sutherland : Shock therapy self-organization in Scrum e qui il video 2 slide divertenti Scrum Sensei When you need me, but do not want me, then I will stay. When you want me, but do not need me, then I have to go. Nanny McPhee The Senior Agile Programmer "Unfortunately, no one can be told what the Matrix is. You have to see it for yourself." Morpheus serve saper essere forti e flesibili con la Shock Therapy  : l'esperienza dello ScumMaster é fondamentale perché serve la certezza della reale utilità nel applicare le regole li, in quel preiciso momento e...

The Thinking Tool called Agile

Da Crisp ecco il pdf con le slide  indicato per chi é interessato al percorso di adozione/Uso di metodi Agili Tags :  Team Work | Agile | Lean Agile | Leadership |

Scrum, XP e le pratiche di Engineering

I metodi Agili come Scrum e XP non sostituiscono le pratiche di software engineering come ad esempio: - Analisi e definizione dei requisiti - Definizione delle specifiche - Disegno e modellazione del sistema - Implementazione - Versioning e Release management - Verifica e validazione - Stima E nemmeno si sovrappongono.      I metodi Agili fanno si che ogni pratica di engineering sia impiegata nella misura in cui serve allo specifico progetto (che emerge dal loop di inspect-adapt) con semplicità (dovuta all'uso costante/iterativo della pratica, dalla sua specializzazione  e dalla consapevolezza del fattore  umano/sociale) Cosi nella pratica in molti casi si scoprono degli...

Community-Based Innovation

The model is based upon the open, voluntary, and collaborative efforts of users - a term that describes enthusiasts, tinkerers, amateurs, everyday people, and even firms who derive benefit from a product or service by using it. Innovative communities have been influential in product categories as diverse as automobiles, sports equipment, and personal computers. OOPSLA 2008 presentation    Community-Based Innovation: From Sports Equipment to Software   by  Sonali K. Shah, Assistant Professor in the Management and Organizations group at the University of Washington's Foster School of Business Questo studio conferma le intuizioni di Brian Eno: - Creatività: dove noi tecnici possiamo migliorare - Creatività collettiva   ...

Decisions by consensus without compromise

One of the Toyota Way principles is « Nemawashi », take decisions by consensus. ... The consensus-building process solicits ideas and review from everyone involved so that the final idea is usually a lot stronger than the original. But there’s one big misunderstanding about consensus. Consensus doesn’t require Compromise Leggi il post : http://blog.nayima.be/2009/06/19/nemawashi-decisions-by-consensus-without-compromise/ Guarda anche: Negoziazione integrativa : nasce dalle differenze Tags :  Team Work | Agile | Lean Agile | Conflitto | Negoziazione | Motivazione | Progettazione Software |

When to stand back, when to step in

Self-organizing teams still need managers. But those manager need to know when to step in, and when to stand back. Helicopter Managers step in too soon. Absentee Managers throw up their hands and say "you figure it out," no matter what the issue Here are guidelines to help managers gauge their actions with self-organizing teams If the team has sufficient skills to solve the problem then give them space else ask questions to help them get unstuck. This would help in building the skills eventually. When time is not of the essence give the team...

Qualità subito

Il principio XP che guida questo modo di procedere è  Quality Ecco l'esempio di alcuni criteri di qualità che richiedono tempo e sono indispensabili già da subito e quindi vanno conteggiati nelle stime dei tempi : il codice deve essere nel Source Code Repository il software deve avere una Build Automatica con i rispettivi test il software deve avere degli script di deploy / un setup kit con la gestione del versioning ...

Qualità in Small-Safe-Steps

I principi XP che guidano questo modo di procedere sono Improvement, e Baby Steps Ecco degli esempi di miglioramenti della qualità che richiedono tempo e sono a rischio di errore e quindi vanno fatti in modo incrementale : Remove code duplication tra 2 diverse classi o pagine aspx, tra una una pagina asp e una aspx - quando è la nuova feature che si sta scrivendo che crea la duplicazione invece di eliminarla subito è più sicuro prima crearla rendendola evidente e scrivere i test e  solo poi provare a eliminarla. cosi si consegna la nuova feature funzionante,...

Qualità a tempo zero

Ecco esempi di miglioramenti della qualità del codice  che non richiedono tempo ma solo la conoscenza tecnica e la consapevolezza che sono utili: Rename di classi, metodi, argomenti, variabili con nomi che descrivono in modo chiaro cosa fa il codice - anche un nome lungo e prolisso è meglio di una lettera o un acronimo incomprensibile Replace dei commenti con estrazione di blocchi di codice in un nuovo metodo e introduzione di variabili intermedie con nomi esplicativi - il codice viene compilato ed eseguito per queto...

Flaccid Scrum - cominciamo dalla definizione

Unskilled developers - most developers working in a team are unable to build an increment of product within an iteration. They are unfamiliar with modern engineering and quality practices, and they don’t have an infrastructure supportive of these practices. Ignorant customer - most customers are still used to throwing a book of requirements over the wall to development and wait for the slips to start occurring, all the time adding the inevitable and unavoidable changes. Belief in magic - most customers and managers still believe that if they want something badly enough and pressure developers enough to do it, that it will...

A View on the Future of Agile e Beyond Agile

Queste slide sono anche l'occasione per scoprire la storia dell'Agile dalla sua nascita, come è vista l'adozione dell'Agile in italia e perchè e la Tecnica del pomodoro tutta italiana. Ecco le slide di A View on the Future: http://www.crisp.se/futureofagile/slides/davidanderson E qui la presentazione Beyond Agile: Cultural Patterns: http://www.infoq.com/presentations/beyond-agile Tags :  Team Work | Agile | Lean Agile | Pratiche | Leadership | Creatività | Innovazione | Progettazione Software |

Kanban learning: do __NOT__ multi-task !

Il multi-task nel lavoro delle persone produce più danni che vantaggi. Un dato di fatto chiarom noto e assodato. Compito del Coach, Scrum Master è schermare il team e fermare immediatamente il multi-tasking. Riporto un nuovo post a questo proposito :  Kanban learnings - Running multiple projects hides impediments (da Crisp) 6 months after we began using Kanban to two support / system administration teams they realized that the downside of having multiple projects running outweighed the possible upside. ...

Inspect & adapt: quanto tempo serve perchè una azione maturi i risultati

In Scrum c'è la reprospective a ogni Sprint. In XP c'è sono anche una retrospective trimestrale più strategica. SI raccoglie il feedback, lo si analizza (es. root cause analisys), si pensano delle azioni (es. Stacey Matrix) e si mettono in atto. Cominciando con il primo semplice passo utile. Quanto tempo aspettare prima di verificare quali frutti ha maturato l'azione  ? If we set the decision lenght of a goal too far - the goals will be eaten up by the imminent future and risk lose focus. If the...

Scrum vs Kaban

Differenze Iterations - In Scrum you work in iterations, Kanban sees development as a forever ongoing flow of things to do. Commitment - In Scrum team commits to what they will do during a sprint Estimations - In Scrum you must estimate. In Kanban it's optional. Crossfunctional teams - That's one of the pillars of Scrum. For Kanban it's optional. Similitudini Prioritized backlog self-organizing team transparency inspect & adapt pull scheduling ...

Esperienza di coding Agile in UGIdotNET

Ecco i risultati finali alle domande per sondare quanta esperienza di coding Agile c'è tra i membri di UGIdotNET: Esperienza di coding Agile in UGIdotNET Una lettura personale dei dati: Rispetto al Design dove la comunità Java era in anticipo, qui la comunità .NET invece non è affatto rimasta a guardare Tags :  Team Work | Agile | Pratiche |

Design strategies: Kent Beck presentation

I've seen this presentation, found it very useful : http://www.infoq.com/news/2009/06/responsive-design Some quick excerpt from the presentation here. A design goal: Steady Flow of ... Features ! A design definition: Beneficially Relating Elements (that's a thing and also an action) Design principle: safe steps Some design strategies: Leaps vs Parallel, Stepping Stone vs Simplification  (here slides that explain this http://www.slideshare.net/deimos/kent-beck-effective-design) Tags :  Team Work | Agile | Complessità | Pratiche | Creatività | Innovazione | Semplicità | Progettazione Software |

Lean, Agile, Scrum e XP

Una immagine meglio di 100 parole :) Fonte: http://www.crisp.se/bok-lean-agile-scrum-xp (in svedese) Dalla stessa azienda di Scrum and XP from the Trenches (inglese) Tags :  Team Work | Agile | Lean Agile |

Scrum is not a silver bullet

Scrum and Agile are based on the hypothesis that : there is no meta-solution for software development Just a framework within which we will be empirical – inspect and adapt Tags :  Team Work | Agile | Pratiche | Leadership |

Sprint Abnormal Termination

Interrompere uno Sprint-Iterazione e ripianificarlo é di gran lunga piu efficace che proseguire quando é in grave ritardo e quando attivitá non pianificate prendono la precedenze. Se da un lato lo Sprint-Iterazione "deve" essere atomica, dall'altro é necessario che sia possibile e facile fare un "rollback". Imho le due cose vanno a bracetto. Sprint Abnormal Termination Is the premature cancellation of a Scrum Sprint, due to one of several causes: Certainty that the Sprint Goal cannot be achieved Urgent bug fix or feature development request that cannot wait until the normal completion of...

Scrum: Roles & Responsibilities

Product Owner ► Prioritizes features according to market value ► Is responsible for the profitability of the product (ROI) ► Defines the features of the product and decides on release content ► Can change features and priority after every Sprint ► Accepts or rejects work results ScrumMaster ► Ensures that the team is fully functional and productive ► Enables close cooperation across all roles and functions and removes barriers ► Shields the team from external interferences ► Ensures that the process is followed. Invites to daily scrum, Sprint review and planning meetings Team ► Cross-functional, seven plus/minus two members ► Selects the iteration goal and specifies work results ► Has the right to...

3 domande per conoscere l'esperienza di coding Agili tra i membri di UGIdotNET

Qui 3 domande x conoscere l'esperienza nelle pratiche di coding Agile tra i membri di UGIdotNET Qui i primi risultati Tags :  Team Work | Agile | Pratiche |

In equilibrio tra focus e creatività (da David Allen di Get Things Done)

     La capacità di controllare gli impulsi, concentrarsi è importante per imparare e sviluppare nuove abilità, per le relazioni personali e sociali e per il lavoro:     impegnarsi, organizzarsi, superare le distrazioni, adoperare la memoria e il pensiero sequenziale razionale_ Come lasciare spazio alla creatività in tutto questo ? Usando la capacità di distinguere un idea da un impulso a distrarsi,  lasciare spazio all'idea nel luogo e nel momento in cui arriva, fermarsi per svilupparla e... catturarla! All'inizio può essere caotico, una volta abituati è produttivo e creativo - imparare/fare/realizzare ricomincia a essere divertente Fonte: Be creative amid chaos, David Allen Tags...

Un esempio di semplicità col TDD: state based vs interaction based

    ((( continuo la serie di post pratici sulla semplicità ))) Gino ha a disposizione l'intero giorno in pair programming col collega per chiarirgli la differenza tra state e interaction testing. Per farla semplice da dove comincia? Comincia in pair a implementare uno state based unit test evidenziando i passi : Istanzia l'oggetto usando Stub per eventuali dipendenze esterne Inizializza lo stato dell'oggetto da testare Richiama l'operazione da testare Verifica che lo stato finale dell'oggetto è quello...

Breaking changes Refactoring 2° di 2

    Per esempio sollevare una eccezione che prima era silenziata e ignorata - aggiungere un vincolo di unicità per due colonne di una tabella Team Work Nel tecnico esperto con competenze di refactorig prevale il coraggio di cambiare per migliorare il codice e la consapevolezza che i vantaggi sono maggiori dei rischi Nel tecniico che ha la conoscenza storica del sistema prevale la tendenza a limitare cambiamenti che possono compromettere il sistema Nel CTO attento alle esigenze degli utenti/clienti prevale la attenzione all'operatività del sistema in uso e alle conseguenze pratiche di un malfunzionamento Invece di  radicare queste differenze...

Breaking changes Refactoring 1° di 2

    Per esempio sollevare una eccezione che prima era silenziata e ignorata - aggiungere un vincolo di unicità per due colonne di una tabella Tecnica di coding      Fare l'analisi statica del codice  - tipo Find Usages con Resharper - in modo esaustivo può richiedere uno sforzo eccessivo ed essere insufficente ((( per es. perché c'è codice VB6 o C++ che il tool automatico non copre ))) e testare il sw in esecuzione può essere a rischio di errore ((( per es. la modifica può avere conseguenze sorprendenti/impreviste )))   Più di tutto con solo queste 2 tecniche non si...

Scrum + Lean sw development = Delivers

Here is the article on Scrum Alliance site: Scrum Delivers Tags :  Team Work | Agile | Lean Agile | Pratiche |

Agile Principles and anti-principles

I suggest the reading of this interesting post about Agile : Principles and anti-principles It is not an easy matter at all, just think about those two sentences: - a part of the essence of Agile is to find a good enough answer here, right now, in this context - We are different, this will never work in our organization And once again think about this quotes: - Almost every wise saying has an opposite one, no less wise, to balance it. George Santayana - There are two kinds of truth. There are superficial truths, the opposite of which are obviously wrong. But there are also...

Questionario: Esperienza & specializzazione nelle pratiche agili

Ripropongo qui le 2 domande               fatte sullo user group XPUG-IT per sondare l'esperienza e la specializzazione nelle pratiche agili :  Esperienza & specializzazione nelle pratiche agili E qui i primi risultati:  Report in pdf Tags :  Team Work | Agile |

Sul dare feedback negativi

       Li trovo utili quanto i feedback positivi per avvicinarsi al risultato ottimale Quando darli quando si sperimentano in prima persona conseguenze tangibili e indesiderate che sono la conseguenza diretta di una specifica azione quando ci viene richiesto esplicitamente un feedback in un rapporto di amicizia per una questione importante comunque il più presto possibile cioè il più possibile ravvicinato all'azione a cui...

Teamwork Is An Individual Skill

Una presentazione interessante sulle abilità che migliorano il lavoro di team: http://www.infoq.com/presentations/teamwork-an-individual-skill Bene si accosta ai post che raccolgo qui:  Complessità Negoziazione Team building  Tags :  Team Work | Agile | Team building |

Comportamenti che funzionano: la pratica 3/3

Riferimenti I comportamenti sociali sono prima di tutto pratica da provare, sperimentare, mettere in atto di persona. Per chi è interessato anche alle basi scientifiche e alla teoria ecco qualche parola chiave : Teoria dei giochi, giochi a somma zero, giochi a somma negativa, giochi a somma positiva, equilibrio di Nash, simulazioni sociali, distorsioni cognitive in condizioni di conflitto e dei meccanismi di scelta razionale, tit for tat, Robert Axelrod, la maledizione del vincitore, intelligenza collettiva, evoluzione della cooperazione, scienza della complessità e cooperazione Tags :  Team Work | Agile | Complessità | Leadership | Team | Conflitto | Negoziazione | Creatività | Innovazione | Team building |

Non siamo tutti uguali

     L'esperienza pratica, la letteratura, l'evoluzione e le similazioni sociali concordano che un comportamento di collaborazione integrativa e responsabilità condivisa produce più vantaggi di un comportamento autoritario e competitivo Manfred Macx in Accellerando di Charless Stross direbbe <<non credo nella nella scarsità, nei giochi a somma zero o nella concorrenza: il mondo è troppo vasto e l'informazione troppo densa per ammettere scimmieschi giochi generici>> Eppure non siamo tutti uguali e esistono tecnici,  programmatori, professionisti validi e capaci che si comportano in modo autoritario e competitivo cosi come ne esistono che si trovano bene ad essere guidati da leader direttivi e autoritari. Il punto...

Is Parallel Programming Hard?

Un articolo pubblicato su InfoQ che ribadisce i risultati emersi dall'articolo risultato dal brainstorming su XP-IT circa le applicazioni multi-threading e il TDD Un motivo in più per segnalarlo a chi sviluppa app multi-threading: Design di applicazioni multi-threading Tags :  Team Work | Agile | Pratiche | Creatività | Innovazione | Progettazione Software |

Semplicità: valutare l'andamento di un team Agile

Nel post Scrum: un processo di sviluppo Empirico sono linkati modi di valutare un team Agile Il post Keep the Peel and Throw Out the Banana di Francesco Cirillo va alla semplicità della questione : Guarda il codice, quando è pieno di IF/SWITCH, casi speciali, diversi tipi di logica accoppiata, bug frequenti, è un campanello d'allarme che dello sviluppo Agile il team ha tenuto la buccia e gettato la banana Guardandomi indietro e riflettendo trovo che nella pratica questo criterio è efficace Tags :  Team Work | Agile | Pratiche | Leadership | Software | Semplicità |

Comportamenti che funzionano: la pratica 2/3

Impararne di nuovi e vantaggiosi Milioni di anni di evoluzione ci portano in dote un patrimonio l'attitudine a  comportamenti sociali spontanei e istintivi (so che sei voltato a guardare un collega o il capo e un'ondata di dubbi sull'evoluzione ti assale: ma un singolo caso non basta a metterla in dubbio capito !!! :D) E' sufficente evitare di ostacolarli e comprometterli e invece credere nelle persone, superare l'ansia di controllo, dare spazio e tempo, sospendere il giudizio, fare leva sulla responsabilità la passione e la liberta, incoraggiare l'iniziativa. Riconoscere i successi del team e premiarlo nel suo insieme. Evitato di compromettere...

Comportamenti che funzionano: la pratica 1/3

Sui comportamenti sociali utili e efficaci Una squadra di calcio impara nuovi schemi di gioco che la portano meglio al gol In una discoteca a Budapest c'è l'usanza di concedere 10 minuti di ballo e chiacchiere a ogni corteggiatore/trice che si fa avanti - è divertente semplice e evidente che i nuovi arrivati imparano subito. Anche nel film A Beautiful Mind sul matematico Nash c'è una scena simile sul corteggiamento In Svezia in diverse scuole agli alunni vengono assegnati compiti in gruppo da cui acquisiscono l'abitudine a collaborare efficacemente che poi impiegano con successo  al lavoro Tags :  Team Work | Agile |...

Un po di Italia anche a Stoccolma

Andreas Gursky è un fotografo tedesco vivente e ben quotato. Tra le altre cose è conosciuto per le sue gigantografie iper-realistiche realizzate con tecniche di fotografia e ritocchi digitali Nel 2007 ha realizzato la serie intitolata "F1 Pit Stop" di 4 gigantografie "epiche" dedicate alla F1 Le foto sono ottenute componendo foto da differenti GP intorno al mondo Se avete la possibilità di entrare nel tempio della F1 a Maranello, nel ristorante aziendale potrete ammirare la gigantografia di Andreas Gursky dedicata alla Ferrari - Qui un assaggio La gigantografia è in mostra al Museo di Arte Moderna di Stoccolma...

Credere nelle persone

E' il comportamento più difficile da cambiare per un Coach di un team Agile, un Leader  e un Facilitatore : Rinunciare a esercitare il controllo e alle aspettative di risultati prestabiliti Scoprire nuovi modi di indirizzare e aiutare responsabilmente il team che sostituiscono le vecchie abitudini Superare l'ansia di controllo Agire facendo il meno possibile Come ? Un esempio pratico per esercitarsi : scopri come Exqusite Clock evolve liberamente col contributo collettivo e responsabile e come ogni contributo è indirizzato a essere utile e efficace : Tags :  Team Work | Agile | Complessità | Leadership | Team | Creatività | Innovazione | Semplicità |

Leadership e autorità

       Attraverso la leadership o l'autorità non si può cambiare un gruppo di persone scontente e non competenti in un gruppo di persone esperte e motivate           Dando spazio a responsabilità passione libertà e mettendo le persone in condizione di collaborare e rinunciando a esercitare il controllo si può ottenere il meglio da un gruppo         E ottenere risultati che sorprendono tanto quanto si è capaci di credere nelle persone (leggi questa ricerca) L'unico controllo che resta è estremamente ridotto e limitato, è sottile e ha lo scopo di aiutare il gruppo a raggiungere gli obbiettivi che si...

Lean Agile e i 7 principi

    Ricapitolando ecco i post sui principi del Lean Software Development: Eliminare gli sprechi : Il pricipio , Esempi , Considerazione finale Amplificare l'apprendimento : Il principio , Esempi , Considerazione finale Ritardare la decisione all'ultimo momento responsabile : Il principio , Esempi , Considerazione finale Rilasciare il più spesso possibile : Il principio , Altre info , Esempi e conclusioni ...

Sistemi autorganizzanti, intelligenza collettiva, cooperazione: la pratica

Nel tempo gli esseri umani si sono trasformati da nomadi a stanziali Nel tempo il modo di gestire le dispute si è evoluto dalla lotta al ricorso ad autorità sino a leggi eque e uguali (quasi) per tutti    Anche il modo di gestire i conflitti si è evoluto nel tempo dalle guerre alle transazioni sino a forme evolute di cooperazione integrativa Trasformazioni che hanno coinvolto piccoli gruppi, comunita, nazioni in ogni parte del mondo, in modo autonomo e senza l'aiuto di una regia esterna centrale - Anche nel funzionamento dei sistemi fisici e chimici l'autorganizzazione ha un ruolo...

Empowerment del team, in pratica

Cercare di essere tutto per qualsiasi membro del team in ogni momento - non è sostenibile alla lunga Intervenire quando il lavoro arriva a un momento di stallo per  superare l'ostacolo, quando scoppia un conflitto intervenire per trovare una mediazione - è una soluzione temporanea e rende il team dipendente Parlare poco e fare il meno possibile - creare uno spazio sicuro in cui lavorare e tenere (onorare) lo spazio per il team - essere disponibili, aperti, credibili, senza particolari aspettative - fare costantemente leva sulla libertà e responsabilità del team A fronte di una domanda che richiede...

Linq code refactoring: good programmer and bad one

IMHO the difference between a good programmer and a bad one is that a good programmer always strives to do things the straight way while a bad programmer feels smart when he discover and use dirty tricks  -  While refactoring long methods with Linq/Linq2Sql code and so trying to extract some Linq/Linq2Sql code into a new method it do emerge the need to return anonymous types from the extracted method. The C# compiler can complains for this You can Google and find a trick to return anonymous types. While in the first moment it looks interesting by a...

Five Ways that Team Members Build Trust with Each Other

Chi è genitore conosce bene e in pratica cosa significa costrure la fiducia e avere una percezione corretta: quando il figlio inizia a camminare, quando impara ad attraversare la strada, ad andare in motorino e a frequentare nuovi amici. E tutti noi siamo stati figli :) Ognuno impara a misurare e valutare la fiducia sulle proprie abilità, per esempio di affrontare una curva in auto a una certa velocità, una discesa sterrata in moutain-bike o una pendenza sulle piste di sci. Attraverso una sequenza di tentativi, miglioramenti e successi, e la memoria storica di questi Fiducia nel riuscire a svolgere un compito,...

I believe that software development is for the most part a social activity

Mi segno un post interessante: Communication, communication, communication e un libro da valutare : qual'è la sua validità scientifica oggi ?      ci sono libri/articoli che collegano questi giochi a "simulazioni sociali" o semplici set di regole generative ? cioè : mi può essere utile ? Tags :  Team Work | Agile | Complessità | Leadership | Team | Comunicazione | Conflitto | Negoziazione | Team building |

Soft skill (essere)

    Vuole dire un certo numero di abilità personali, emotive, individuali e di gruppo cioè che sono distinte e si aggiungono a quelle tecniche e di ragionamento meccanicho razionale La definizione su wikipedia è chiara e interessante tanto nella versione inglese Soft Skills che in quella italiana Soft Skill     E' attraverso queste capacità che una persona nella azienda di cui fa parte che è una organizzazione fatta di persone contribuisce e collabora con gli altri Riporto degli esempi pratici di come queste abilità possono tradursi in pratica per un facilitatore di un meeting o un leader che promuove...

Brian Eno on Creativity (We ceded the ground before we ever started)

The smallest seed planted at the right time can lead to something great In fact most great things seem to come from nowhere and evolve from practically nothing Unfortunately many of us live our lives thinking that there are folks of such staggering genius walking around, with symphonies and novels fully formed in their heads, that we come to the conclusion that we are not people of great ability, and this affects how we live and how we see things We ceded the ground before we ever started Tags :  Team Work | Agile | Complessità | Creatività | Innovazione |

Creatività: dove noi tecnici possiamo migliorare

  Douglas Bowman - Visual Designer - lascia Google e si  racconta:    When a company is filled with engineers, it turns to engineering to solve problems. Reduce each decision to a simple logic problem. Remove all subjectivity and just look at the data Yes, it’s true that a team at Google couldn’t decide between two blues, so they’re testing 41 shades between each blue to see which one performs better. Without conviction, doubt creeps in. Instincts fail. “Is this the right move?”    Brian Eno si racconta:   You can either take the attitude that it has a...

The bad apple, bad decisions

Segnalo 2 post (il primo segnalato dal ex collega Gian Marco) che un po si completano a vicenda The Bad Apple: Group Poison un cattivo elemento che finisce per danneggiare tutto il team Alcuni tratti che puo avere una  bad apple: The Depressive Pessimist will complain that the task that they're doing isn't enjoyable, and make statements doubting the group's ability to succeed. The Jerk will say that other people's...

TDD--The Art of Fearless Programming

Questo articolo é diventato disponibile gratuitamente su IEEE con dati sperimentali dell'efficacioa del TDD:  TDD--The Art of Fearless Programming Segnatalo da Marco qui Segnato da Piergiuliano Bossi anche Studies on Effectiveness of TDD? Tags :  Team Work | Agile | Pratiche |

Processi che ti aiutano (EMERGENCY? = USE PHONE) & allegre fantasie

      Questo post Simple Guidelines for Workday Quality Over Quantity [Email] mi ha fatto ricordare un vecchio episodio        Una compagna di team mi fece notare che restando focalizzato sul codice che stavo scrivendo rischiavo di ignorare mail molto urgenti (visto il contesto in cui stavamo lavorando la preoccupazione era legittima)        La mia idea (che avevo mancato di sottoporre e condividere col team) era che per le cose veramente urgenti le persone normalmente usano il telefono: te lo immagini chiamare i pompieri o l'autoambulanza con una e-mail ?               Un processo che investe in questa naturale abilità delle persone è...

Brian Eno: amplificare la creatività nel team (e con gli U2)

Qualcosa va storto e non si sa cosa fare - la reazione spontanea  è quella di affidarsi alle abitudini consolidate Nei team affiatati il punto di forza della "telepatia" si bilancia con l'eccesso di diplomazia: nessuno vuole mettere  a rischi l'equilibrio che si è creato Brian suggerisce 2 giochi per rompere le regole e aprirsi a nuove cose e a nuovi modi di fare Imporsi dei limiti per incrementare la creatività - per esempio con gli U2 gli ha fatto scambiare gli strumenti cosi che uno suonasse quello dell'altro - obbligarli a suonare con solo una parte della scala Fare...

Design Under Constraint: How Limits Boost Creativity

The same principle applies to design. Given fewer resources, you have to make better decisions The idea of operating within constraints—of making more with less—is especially relevant these days. From Wall Street to Detroit to Washington, the lack of limits has proven to be a false freedom More recently, the very iPhone on which you listen to Davis' landmark album is a one-buttoned example of restraint in pursuit of an ideal, while the sublimely simple Google homepage is forever limited to 28 words Fonte: W.I.R.E.D. Tags :  Team Work | Agile | Creatività | Innovazione | Semplicità | Progettazione Software |

Self-organizing teams and Resilience: Esther Derby

Mi annoto questi 2 post  Project is a human system working towards a desired goal. However, the project is running within an environment that is changing continuously. The project needs ways to deal with these changes and still keep performing its [...] : Structure For Resilience Video Intervista sui team auto-organizzanti e sulle fasi di evoluzione di questi team: - Managing their own work and monitoring their own progress ...

Informatica e Design 3° (Generative Systems)

Game designer Will Wright (SimCity, The Sims) and musician Brian Eno discuss the generative systems used in their respective creative works. Ancora info su questi argomenti ? ~  schemi complessi che emergono dall'implementazione di regole assai semplici come una foresta che nasce da pochi semi (John Conway)  in questo post     ~  simulazioni sociali in questo post ~  NetLogo un sw per eseguire e implementare principalmente simulazioni sociali ma anche sistemi genereativi in questo post Tags :  Team Work | Agile | Complessità | Team | Creatività | Innovazione | Semplicità | Progettazione Software |

Informatica e Design 2° (Brian Eno)

L'area di intersezione tra informatica e design è in continua espansione. In termini di prodotti, tecnologie e applicazioni e anche designer e artisti digitali che sconfinano nella programmazione e programmatori che si dedicano a prodotti informatici di design e artistici La potenzialità che intravedo riguarda la possibilità che programmatori possano scoprie da designer e artisti digitali come lavorare e come affrontare in team problemi in modo creativo e anche contribuire in termini di metodologie e pratiche di programmazione Naturalmente i team agili sono i candidati ideali avendo nel loro nucleo gli aspetti di creatività esplorazione dinamiche di team Brian Eno è un precursore...

Un esempio di semplicità col pattern MVC

((( continuo la serie di post pratici sulla semplicità. La sfida di Gino qui ora è trovare qualcosa ancora da togliere, da sottrarre per arrivare all'essenziale da cui cominciare, al minimo indispensabile a cui non si può rinunciare  ))) Gino conosce il pattern Model-View-Controller, le sue varianti, le sotto-varianti e gli adattamenti ai diversi framework grafici.    Si dice che sa applicare MVC bendato con le mani legate dietro la schiena come fosse Chuck Norris   ((( minchia! ))) Gino ha un giorno intero di tempo e il suo collega è interessato a capire come si applica il MVC e...

Paradossi per riflettere sui sistemi complessi

How can we give direction without giving directives? How can we lead by serving? How can we maintain authority without having control? How can...

Un buon Senior, un buon Leader e l'arte di chiedere

Grazie a Gian Marco per aver segnalato questo articolo Sulla leadership da The Bad Apple: Group Poison    There was just one guy, who was a particularly good leader. And what he would do is ask questions, he would engage all the team members, and diffuse conflicts A group leader [can intervene and potentially] change the dynamics and performance of a group by going around and asking questions, soliciting everyone's opinions, and making sure everyone is heard Sulla expertise da Are You An Expert? Being an expert isn't telling other people what you know. It's understanding what questions to ask, and...

Ancora su Selling Scrum

      Ecco un documento che prova a descrivere il punto di vista di un Project Manager sulla adozione dei metodi agili in un suo progetto: Se fossi un project manager...       Inoltre, oltre a incoraggiare i team che possono avere benefici ad adottare i metodi Agili, ora che sono mainstream è utile anche assicurarsi che l'azienda ha capito quali sono i cambiamenti che i metodi Agili promuovono e lasciargli decidere se li desidera Con una adozione di successo dei metodi agili le persone del team imparano ad assumersi responsabilita, tutte le opinioni vengono ascoltate, le decisioni...

Un esempio di semplicità col TDD

((( continuo la serie di post pratici sulla semplicità. La sfida di Gino qui ora è trovare qualcosa ancora da togliere, da sottrarre per arrivare all'essenziale da cui cominciare, al minimo indispensabile a cui non si può rinunciare  ))) Gino 'e molto ferrato su unit testing, TDD, mocking e tecniche di refactoring per la rottura delle dipendenze.   Si dice sappia fare gli esami del sangue moccando la siringa e il paziente e che sappia separare i semi dall'anguria con un solo short-cut di Resharper   ((( minchia! ))) Ha a disposizione l'intero giorno in pair programming col collega per introdurre lo...

In Sintesi: Design di applicazioni Multi-Threading

Ecco in sintesi una serie di indicazioni utili e per me illuminanti e sorprendenti sul multi-threading: le applicazioni multi-threading sono di un ordine di grandezza più complesse delle altre appicazioni quindi è sensibilmente sconveniente portare in causa il multi-threading quando può essere evitato il ruolo e la principale utilità dello unit-testing e del TDD per le applicazioni multi-threading è quello di portare a disaccoppiare la gestione deil multi-threading dalla logica di business ...

The game is not over until it's over

Come ricordavo qui non è finita fino a quando non è davvero finita : ) E si vede in questa spettacolare azione di Rugby che capovolge il risultato alla fine dei tempi supplementari: guarda il video dal post di Andrea Lo sport sano come palestra del lavoro di gruppo Tags :  Team Work | Agile | Team | 

Product Owner: Pig or Chicken?

Sarà che nel team ho 2 Product Owner, sarà che sono donne !!!   (che Svezia questa Svezia :) e mi ha colpito anche scoprire che qui per gli uomini è normale stare a casa un periodo per la nascita un figlio)   -   Sarà invece che sembra il momento del Product Owner, ecco un altro post per guardare lo sviluppo agile da altri occhi oltre a quelli del developer : Product Owner: Pig or Chicken? Lo trovo utile anche al developer, per guardare di più anche il mondo che c'è intorno Tags :  Team Work | Agile | Leadership | Team | Product Owner | 

Confessions of a serial Product Owner

Una collega ha segnalato nel wiki aziendale un pdf che da una prospettiva inconsueta e interessante sui metodi Agili: Confessions of a serial Product Owner Assolutamente centrato per chi è abituato a coprire il ruolo di Project Manager di un team di sviluppatori. L'autrice, svedese naturalmente, è Anna Forss Il pdf si può scaricare da qui Sempre per Project Manager e Responsabili del team di sviluppo richiamo un altro post interessante: Product Owner: abbraccia l'incertezza Tags :  Team Work | Agile | Pratiche | Leadership | Team | Product Owner |

Un esempio di semplicità con Resharper

((( continuo la serie di post pratici sulla semplicità. La sfida di Gino qui ora è trovare qualcosa ancora da togliere, da sottrarre per arrivare all'essenziale da cui cominciare, al minimo indispensabile a cui non si può rinunciare  ))) Gino conosce tutti gli short-cut di Resharper, praticamente li ha inventati lui  ((( minchia! ))) Il collega che ha introdotto al refactoring ci ha preso gusto e ora Gino vuole avviarlo ... all'uso di Resharper! Per farla semplice da dove comincia? Gino fa il giro dei PC del team e si assicura che tutti abbiano la stessa versione di Resharper e abbiano selezionalo...

L'eccitazione della scoperta, la necessità del no sense e dell'immateriale

Una frase da What Bruce Sterling Actually Said About Web 2.0 at Webstock 09 Creative people don't want to "do it right." They want to share the excitement you had when you yourself didn't know how to do it right. Creative people are unconsciously attracted by the parts that make no sense. And Web 2.0 was full of those. Il cerchio si chiude con la frase di un post segnalato da Bruce Sterling in Boym on Sottsass However absurd this decorative element is, it is absolutely essential for the object’s existence. The functional is connected to the nonfunctional...

Guarda l'insieme: conclusioni

Secondo me il punto chiave del settimo e ultimo principo del  Lean Software Development è che per completare con successo progetti complessi, per far crescere un team una organizzazione serve capire le dinamiche con cui i vari componenti in gioco interagiscono, fare attenzione a non confondere il sintomo con la causa, pesare l'effetto di una azione sull'obiettivo ultimo Come ci si sente a spegnere incendi, ampliare i processi e irrigidire l'applicazione delle norme, analizzare scomporre misurare e ottimizzare ?       per esempio una piacevole sensazione di controllo, poi sorpresa quando problemi che sembravano risolti si ripresentano magari in forma diversa e...

Un esempio di semplicità sul Refactoring

Gino sa tutto sul Refactoring: sa fare refactoring bendato e con una mano legata dietro la schiena ((( minchia! ))) Si è seduto alla tastiera col suo collega e ha 2 ore di tempo per introdurlo al refactoring.  Per farla semplice da dove comincia? Gino comincia dal codice che il collega ha appena scritto. Fa check-in per avere una baseline sicura a cui fare rollback e usa un tool automatico per evitare errori insidiosi. Coimincia a fare questi 6 refactoring insieme al collega: * Estrae codice dai metodi troppo lunghi (>> 30...

Hai un'idea geniale? R E G A L A L A !

Questo articolo su  W.i.r.e.d. IT  racconta l'inizio di qualcosa che può diventare una nuova  (((rivoluzione))) ~ (((evoluzione))) Hai un’idea geniale? Fai come Mr Arduino, regalala. E diventa ricco Sei affascinato dai possibili scenari futuri che si aprono?  Allora ti piacerranno anche i 2 post "premonitori" Riconoscere una buona idea?   e    Isole nella rete Tags :  Team Work | Aziende | Creatività | Innovazione | 

Motivazione nel gruppo di lavoro: partecipazione volontaria

    Mi annoto queste forze che in un gruppo di persone  liberano l'energia  e la voglia di fare   Una volta lette mi sembrano quasi ovvie perché rispecchiano  le migliori esperienze che ricordo di gioco di squadra, sportive e lavorative         La partecipazione volontaria e la libertà d'azione: catalizzano l'interesse, coinvolgimento, passione e responsabilità Cioè un presupposto essenziale per trovare risposte, scoprire soluzioni, produrre i risultati migliori        Una domanda chiara (sull'argomento che si vuole affrontare) e aperta (nei modi, nelle alternative che si possono esplorare e nelle soluzioni a cui si può giungere) un gruppo di persone eterogeneo e fiducia nelle persone...

Semplicità

Come programmatori di computer siamo abituati a risolvere problemi complicati, analizzare le possibili combinazioni, lavorare a concetti astratti. Con tutte le nostre forze E cosi che anch'io ho perso l'abitudine alla semplicità Inizio una serie di post con esempi reali di semplicità (segui il tag Semplicità) Tags :  Team Work | Agile | Semplicità |

Spazio, forma e comunicazione

Il cerchio è la forma geometrica della comunicazione umana paritetica lascia spazio a una comunicazione genuina, aperta e libera Quadrati e rettangoli (sedie e tavoli disposti a) separano le persone. Possono tenere a distanza soggetti in forte conflitto Linee parallele (di sedie) rivolte verso un palco/una cattedra/un pulpito mettono in chiaro chi debba parlare e chi debba ascoltare, sottolineano l'autorita Fonte: OST Tags :  Team Work | Agile | Leadership | Comunicazione | Conflitto | Negoziazione | 

Guarda l'insieme: esempi

Degli esempi dal principio #7 del  Lean Software Development Guarda l'insieme    In una gara di F1 di un pilota può fare uno o più pit-stop. La strategia di gara migliore è quella che lo porta davanti agli avversari all'uscita dell'ultimo pit-stop e non quella che lo tiene davanti a ogni pit-stop     Quando i tempi di sviluppo si allungano o i bug aumentano, la complessità del codice sale o le build si rompono più spesso è utile guardale le cose nell'insieme, capire le...

Siamo poi d'accordo su cos'è cattivo codice ? : Risultati

Ecco le opinioni raccolte su cos'è cattivo codice per noi: Le 3 cose che sono state scelte di più come casi di cattivo codice (95%) sono: Nomi di variabili senza senso, incomprensibili, irrintracciabili Mancanza assoluta di naming convention e metodi con nomi fuorvianti Trovare nel codice la stessa cosa fatta in 10 modi diversi Le 3 cose che sono state considerate di meno come casi di cattivo codice (32-33%) sono:  Mancanza di documentazione sulle configurazioni e sul deploy Assenza totale di Unit...

Sulla persuasione (Selling Scrum)

     Uno che vende numeri del Lotto invece di giocarseli mi lascia perplesso tanto quanto uno che vuole venderti "Scrum" invece di prodursi buon software - nonostante il titolo questo post sulla persuasione l'ho trovato utile : Selling Scrum: How to persuade people to change! Alcune frasi But if you are in a position to give instructions or give orders, you cannot do this unless you have a lot of confidence about what you are saying. However, people's ideas are unreliable things and I would be impressed if we were right half the time. ... ... We are all human and we...

Design di applicazioni Multi-Threading

     Dalla la serie di post e riflessioni che feci sul disegno di applicazioni muti-threading è partito uso scambio interessante su XP-IT e istruttivo Il risultato è una raccolta di indicazioni link e commenti - unica - perché centrata sul  *design*  del multi-threading: Design di applicazioni Multi-Threading       La trovo molto interessante perché si posso trarre idee semplici (una volta emerse si :) ) e efficaci per ridurre la durata/superfice di lock/sincronizzazioni disaccopiare le responsabilità ...

Working Effectively with legacy code: link & riferimenti & sintesi

Raccolta di link, riferimenti, sintesi a complemento del libro Working Effectively with legacy code di M.C.Feathers e su coding (clicca sul titolo per visualizzare)

Imparare a programmare divertendosi 3°

Ormai sta diventando una mini serie Per bambini & per adulti con curiosità entusiasmo apertura coraggio e ben disposti a prendere atto della prova dei fatti  e anche con il ricordo di una passione, la programmazione dei computer, comunciata per divertimento Gioia & divertimento una volta ancora come sinonimo di   apprendimento - impegno - realizzazione - soddisfazione Che questa volta ci porta qui : http://hacketyhack.net/ Tags :  Team Work | Agile | Leadership | Team | Creatività | Innovazione |

Siamo poi d'accordo su cos'è cattivo codice ?

Come ricordava un commento a un post precedente non basta elencare i difetti del codice per risolvere i problemi Per migliorare una code-base il primo passo è  quello di essere d'accordo su cos'è cattivo codice  su quali sono i difetti da rimuovere E' cosi facile?        Partecipa al sondaggio   cliccando qui E poi guarda i risultati (clicca qui) Ultimo aggiornamento: - su 10 dei punti siamo in accordo nel considerarli come cattivo codice - su 12 punti non c'è sufficente accordo  Tags :  Team Work | Pratiche | Team | Conflitto | Negoziazione | Disciplina | Progettazione Software |

Coerenza retrospettiva

        Durante la retrospective un team agile riflettere sugli impedimenti che lo hanno ostacolato nella iterazione appena finita e immagina nuovi approcci che hanno la possibilità di funzionare          &        impara dagli approcci che si sono dimostrati validi alla prova dei fatti        Quello che il team fa quando si guarda indietro e cerca di imparare è crecare la coerenza retrospettiva cioè quelle cose che non è facile scoprire in anticipo o a volte è impossibile perché il progetto si svolge in una situazione di incertezza con cambiamenti frequenti, repentini e imprevedibili     => ? Oltre...

Situazioni da team: sperimentazioni pericolose

    Qualche tempo fa avevo raccolto opinioni su quanto fosse professionale quando nel team un tuo collega per passione, per curiosità, per interesse o per semplice aggiornamento professionale decide di sperimentare in un progetto  per un cliente alcune soluzioni tecnologiche che non conosce e quindi non ha una ragionevole certezza di padroneggiarle a sufficenza Qui il post con ogni singolo feedback e la sintesi finale: Situazioni da team: azzardi tecnologici      In questo post ho trovato una posizione interessante sull'argomento e consiglio di leggerlo: Keeping up is not enough Se qualcuno vuole commentare ancora sull'argomento, naturalmente...

Guarda l'insieme

Lean Software Development descrive principi e pratiche utili a introdurre i metodi agili nella propria organizzazione. E lo fa dal punto di vista del Manager e del Responsabile tecnico di progetto Un principio del Lean Software Development è Guarda l'insieme Guarda alle interazioni e al risultato complessivo che producono, migliorandole complessivamente ottieni benefici maggiori che ottimizzare a singole parti : - gli utenti di una azienda interagiscono con il software e con i colleghi per riuscire nel proprio lavoro...

Esempio di un Open Space riuscito (Domain Driven Development)

Guardando i video della recente UGIALT.NET conference mi ha colpito l'open space a mio avviso riuscito . Annoto alcune cose che ho osservato  •  gli argomenti discussi, i tempi e i modi gli decidono dalle persone che sono li intanto che la discussione va avanti, anche in base a quello che succede e a dubbi e interessi di ognuno     invece     di essere pre-stabilita  da  qualcun altro e condotta in modo unilaterale  •  la conversazione è fatta dalle conoscenze, dalle domande, dai dubbi e dalle singole esperienze pratiche concrete e reali del quotidiano lavorativo dei partecipante e le risposte che si...

Qual'è secondo te codice pessimo?

Quando apri un sorgente e ti viene da ... imprecare :) quando c'è un certo programma da modificare e quindi ... prendi ferie quando guadri lo schermo per ore senza capici niente ... e non sei nemmeno innamorato :)  ... cosa c'è in quel "codice" che ti fa  schifo  ribrezzo ? Tags :  Team Work | Pratiche | Team | Disciplina | Progettazione Software |

Mantieni l'integrità del sistema: conclusioni

Secondo me il punto chiave del sesto principo del  Lean Software Development è che per relizzare prodotti software di successo nel tempo serve l'equilibrio tra agire localmente (quando l'utente usa una funzione, fa una richiesta, definisce le priorità e quando il programmatore scrive un test, fa un refactoring, rilacia una funzionalità, fa un test di accettazione) e pensare globalmente (quando si guarda all'intero dominio applicativo, alla evoluzione del prodotto, alla soddisfazione degli utenti, alla economicità delle soluzioni, alla efficenza degli sviluppi, a che direzione strategica prendere) Come ci si sente con un prodotto eterogeneo, parziale, bacato ?       per esempio l'utente si...

Imparare a programmare divertendosi 2°

Torno sul imparare a programmare divertendosi Who uses Processing? Processing is used by a very diverse group of people, from children first exploring computer programming to professional artists, designers, architects, engineers, and scientists. Processing has a shallow learning curve to make writing code easier for beginners, but it also allows more experienced programmers to write sophisticated software Gioia & divertimento una volta di più ancora come sinonimo di   apprendimento - impegno - realizzazione - soddisfazione Fonte: Processing 1.0 Hits the Web Tags :  Team Work | Agile | Leadership | Team | Creatività | Innovazione |

Scrum: un processo di sviluppo Empirico

Scrum e i metodi agili impiegano dei processi di sviluppo empirici (vedi su wikipedia) cioè che si adattano mentre il processo procede a seconda di quanto accade nel progetto Mentre i processi iterativi incrementali sono definiti nel senso che il processo segue per tutta la durata del progetto gli stessi passi pre-stabiliti e pre-definiti I processi empirici sono : Trasparenti : ogni cosa che ha qualche impatto sul buon esito del progetto devono essere facilmente accessibili e visibili per tutti  (es. i test che passano e quelli che no, la build che fallisce o quella che ha successo,...

Ancora su persone Versus processi

Riporto la prosecuzione del thread sul mettere l'insegnamento dei valori prima di quello dei processi : Teaching Values vs. Process  (qui completa su Linked-In)- Eccola : - I prefer to contribute to build understanding-feeling-tuning between peoples in the team more then to build a new process, in Italian we call this 'intesa' who played some team sports probably have already experienced this - I like that word "intesa". Luca, how do you go about building that on a team? - I try to learn/teach/build it by example. With actions. I strive to act in a transparent, trustworthy and effective manner every...

Evento - 30 Gennaio 2009: Results Day

Tommaso Torti ha immaginato e lanciato questa inizativa del 30 Gennaio 2009: Results Day    Partecipo e quindi ecco mio il resoconto dei successi &  degli insuccessi nell'applicazione dei principi agili ottenuti dopo l'evento dell'Agile Day 2008. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -...

Persone vs Processi

Ho trovato interessante questo post sul mettere l'insegnamento dei valori prima di quello dei processi : Teaching Values vs. Process Il commento spontaneo é stato : I prefer to contribute to build understanding-feeling-tuning between peoples in the team more then to build a new process, in Italian we call this 'intesa' who played some team sports probably have already experienced this E voi cosa ne pensate ? Tags :  Team Work | Agile | Comunicazione | Team building | Leadership |

Mary Poppendieck on The Role of Leadership in Software Development

Segnalo questa presentazione interessante:   http://www.infoq.com/presentations/poppendieck-agile-leadership Tags :  Team Work | Agile | Lean Agile | Leadership |

Un Progetto alla volta, anche per il tuo Manager

Mi annoto da un post interessante come i progetti si concludono prima quando ogni persona/team ne segue uno alla volta    Il punto é decidere dal portfolio dei progetti quale progetto seguire (sino a quando e´prevista la prossima valutazione delle prioritá del portfolio progetti). E metterci il focus al 100% su quel  progetto Make a Real Commitment When you commit to a project, make it a full commitment, meaning that all the necessary people are on the project full time and that they have all the necessary resources they'll need, such as a project room,...

Mantieni l'integrità del sistema

Lean Software Development descrive principi e pratiche utili a introdurre i metodi agili nella propria organizzazione. E lo fa dal punto di vista del Manager e del Responsabile tecnico di progetto Un principio del Lean Software Development è Mantieni l'integrità del sistema Sviluppa ogni programma, funzione, maschera cosi che gli utenti la trovano  semplice, intuitiva, uniforme e consistente Impementa ogni metodo, classe, componente, applicativo cosi che i programmatori lo trovano in condizioni buone  per cambiarlo, correggerlo e...

Coding: migliorare lo stile

Il nostro lavoro é quello di programmare computer, la abilitá di scrivere del buon codice é spesso sottovalutata a favore della conoscenza delle tecnologie Un po come fanno gli sportivi e i musicisti il trucco é esercitarsi A Coding Dojo is a meeting where a bunch of coders get together to work on a programming challenge. They are there to have fun and to engage in DeliberatePractice in order to improve their skills: http://codingdojo.org/ Ho partecipato anche a una variante dove tutte le coppie in contemporanea scrivevano codice per poi discutere insieme le diverse soluzioni Update 14 AGO - ThePrimeFactorsKata - TheBowlingGameKata - Groovy Sales Tax Problem -...

Self-organizing team, anzi self-reproductive

   Alcune frasi da un post su team che sanno auto-organizzarsi ... sostenersi ... perpetrarsi  grazie ai successi che raggiungono per se e per la propria azienda :   A new product development team, consisting of members with diverse backgrounds and temperaments is ... Given unconditional backing from the top ... engage in strategic initiatives that go beyond the current corporate domain ... often risk their reputation and sometimes their career to carry out their role as change agents for the organization at large. ... Within the context of evolutionary theory, such a group is said to possess a self-reproductive capability. ... Another study by Nonaka has shown that...

Empower del team: conclusioni

Secondo me il punto chiave del quinto principo del  Lean Software Development è che si guadagna di più a investire sulla qualità, sul talento e i punti di forza del team e sulle potenzialità di crescita, sui compiti sfidanti e sulla competizione con i proprio concorrenti mentre si perde a puntare sul risparmio, sul cautelarsi dalle debolezze e le carenze del team e sulla lotta tra colleghi e reparti Come ci si sente a dirigere e controllare il team ?       per esempio con progetti complessi ci si sente sommersi dai dettagli da studiare e dalle decisioni da prendere, caricati di lavoro...

Genio collettivo per aziende con Twitter o Yammer

Per amplificare la comunicazione informale e continua tra team remoti : Yammer la versione commerciale di Twitter Nel frattemo anche Twitter ha ne suo backlog lo sviluppo di una funzionalità per gestire gruppi                 Tags :  Team Work | Team | Comunicazione | 

Social networking prisma vs Antisocia NotWorking

Il prisma dei media sociali: http://www.briansolis.com/2008/08/introducing-conversation-prism.html Il progetto antisocial: http://project.arnolfini.org.uk/projects/2008/antisocial/ Segnalati da Bruce Strerling Colonna sonora: L'ombra della luce di Franco Battiato Tags :  Team Work | Complessità | Comunicazione | Creatività | Innovazione | Tools | Progettazione Software |

Come migliorare la qualità del codice giorno per giorno

Questo post di PierG dichiara una tra le cose più importanti che ho imparato in questi ultimi tre anni di lavoro: Quando il tuo software si è trasformato in un ammasso di codice legacy, rifarlo da zero probabilmente è la cosa peggiore. Infondo i problemi di quel codice sono comiciati quando il software è stato scritto da zero: perché dovrebbero andare meglio  riscrivendolo da capo ancora allo stesso modo ? In linea con una ipotesi che avevo condiviso qualche tempo fa: Il codice quando è Legacy lo è dal momento stesso in cui viene scritto Il punto è che scrivere...

Microsoft is Dead !?!? No: Ozzie riporta Microsoft in Start up mode

Ray Ozzie è arrivato in MS dal 2005 ed è Chief Software Architect at Microsoft E' conosciuto per aver creato Lotus Notes e Lotus Symphony.  E' stato Mitch Karpor a reclutarlo per fare Lotus e nel 1984 (al tempo dell'annuncio del primo Windows) Ozzie discuteva con Gates su Windows come possibile sistema operativo per Lotus Notes Riporto a ruota libera alcune frasi di questo articolo che mi ha colpito e inspirato Ray Ozzie Wants to Push Microsoft Back Into Startup Mode dal Wired di Dicembre: Just packaging software, collecting the money, and then producing a new version a few years later (whether people...

Empower del team: esempi

Degli esempi dal principio #5 del  Lean Software Development Empower del Team Quando recluti persone per il team ingaggia senior in gamba : 2 senior con 1 junior fanno più e meglio di 1 senior con 4 junior Fai attenzione a scegliere persone responsabili di carattere (verso il codice, l'intero prodotto e il team) più gli incoraggi e gli lasci libertà più risultati ti portano Dagli la direzione, tienigli allineati agli obiettivi di business, spronagli alla semplicità...

Compensi in un team Agile - 3°

     Annoto queste ultime indicazioni e i suggerimenti che ho trovato su come definire i compensi ai membri di un team Agile      Yves Hanoulle di Paircoaching spiega che usare un incentivo economico per far fare a un membro del team qualcosa che non vuole ha effetti negativi perchè lo demotiva. Questo è un rischio che in Italia non c'è.  Quindi vedo (de)motivazione e compensi come argomenti distinti. Maarten Volders in una discussione su LinkedIn suggerice che queste cose fanno sicuramente felice un team di sviluppatori   PC molto veloci e tutti i gadget di cui hanno bisogno...

Product Owner: abbraccia l'incertezza

E' una presentazione davvero bella. Da indicazioni al Product Owner su come esprimere i requisiti e ai membri del team su come raccoglierli/scomporli/ragrupparli al meglio per Produrre il maggior valore di business $$$ Trovare le soluzioni/funsionalità che meglio realizzano l'obiettivo di business Procedere in modo da chiarire sempre meglio quello di cui si ha bisogno Garantire le funzionalità indispensabili al business in...

Preconcetti, abitudini e superstizioni

   Una cosa buona dell'età è l'esperienza cioè la capacità di riconoscere una serie di situazioni per cui si conosce come muoversi per reagire bene    Nell'informatica questa esperienza ha anche bisogno di specializzazione che permette di muoversi in modo rapido ed efficace anche se ora solo dentro uno schema fisso e definito (quello di specializzazione appunto)    L'altra faccia di questa specializzazione e velocità di reazione si chiama preconcetto che prende la forma di abitudine (ho sempre fatto cosi, qui in azienda abbiamo fatto tutti sempre cosi e ha funzionato, perché cambiare?) e superstizione (convinzioni su relazioni di...

Catalogo di Scrum Smell

E un elenco di segnali che qualcosa nella pratica di Scrum nel team ha bisogno di un miglioramento Sono indizi e non già prove, vanno verificati - A ogni smell corrisponde una soluzione Indicazioni per l'uso: non puntare il dito contro qualcuno, anche se a volte verrebbe voglia di farlo ,  meglio usarli per migliorare il proprio lavoro nel team eventualmente per suggerire una azione quando un problema emerge nella retrospective Il wiki con le smell: http://scrumcommunity.pbwiki.com/Scrum+Smells Alcune smell sulle user story: http://agiletools.wordpress.com/2007/12/20/toms-catalog-of-user-story-smells/ ...

Empower del team

    Lean Software Development descrive principi e pratiche utili a introdurre i metodi agili nella propria organizzazione. E lo fa dal punto di vista del Manager e del Responsabile tecnico di progetto. Un principio del Lean Software Development è Empower del Team Ingaggia tecnici esperti e fai crescere il team, fallo guidare da un leader tecnico, delegagli responsabilità sfidanti, dagli libertà d'azione e lascia che la partecipazione sia su base volontaria per ottenere i risultati migliori Prendi junior e gente...

Managing Talented People 2°

Ancora sul tema di un post precedente Managing Talented People questo articolo mi è piaciuto: Are Cocky Developers Worth It? Un breve estratto “I’m okay with you feeling good about your “mad” skills, but there is a difference between confidence and cockiness. As a good teammate, you can use your confidence to share your vast experience with the team in peer reviews. The difference is, if you belittle someone, you are being cocky and frankly not helpful. We need the team to be confident, and you can lift the team up by being more respectful of their opinions and taking a...

Compensi in un team Agile - 2°

     Continuo a annotare le indicazioni e i suggerimenti che ho trovato su come definire i compensi a membri di team Agili      Il modo aperto e condiviso di stabilire i compensi alla Skaltek (www.skaltek.com) e alla St Luke's ( www.stlukes.co.uk ) è ricco di idee e possibilità di miglioramento  ad esempio discutere e conoscere quali elementi attualmente determinano il salario nel proprio team (es. skill, esperienza, prezzo di mercato, educazione, capacità di negoziare, bisogni dell'azienda al momento della contrattazione, etc)  ...

Compensi in un team Agile - 1°

     Annoto le indicazioni e i suggerimenti che ho trovato su come definire i compensi ai membri di un team Agile I 2 esempi riconosciuti come i migliori vengono da due casi reali : -  La Skaltek (www.skaltek.com) è una compagnia Svedese che produce e vende grandi macchinari per la produzione di fili e cavi metallici, macchinari realizzati appositamente per ogni singolo cliente - La St Luke's ( www.stlukes.co.uk ) è l'agenzia creativa indipendente di Londra più longeva, realizza campagne pubblicitarie per la televisione, la stampa e il web Alla Skaltek c'è completa trasparenza, non ci sono segreti finanziari ma, ogniuno...

Genio collettivo con Twitter

Rapid exchange of tools and techniques   è   1   degli ingredienti dello  sc enius  cioè il nome che Brian Eno ha dato alla nuova genialità collettiva Mi annoto questo articolo su Twitter come strumento utile allo scopo: How Twitter Creates a Social Sixth Sense e questo su Qwitter: Qwitter, the Darwinian side of social networks La trovo una buona idea per un team distribuito: da provare! Tags :  Team Work | Team | Comunicazione | 

Si può fare!

     Le possibilità che una idea inusuale - che sovverte il senso comune - che contraddice l'esperienza - che ignora i riferimenti assodati - che sgretola i preconcetti - che diverte possa funzionare sono molto più di quante si crede     Specialmente nella programmazione software che è libera dai  vincoli che regolano il mondo fisico: in 20 anni di lavoro non ho ancora visto un problema di programmazione che non potesse essere risolto con una buona idea      In questo video divertente delle persone camminano sulle acque - quanti secondi servono per convincersi che è un falso ?  ...

Imparare a programmare divertendosi

       Boku è un linguaggio di programmazione visuale per creare video-giochi - adulti e bambini possono cosi imparare le basi della programmazione  divertendosi gioia & divertimento ancora una volta come sinonimo di   apprendimento - impegno - realizzazione - soddisfazione Fonte: PDC 2008: Boku for Xbox Teaches Programming to Kids  (altri link interessanti nel post) Tags :  Team Work | Agile | Leadership | Team | Creatività | Innovazione | 

Root Cause Analysis

E' uno strumento utile nelle Retrospective e nei Quartly meeting Questo è un whitepaper che ho trovato interessante sulla Root Cause Analysis: http://www.DaivRussell.com/Fishboning.pdf La fonte è una discussione su Linked-In   trovo interessanti anche i commenti postati Tags :  Team Work | Agile | Pratiche | 

Cercasi direttore d'orchestra per un team di developer

  Un Master Developer per un team di sviluppo software e come un direttore d'orchestra ... Alcuni team sono come una Jazz Band e hanno bisogno di una guida che gli incoraggi a improvvisare Altri team sono come un'orchestra sinfonica e hanno bisogno di una guida per andare tutti a tempo seguendo lo spartito Da Lean Software Development Tags :  Team Work | Agile | Lean Agile | Leadership | Team |

Team Agili completamente distribuiti

Jeff Sutherland (co-creatore di Scrum) e Guido Schoonheim (CTO di Xebia) presentano un caso pratico di applicazione di pratiche agili in team distribuiti. Persone che sono in 2 continenti diversi lavorano nello stesso team e il team raggiunge prestazioni equivalenti a un team co-locato Jeff Sutherland: Reaching Hyper-Productivity with Outsourced Development Teams Questa presentazione è stata fatta al Agile 2008 Conference. Update : 1) Riporto il link all'articolo segnalatomi da Stefano Leli  Distributed Scrum: Agile Project Management with Outsourced Development Teams sempre di Jeff Sutherland 2) E anche il link al blogsegnalatomi da Stefano Fornari Scaling Software Agility  sul tema del scalare i metodi...

Valutare l'adozione delle pratiche agili nel proprio team?

Ecco un'altra opportunità interessante per valutare l'adozione delle pratiche agili nel proprio team: le iterazioni, il testing, requisiti, product owner, backlog, stime, avanzamento del progetto, interruzioni In 8 domande: Avoiding ScrumButt - Nokia Test creato da Bas Vodde alla Nokia Siemens Networks in Finlandia e successivamente modificato da Jeff Sutherland co-creatore di Scrum Qui un commento al test: La caratteristica più innovativa dei metodi agili è di adottare un approccio empirico cioè lo stesso metodo sperimentale  usato nelle scienze naturali e sociali come medicina, biologia, fisica e sociologia Conoscere questo test ci arricchisce di una casistica che si...

Giovanni Allevi

     Trovo che la musica classica assomiglia un po alla matematica e anche all'informatica cioè richiede impegno, metodo, studio, attenzione. Abilità, padronanza e talento. E la passione. E per la migliore musica classica come per la matematica e l'informatica ... impegno non significa sacrificio e gioia non significa svago, bensì   gioia è sintomo di impegno   e realizzazione Giovanni Allevi è un esempio di creatività nella musica classica, annoto queste frasi che lo riguardano: Giovanni per avvicinare Riccardo Muti non esita a travestirsi da cameriere alla cena di apertura della Scala. Per tutta la sera serve vini e porta vassoi, finché estrae dalla...

Riconoscere una buona idea?

Stavo riflettendo che non è sempre facile Citare un autore, un "guru", una sua idea presa da un suo libro/articolo/post, magari a sostegno di una propria tesi,  si Poi quando lui è li presente, cita la stessa idea e giunge a conclusioni opposte, è ancora facile riconoscere che l'idea è buona? Credo sia meno facile Quando una buona idea differente dalla propria viene da un collega  è facile riconoscerla ? Difficile: accettare che la propria idea è meno buona,  credere che riconoscerla  è come cedere la vittoria, temere che possa far perdere la stima E quando finalmente si riconosce una persona come esperta, come...

Ci vuole troppo tempo, non si può fare!!!

      In un team Agile quando il capo progetto (coach) smette di dire    "questo non lo possiamo fare cosi perché non c'è tempo"    e sprona il team a scrivere codice di qualità accade una cosa ... almeno strana !?!?!? Capita di sentire un membro del team dire     "Questo non lo posso fare, ci vuole troppo tempo !!!"           L'ho osservato diciamo pure vissuto in almeno 3 team differenti, di diverse nazionalità, sia con una code-base ampia e legacy che in progetti completamente nuovi e in parte coperti da  test, sia in domini applicativi ampi e molto complessi che in...

How to Choose Quality Candidates/Consultants for Your Large Company Agile Initiative

Nel post likato una dozzina di domande esplorano l'esperienza di un developer con i metodi agili. Sono domande rivolte a chi sta quotidianamente lavorando in un team agile. Spronano a riflettere  sul  contesto in cui si è fatto sviluppo agile, come le pratiche sono state adattate a quel contesto, cosa si è trovato confortevole e cosa disagevole, quanto le proprie attitudini e aspirazioni corrispondono al contesto specifico e al modi di applicare le pratiche agili di una diversa azienda. In breve il post è How to Choose Quality Candidates/Consultants for Your Large Company Agile Initiative Tags :  Team...

Eventi/Workshop Agili

Quando si affronta un tema, si analizza una questione, nella pratica ho imparato che i team agili generalmente hanno la tendenza a valutare apertamente idee e opinione differenti dando ad ogniuna la medesima dignità, cercando di evitare  preconcetti nei confronti di qualcuno o di qualche idea e possibilmente senza deferenza nei confronti di una tesi o di chi la espone C'è partecipazione volontaria e auto-organizzazione  e la cosa mi sorprende sempre un po', più di quando mi sorprende l'approccio classico basato su autorità e gerarchia Questo modo di fare sembra guidare anche l'organizzazine degli eventi legati ai metodi agili,...

Rilasciare il più spesso possibile: esempi e conclusioni

     Dal quarto principo del Lean Software Development alcuni esempi che ho preso dal libro Lean Software Development: Rilasciare il più spesso possibile Quando nel mercato qualcuno riusce a ridurre i tempi di consegna i concorrenti si adeguano per recuperare il vantaggio competitivo oppure ... Nel 1971 la Federal Express ha introdotto le consegne overnight dei pacchi. Anche la L.L.Bean si è adeguata e nel 1980 ha introdotto le consegne in giornata mentre la Sears Catalog non lo ha fatto ed è uscita dal mercato ...

Informatica x digital Design = Business

Un collega ha segnalato questo articolo l'invenzione di una società specializzata nel «multi-touch» Il pavimento che si muove sotto i piedi racconta un esempio reale di applicazioni sw creative a confine tra design e informatica: un nuovo business di successo     Mi ha ricordato questi 2 "vecchi" post Arte digitale e informatica e  Arte digitale e informatica - bis    Trovo interessanti le dinamiche di team che possono crearsi tra Designer prestati alla programmazione con una forma mentale molto creativa e programmatori che lavorano su prodotti di Design con una forma mentale molto strutturata & su come contaminarsi e creare sinergie   ...

Rilasciare il più spesso possibile: altre info

   Altre informazioni sul quarto principio del Lean Software Development Rilasciare il più spesso possibile Questo principio è di complemento anche a altri principi del Lean,         ad esempio il #3  Ritardare la decisione all'ultimo momento responsabile  perché senza velocità nei rilasci si è costretti ad anticipare le decisioni per avere più tempo per metterle in pratica        e il #2 perché il feedback che si ottiene con rilasci frequenti è utile ad Amplificare l'apprendimento        e pure il #1 perché ridurre al minimo codice realizzato e non ancora consegnato significa Eliminare uno spreco Tags :  Team Work |...

Rilasciare il più spesso possibile

Lean Software Development descrive principi e pratiche utili a introdurre i metodi agili nella propria organizzazione. E lo fa dal punto di vista del Manager e del Responsabile tecnico di progetto. Il principio #4 del Lean Software Development è Rilasciare il più spesso possibile Cioè riuscire a consegnare in modo affidabile e ripetibile più velocemente aumenta i guadagni e riduce i rischi dell'utente e del team di sviluppo sw Qual'è il tempo minimo (pratiche di coding Agile) che serve al team per produrre qualcosa di valore ? E qual'è il tempo massimo (processo e business) che il Product Owner può...

E' vero anche il contrario

In questo post Il codice che scrivi parla di te ? mi annotavo come alcune caratteristiche del carattere si possono riflettere nel proprio stile di scrittura del codice.    Inizio a pensare che è vero anche il contrario, cioè il proprio stile di scrittura del codice può influenzare il carattere/comporamento. Per esempio da qualche tempo ho iniziato a suddividere ogni user story in piccoli task di 2-4h ogniuno con test refactoring e pronto per il check-in.             Un modo di fare che aiuta a focalizzarsi in una cosa alla volta; incoraggia a osare di più (fare rollback e ricominciare dacapo...

Posta elettronica consegnata da vere lumache

      E' proprio da questo sito www.boredomresearch.net/rsm/  che prende il titolo il post precedente Ma gli androidi sognano anche lumache elettriche ? Tags :  | Creatività | Innovazione | Progettazione Software |

Ma gli androidi sognano anche lumache elettriche ?

If we can imagine it, there's a good chance it can be programmed Vint Cerf, Internet evangelist on the official Google blog E' chiamato       The Internet of Things       è un mondo, imminente, dove gli oggetti fisici e gli esseri umani insieme a spazi e informazioni virtuali interagiscono tra loro in tempo reale in uno spazio comune. In breve tutto è interconnesso E' la realizzazione del neologismo coniato da Bruce Sterling nel 2004        spime       cioè oggetti che possono identificarsi in base alla propria posizione e al tempo.  Ad esempio possono localizzarsi col GPS e...

Ritardare la decisione all'ultimo momento responsabile: considerazione finale

Secondo me il punto chiave del terzo principio del Lean Software Development è che si fa software più velocemente quando si riconoscono gli istanti di non ritorno e si usano a proprio vantaggio Come ci si sente a cercare di scrivere sw ignorando l'ultimo momento responsabile ?       per esempio ci si sente       tranquilli quando il progetto inizia e il tempo stimato è ancora tutto disponibile,       sorpresi quando le scelte prese danno risultati diversi da quelli che servono,       seccati quando non c'è il tempo per fare le cose in modo diverso come la pratica suggerisce,       preoccupati e rassegnati quando la dead-line si...

Quali sono le proprie motivazioni che portano a lavorare in team ?

In fondo io non volevo vivere altro che ciò che   da me voleva sorgere spontaneamente. Perché       era tanto difficile?    H. Hesse, Demian, 1919   Me lo chiedo perché quando ri-conosco quali sono le motivazioni che mi spingono e le mie aspettative, posso seguirle  e assecondarle e anche inseguirle divertendomi di più e riuscendo a farlo meglio.  E' così per tutti. Qui una lista delle possibili motivazioni, tra tutte queste si può provare a riconoscere anche le proprie. Il primo gruppo nasce da bisogni pratici   ___bisogni funzionali___   si tratta di concreta possibilità di interagire e produrre...

Le possibilità sono illimitate e il tempo no

Perchè durante la giornata ci sono cose da fare che si evitano e si rimandano incontinuazione e altre che la voglia di farle non manca e il tempo si trova sempre ? Sia nel lavoro che nella vita personale Ecco 4 caratteristiche di una attività che la possono rendere più o meno appetibile nel flusso delle attività quotidiane: Motivazione: l'attività X è più importante di ogni altra attività in quel momento e quindi viene fatta Leggerezza: l'attività X è talmente facile a farsi che basta...

Il codice che scrivi parla di te ?

Delle volte mi è capitato di notare delle similitudini almeno strane    Ad esempio tra l'approccio che ha un turista nel girare per una città o un museo e il modo che ha di cercare e scovare informazioni in internet con Google        Tra la costanza che ha una persona nella vita di tutti i giorni , la sua capacità di sopportare e superare la frustrazione e di mantenere     calma e fiducia     anche nelle difficoltà  e la sua capacità di affrontare e risolvere  bene problemi di programmazione impegnativi anche in condizioni difficili    Tra l'efficacia con cui una persona riesce tra...

Ritardare la decisione all'ultimo momento responsabile: esempi

Dal terzo principo del Lean Software Development alcuni esempi che ho preso dal libro Lean Software Development: Ritardare la decisione all'ultimo momento responsabile Enrico Zaninotto è l'economista italiano :) che ha mostrato con i suoi studi che quando si eliminano le cose che rendono irreversibile una decisione una volta presa la complessità scende velocemente E ha mostrato che rimandare le decisioni irreversibili a dopo riduce l'incertezza e è una strategia economica conveniente e vincente. Questo è il vantaggio economico che si vuole ottenere dalle pratiche di coding Agile E un po di storia Microsoft. Al Comdex trade Show del...

Ritardare la decisione all'ultimo momento responsabile

Lean Software Development descrive principi e pratiche utili a introdurre i metodi agili nella propria organizzazione. E lo fa dal punto di vista del Manager e del Responsabile tecnico di progetto. Il principio #3 del Lean Software Development è Ritardare la decisione all'ultimo momento responsabile Cioè tenersi aperte più possibilità di scelta il più a lungo possibile per decidere dopo aver raccolto più elementi e più fatti concreti. Aspetta a decidere (YAGNI) sino a quando rimandare ancora la decisione eliminerebbe automaticamente  una alternativa importante (Last Responsible Moment)        Usa le pratiche di coding Agile per scrivere  software...

Art Oriented Programming & Live Coding

'Live Coding'   è il termine usato per descrivere performance musicali dal vivo particolari Musica generata dal vivo con codice e algoritmi che vengono scritti e modificati sul palco in tempo reale usando l'editor e l'interprete come strumenti musicali live Alcune frasi da questo articolo on-line ART ORIENTED PROGRAMMING live coder insists on using the code as a speech act. Live Coding is not about finding an algorithm ‘that sounds beautiful’ (the beauty of mathematics and machines) but about interacting with the machine, constantly making alterations and development in the music. 'eXtreme Programming' & 'Live Coding'  questo articolo LIVE CODING: AN OVERVIEW parla invece della  relazione tra...

Situazioni da team: disaccordo con l'utente

L'utente (ma anche il committente o il cliente o il Product Owner) fa una scelta che per te è sbagliata su una funzionalità da realizzare, cosa fai ? accetti la sua decisione: in fondo è lui che paga e ti cauteli mettendo nero su bianco che la decisione è stata sua imponi la tua decisione: perchè sai che è la migliore e ti assumi la responsabilità, onori e oneri gli permetti di  fare una scelta...

Amplificare l'apprendimento: considerazione finale

  Secondo me il punto chiave del secodo principo del Lean Software Development è che si realizza software meglio quando si procede per piccoli passi (rilasci, iterazioni, user-story, check-in, cicli red-green-refactor, pomodori) che svelano  le alternative possibili e tentativi che migliorano la comprensione e guidano alla costruzione del software che realmente serve con del codice che tutti capiscono. Come ci si sente a cercare di scrivere sw nel modo giusto al primo colpo ?       per esempio preoccupati per la riuscita o al contrario esaltati dalla difficoltà, incerti sul avanzamento reale del progetto o sulla validità delle scelte fatte di fretta, innervositi ...

Amplificare l'apprendimento: esempi

Dal secondo principo del Lean Software Development alcuni esempi Amplificare l'apprendimento Quando arrivano nuove tecnologie, quando capita di applicarle per prima volta per quel dominio applicativo dove c'è ancora tutto da scoprire e da inventare, quando serve collaborare e condividere informazioni con altre persone che hanno dei compiti o delle conoscenze molto diverse. Perchè nella scrittura del codice non ci sono i vincoli fisici come nelle altre discipline ingegneristiche il vincolo maggiore è  l'immaginazione, perché il software è che è "facile" da modificare evolvere adattare e personalizzare e questo è importante per l'utente e crea anche la complessità. E...

Amplificare l'apprendimento

    Lean Software Development descrive principi e pratiche utili a introdurre i metodi agili nella propria organizzazione. E lo fa dal punto di vista del Manager e del Responsabile tecnico di progetto. Un principio del Lean Software Development è Amplificare l'apprendimento Cioè immaginare le possibili soluzioni e anche le loro varianti e con la pratica imparare scoprire esplorare. Rilasciare spesso e in continuazione, imparare dai risultati delle propria implementazione quando viene usata dall'utente come adattare il software in modo che si dimostri nella pratica ancora più utile all'utente. Tags :  Team Work | Lean Agile | Leadership |

Come se non ci fosse un leader

Lavorando in gruppo senza un leader incaricato ci sono vantaggi e degli svantaggi, un gruppo con un leader di processo può ottenere gli stessi vantaggi e forse anche rafforzarli. Un leader di processo si occupa solo di far progredire il processo. Per questo si prende cura della comunicazione nel gruppo, del fatto che ognuno sia motivato e le condizioni di lavoro siano buone e che le cose con l'esterno del team vadano lisce. Il compito principale di un leader di processo non è di risolvere problemi, fa in modo che il gruppo ci riesca. I vantaggi e gli svantaggi che ci sono quando...

Scene di leadership da film

Un dialogo avvincente in un film così e così (al minuto 2) Robert:  Essere un capo non è questione di abilità, ma di responsabilità. ...

Chi dorme ... è più creativo del 33%

Dr. Ellenbogen’s research at Harvard indicates that if an incubation period includes sleep, people are 33 percent more likely to infer connections among distantly related ideas... In other words, people are more creative after sleep, but they don’t know it. Fonte: http://lifehacker.com/5056071/sleep-boosts-creativity-by-33  E per favorire il sonno: De gregori - Buona notte fiorellino Tags :  | Creatività | 

Quando si può accettare o desiderare la mancanza di un Leader ?

Non che un team non si trova bene col leader che lo guida e preferirebbe un leader diverso, piuttosto si sente proprio di lavorare senza un leader incaricato. Mi annoto in sintesi alcune considerazioni dal Leadership Game di Ignace Hanoulle e Yves Hanoulle a cui ho partecipato. La risposta descrive una situazione ideale in cui il team tiene alti questi valori: creatività, rispetto, realizzazione personale, libertà, responsabilità e amicizia (conoscenza, apprezzamento, fiducia) nel team ci sono solo competizioni sane e non c'è una ricerca del potere che rovina i rapporti dentro il...

Dalla storia dei Pink Floyd 4 insegnamenti per il proprio team

Il libro racconta la storia di una band che ha realizzato alcuni tra gli album più venduti al mondo, è una storia di creatività, innovazione e  successo imprenditoriale. Riporto il link a questo post Four Non-Obvious Things Pink Floyd Can Teach Your Team e qualche  riga  di assaggio. Hiring Based on "Team Fit" is Over-Rated "personality fit" isn't always a requirement—though obviously it sure helps. The ability to get the job done is what matters. Barrett was let go only after he made it clear he could no longer contribute to the team's success. "Dark Side of the Moon contains the best songs...

Disegno versus Produzione 3/3 conclusioni

       Nel disegno si fanno emergere varie alternative possibili che vengono analizzate e esplorate in un processo iterativo fatto di prove e tentativi che migliorano via via la comprensione del problema e della soluzione sino alla definizione del disegno prescelto (vedi ad esempio Modificare metodi interminabili: strategia).        Il primo passo per l'efficenza è distinguere le (re)iterazioni di disegno che in questo modo generano valore dalle (re)iterazioni di produzione che invece sono un "rework" cioè rifare il lavoro che è uno spreco (l'esempio in questo commento)        Il secondo passo per l'efficenza è riuscire a distinguere anche tra le (re)iterazioni di...

Disegno versus Produzione 2/3

       _P_ er realizzare software le attività di disegno e produzione si combinano insieme. Trovo che sia molto facile confondere quello che è disegno da quello che è produzione e molte sviste sul disegno credo che nascono proprio da questo.    Riporto le distinzioni che ho trovato in questo articolo  POSITIVE VS NEGATIVE ITERATION IN DESIGN, G Ballard che propone dei criteri per distinguere vantaggi e sprechi nel disegno e nella produzione.         Il disegno agisce nel mondo del pensiero e della immaginazione per "creare una ricetta"  (strutturare un sw in namespace, in classi, in livelli, etc.),  la...

Disegno versus Produzione 1/3

       _P_ er realizzare software le attività di disegno e produzione si combinano insieme. Trovo che sia molto facile confondere quello che è disegno da quello che è produzione e molte sviste sul disegno credo che nascono proprio da questo.    Designare una applicazione è simile in un certo senso a fare una buona chiacchierata che lascia tutti con una visione più chiara delle cose.  Ci si confronta su più alternative possibili di design, si prendono le idee migliori da ogni alternativa, si verifica la fattibilità e si fanno stime migliori.    Quando invece è simile a uno scontro, le alternative...

Arte Generativa e software-art

C.STEAM 2008, a Torino la mostra dal 19 al 27 settembre l'intersezione tra design e informatica Tags :  Team Work | Creatività | Innovazione | Progettazione Software |

Eliminare gli sprechi: considerazione finale

Secondo me il punto chiave è che si può eliminare sempre e comunque e ci si risparmia il costa dello spreco insieme agli impacci che crea. Basta riuscire a imparare o scoprire il modo di farlo, il limite maggiore è l'immaginazione e la convinzione di poterci riuscire. Come ci si sente a vedere uno spreco che continua a ripetersi?  Irritati perché crea fastidi. Tristi e anche demoralizzati perchè si subisce questo problema. Come ci si sente a scoprire uno spreco e riuscire ad eliminarlo?   Soddisfatti perché si vede proprio che si lavora meglio dopo. Più sicuri e confidenti per essere riusciti...

Eliminare gli sprechi: esempi

  Dal primo principio del Lean Software Development degli esempi di spreco per ogniuna delle  principali categorie di sprechi Eliminare gli sprechi   Quando si raccolgono dei requisiti che poi restano accantonati per un bel po a prendere polvere è spreco (Partially done work)    Quando viene implementata una funzionalità che servirà dopo ma non subito è spreco (Extra features)    Quando due gruppi si rimpallano un lavoro o un problema...

Eliminare gli sprechi

    Lean Software Development descrive principi e pratiche utili a introdurre i metodi agili nella propria organizzazione. E lo fa dal punto di vista del Manager e del Responsabile tecnico di progetto. Un principio del Lean Software Development è Eliminare gli sprechi Un cliente/utente quando dice che una certa cosa secondo lui   non da più valore   al suo software, programmare quella cosa è uno spreco.  Anche una cosa che   rallenta   lo sviluppo e il rilascio di una funzionalità...

Perché si può volere un leader

Dal  Leadership Game di Ignace Hanoulle Yves Hanoulle a cui ho partecipato. Mi annoto in sintesi  le ragioni che possono rendere desiderabile essere guidati da un Leader con un approccio di tipo direttivo (che da indicazioni su cosa fare e come) nel realizzare un progetto : Perché assicura il coordinamento es. procura le risorse - assegna i task alle persone nel modo più appropriato - si assicura che i task più importanti non siano trascurati e quelli minori non siano seguiti più del necessario ...

Letteratura & Informatica ??? Si

In quella trasmissione in bianco e nero  a ora tarda un gruppo di persone con l'aspetto di intellettuali e accademici erano sedute in modo sparso e informale in una stanza parlavano di letteratura in francese (la trasmissione tv era in b/n, i sottotitoli ... no). Un quadro esistenzialista sembrava. Quando il professorone (il + vecchietto del gruppo) mi comincia a parlare di grammatiche, sintassi, semanti, ricorsione e mischiarla a argomenti letterari e filosofici. Ci mancava solo una canna!!!! L'altra sera mi sono sorpreso quando ho scoperto che Noam Chomsky quello che ha sviluppato la teoria delle grammatiche...

Managing Talented People

Trovo che la categoria di noi informatici è composta da persone davvero particolari... capacità superiore alla media nel affrontare le astruse complicazioni dell'informatica , passione per il proprio lavoro che tiene attaccati alla tastiera ore e ore, curiosità che spinge a cercare la soluzione per i problemi più difficili senza sfiduciarsi e arrendersi,  capacità di analisi di infiniti dettagli, tenacia nel lavorare con macchine sorde e incorruttibili questo a volte significa anche ... parlare in un gergo difficile da capire,  niente margini per dare quel qualcosa in più perché si stà già dando il massimo sempre e comunque, far...

Manager e politiche aziendali: troubleshooting

Studiando le dinamiche interne delle aziende con cui evolvono e si trasformano e quelle con cui si innovano si è scoperta l'importanza che hanno le politiche aziendali. Formalizzando matematicamente le politiche di una azienda (vedi Dynamic systems) e usando questo modello in una simulazione al computer si riesce spesso a predire i limiti di crescita determinati dalla struttura stessa di quelle politiche e cioè si riesce a predire i principali ostacoli e le maggiori difficoltà che l'azienda si troverà ad affrontare (vedi il pdf System Dynamics and the Lessons of 35 Years ). Nel momento in cui si raggiungono...

Codice con le rughe - 3/4 (e resto mancia)

Quand'è che un programmatore considera un codice sorgente "Legacy" ??? Quando e come quel codice è diventato Legacy ??? Visti i link, letti i commenti, l'idea che mi convince sempre di più è questa. Visto che non è una tecnologia superata a rendere un codice Legacy - visto che non è il fatto che il codice non è documentato e nessuno sa più cosa fa come e perché a renderlo Legacy  - visto che non è il tempo che passa e non è l'uso che lo consuma a renderlo Legacy - vista la difficoltà di leggere il codice rispetto la facilità a...

Codice con le rughe - 2/4

Quand'è che un programmatore considera un codice sorgente "Legacy" ??? Quando e come quel codice è diventato Legacy ??? Letti i commenti al post precedente faccio alcune riflessioni:    - L'idea che il codice diventa legacy perchè impiega tecnologie superate funziona poco.  Il codice sorgente di Sw di successo resta in onorato servizio diversi anni dopo la comparsa di nuove tecnologie alternative. Ad esempio Don Box disse 'mscoree is the last COM DLL' - chi fa software in ambiente Enterprise sa invece quanto è ancora indispensabile l'interoperabilità con COM perché il codice in questa tecnologia è ancora presente e vivo.     -...

Codice con le rughe - 1/4

Il software ha due caratteristiche davvero singolari che non ci sono negli oggetti comuni di tutti i giorni e nella maggior parte dei prodotti industriali. William Gibson in Mona Lisa overdrive sembra conoscerle bene, è così che Angie, 3Jane e Continuity realizzano il sogno della Tessier-Ashpool di raggiungere l'immortalità nella matrice. Il software per quanto viene utilizzato (compilato o eseguito) non si usura ne si consuma -  e  - col passare del tempo non invecchia ne deperisce. Allora cos'è che fa diventare il codice sorgente Legacy  ???   quand'è che un programmatore considera un codice sorgente "Legacy" ??? Update E quindi _quando_ e _come_ quel...

Web Service: Mobile Agent + servizi + risorse

Aggiorno e dettaglio un idea che avevo già accennato sulla progettazione di Web Service e di applicazioni che li utilizzano. Un Web Service può fornire un servizio: un risultato finito e fruibile come l'esito della ricerca delle citazioni di un dato articolo tra i libri di una banca dati, o l'invio automatica di un allarme fatto dal sistema di controllo della cella frigo quando la temperatura sale oltre la soglia di congelamento. una risorsa: la copia digitale di un dato in...

Modificare metodi interminabili: strategia

Il modo naturale di procedere per scomporre metodi troppo lunghi?     procedere per tentativi facendo passi in avanti e ogni tanto passe indietro: ad ogni tentativo il disegno originale apparirà più chiariro e cosi il modo di procedere. Ad esempio tovato un grande if o switch si può cominciare a estrarre in metodi i corpi degli if e in funzioni le espressioni condizionali  oppure estrarre insieme nello stesso metodo la condizione insieme al corpo del if. La prima strada può evidenziare corpi di if uguali richiamati in diversi punti del metodo, la seconda può evidenziare if interi ripetuti. Provare aiuta ad avvicinarsi...

Modificare metodi interminabili: quando il tool di Refactoring manca

Quando è necessario modificare un metodo lungo centinaia o migliaia di righe di codice e modificare un comportamento esistente senza l'aiuto di un tool di refactoring conviene   SCOMPORRE IL METODO ABNORME E METTERLO SOTTO TEST   applicando delle tecniche specifiche. Visto che è difficile scrivere dei test sul quel metodo, allora si inserisce il test dentro il metodo. L'idea consiste nel inserire delle variabili di rilevazione nel codice del metodo che "misurano" se si è comportato correttamente e queste variabili vanno a testare le stesse cose che si testerebbero se si potessero scrivere test unitari sul metodo abnorme.  La prima è...

Limitare le interruzioni

Scrivere codice è una di quelle attività che funziona meglio senza interruzione invece che in multi-tasking          Il codice risulta migliore e il lavoro richiede meno tempo        Punto. Nel mondo reale può capitare che le cose cambiano senza preavviso  (una data, un requisito, una priorità è cambiata) anche cose che hanno conseguenze sul codice che si sta scrivendo. E può capitare che un collega o un cliente in ritardo abbia un grosso bisogno di aiuto per cavarsela. Ecco perchè saltare come una molla da una cosa all'altra funziona tanto quanto (il suo opposto ossia) chiudersi in una bunker e...

Modificare metodi interminabili: scomporli

Quando è necessario modificare un metodo lungo centinaia o migliaia di righe di codice e modificare un comportamento esistente conviene   SCOMPORRE IL METODO ABNORME E METTERLO SOTTO TEST   con l'aiuto di un tool di refactoring come Resharper.  La strategia è quella di separare la logica dalle intricate dipendenze nel codice e quindi sradicare le dipendenze (ad esempio sostituendo i riferimenti a classi concreti  con riferimenti a interfacce) per semplificare il test del codice. Il metodo non è già coperto da test e quindi è necessario cominciare applicando solo i refactoring previsti dal tool (principalmente RefactoringExtractMethod e RefactoringRenameMethod) evitando refactoring manuali che non sono sicuri senza ne test...

Modificare metodi troppo lunghi

Sto parlando di modificare un metodo lungo centinaia o migliaia di righe di codice non coperte da test.   Quando la modifica è   UNA NUOVA FUNZIONALITA' DA AGGIUNGERE   cioè che non modifica comportamenti esistenti il punto è quello di non peggiorare ancora la lunghezza del metodo e di testare almeno la nuova funzionalità che si implementa. L'idea è implementare la nuova funzionalità in un altro metodo e di richiamarlo dal metodo già troppo lungo.  In questo modo il metodo originale si allunga solo di una riga. Per rendere testabile il nuovo metodo serve renderlo indipendente dal contesto passandogli le informazioni che gli servono come parametri. Questo pattern si chiama...

Single-goal Editing

Ecco un'altra cosa che richiede disciplina e faccio fatica a seguire - ma non mi arrendo : fare una cosa alla volta quando si scrive codice Per esempio devo modificare un metodo di un oggetto perché accetti un enum con 3 valori invece del booleano che ha ora per poter gestire una nuova casistica: Inizio la vodifica e mi accorgo che sul form c'è da sostituire il check-box con 3 option button quindi interrompo la modifica del metodo e vado sul form. Sistemato il form torno al metodo, proseguo con la modifica quando mi accorgo che ci sono 3 if che...

La qualità del codice che fa la differenza nella pratica

Lavoro nel team di cui faccio parte da quasi 3 anni.  Un tempo in cui lo stile di programmazione nel team si è evoluto migliorandosi. Cosi quando c'è uno sviluppo da fare mi trovo a lavorare di volta in volta su codice di qualità differenti, questo mi ha permesso di vedere in pratica le diverse caratteristiche di qualità del codice e gli impatti che hanno sul mio lavoro: tempi, affidabilità, risultato finale. In generale percepisco 4 diversi livelli crescenti di qualità del codice: Facilità di trovare dove fare la modifica Dipende...

Strategie per togliere duplicazioni nel codice

Rimuovere le duplicazioni nel codice raramente è una sequenza lineare di passi in avanti. Ci sono modi diversi di scegliere da quali duplicazioni cominciare, modi diversi di eliminare ogni duplicazione, e durante ogni eliminazione si possono evidenziare nuove duplicazioni.    Qual è il modo naturale di procedere per rimuovere il codice duplicato?  Il modo naturale è di procedere per tentativi facendo passi in avanti e ogni tanto passi indietro: ad ogni tentativo il disegno originale apparirà più chiaro e cosi il modo di procedere. Questo è un punto in cui Team System ha una carenza. Infatti ci sono CVS che permettono di fare check-in locali e...

Eliminare il codice duplicato: la scelta non è meccanica

  Scelta la duplicazione da rimuovere e i refactoring da usare capita anche che ci sono più alternative per rimuoverla e quindi bisogna   scegliere il modo di rimuovere la duplicazione  .  Per fare un esempio, il metodo   void C { a(); a(); X(); a(); X(); X(); }  può essere  trasformato in         void C { aa(); X(); a(); XX(); } oppure in        void C { a(); aX(); aX(); X(); } In questo caso nel cercare un nome per il metodo ottenuto in un modo (nel esempio un nome per aa() e XX()) e quello ottenuto nell'altro (nel esempio u nnome per aX())  scegliere quello col nome che ha più senso aiuta a fare la scelta giusta. Un altro criterio...

Eliminare il codice duplicato: i refactoring

E' arrivato il momento di     raccogliere il fattore comune     del codice duplicato e unificarlo in un solo punto eliminando cosi le duplicazioni. Annoto alcune indicazioni da  Working Effectively with legacy code di M.C.Feathers .        Quando la duplicazione riguarda una porzione di codice o una parte di una espressione dentro un metodo si applica il RefactoringExtractMethod.        Quando la parte duplicata è una espressione, ad esempio una espressione condizionale applica il RefactoringDecomposeConditional .               Quando la parte duplicata è un metodo intero e relative variabili di classe si applica il RefactoringExtractSuperclass.                   Quando la duplicazione riguarda buona parte di un metodo a meno di piccole differenze, si applica...

Eliminare il codice duplicato: da dove cominciare

Trovate le duplicazioni il passo seguente è    scegliere quale duplicazione rimuovere per prima   :  in basa alla scelta fatta il risultato finale, il codice e la sua struttura, saranno diversi.  L'esperienza insegna di cominciare dalla duplicazione più piccola perché una volta rimossa emergeranno nuove informazioni e nuove duplicazioni cominceranno ad essere più evidenti.   Riferimenti: Working Effectively with legacy code di M.C.Feathers   Tags :  Team Work | Agile | Pratiche | Progettazione Software |

Eliminare il codice duplicato

Il primo passo è quello di   riconoscere il codice duplicato  .  Quando il codice è il cut-and-paste di un altro codice o di un metodo è abbastanza immediato riconoscerlo. Altre volte le duplicazioni sono piccole parti di codice riscritto uguale (una riga di codice o una parte di una espressione) in molti posti. Ci sono anche delle sequenze di codice che si ripetono con lo stesso ordine e a volte in ordine differente o interi metodi che differiscono per piccoli dettagli (vedi Refactoring e il CatalogoDelleCodeSmell). Questi casi di codice duplicato si trovano cercando a vista con pazienza e facendo esperienza. Un altro approccio reattivo cioè quello di...

Fare check-in spesso & di una cosa alla volta!

Com'è difficile essere disciplinati nella scrittura del codice: è da 3 iterazioni che ci ri-cado almeno una volta !!!! Il punto è questo: fare check-in spesso [1]  , più volte al giorno e di una singola cosa alla volta Oggi è andata cosi, ho cominciato ad aggiungere un tipo per una nuova feature e scrivendo i test mi sono accorto di alcuni namespace di test da rinominare, mi sono fatto prendere la mano e ho spostato anche un namespace del Assembly da testare e poi questo ha richiesto di modificare tutte e 3 le applicazioni che lo usavano. Sono andato avanti fino alle 8 per fare check-in e la...

Lasciagli scoprire la risposta

Un buon coach invece di dare la risposta per ogni problema, da un suggerimento e lascia allo sviluppatore scoprire la sua risposta. Quando  torna a mani vuote il coach può sempre dare ulteriori suggerimenti (o anche la risposta), quando torna con qualche idea il coach lo aiuta a valutare i pro e i contro, quando torna con una soluzione migliore di quella che il coach aveva pensato il coach può imparare da quella esperienza e condividere le sue conoscenze. Questo ha diversi vantaggi, aiuta a imparare come approcciare un problema insegna...

Individuare le responsabilità di una classe

Quando capita di trovarsi con una classe troppo grossa (con 20-60 di metodi) probabilmente li ci sono troppe responsabilità, conviene individuarle e poi estrarle mettendole in nuove classi Ecco alcuni modi di individuare le responsabilità a partire dal codice esistente di una classe: Scrivi i nomi di tutti i metodi della classe insieme alla visibilità (public, privare, friend, internal, ...) e prova a raggrtupparli in base alle similitudini nel nome Guarda i metodi privati, internal e protected. Quando sono molti probabilmente li c'è una classe nella classe.  Una classe...

Disegno del codice che usa Framework e librerie di 3ze parti

 Sun per Java  e  Microsoft per .NET  hanno un framework esteso che soddisfa molte delle esigenze comuni nello sviluppo di software. E ci sono anche varie  librerie di 3ze parti  che capita di usare nelle proprie applicazioni. Questo può portare a realizzare codice composto da una sequenza di chiamate a librerie / framework, difficile da testare e difficile da capire.  In passato mi è capitato di scrivere codice in questo modo e di trovare codice fatto cosi  e non è stato facile lavorarci. L'altro svantaggio è la dipendenza inestricabile che si crea con il framework o la libreria. E questo ha un impatto economico e strategico...

Materiale dal ESSAP 2008

  Il materiale della 3rd European Summer School on Agile Programming riguardo Agile Loop , i Mini-Project, la sessioni sui Test di accettazione, un report dal campo sulla adizione dei metodi agili in azienda e la stima e pianificazione è qui: http://essap.dicom.uninsubria.it/pmwiki.php?n=Main.CourseMaterials Altro materiale sugli Agile Loops: http://www.xpday.net/Xpday2007/session/XpLoops.html La tecnica del pomodoro: http://www.tecnicadelpomodoro.it/tdp.html Il materiale relativo al Leadership game: http://www.paircoaching.net/docs/LeadershipGame.pdf     Tags :  Team Work | Agile | Pratiche | Leadership | Team | Team building | Progettazione Software |

Il management quanto ascolta i feedback del team ?

Quando c'è ... una decisione da prendere sul progetto una azione importante da intraprendere per rispondere a una esigenza del cliente una scelta tecnologica che ha impatto strategico un bisogno di formazione per rispondere ai progetti da realizzare e al proprio percorso di crescita ...

Questa volta le formiche siamo noi

  Eric Horvitz, ricercatore dei Microsoft labs, usando gli utenti del messenger come una volta gli scienziati usavano le formiche da laboratorio è riuscito a dimostrare la teoria dei sei gradi di separazione ipotizzata e studiata dallo psicologo sociale negli anni 60. L'articolo con i risultati della ricerca (per cui i gradi in realtà sono 6.6) è stato pubblicato su Nature e un abstract della ricerca è disponibile on-line.   In questo post che anticipa di qualche mese i risultati di questa ricerca, ci sono alcuni temi affini: L'intelligenza che emerge dalla rete  L'aspettatita è che altri risultati emergeranno dallo studio dei dati delle prsone che...

Il costo del turnover

   Per una azienda il turnover di lavoratori è un costo.   Ed entro certi limiti è anche utile: quando riguarda lavoratori con basse prestazioni e quando i nuovi arrivi portano energie fresce e nuove idee.   Un certo livello di turnover è fisiologico. Ad esempio il turnover annuo nel settore industriale della tecnologia negli Stati Uniti  per il 2007 è del 10.6% (vedi qui).   Una azienda a causa del turnover di un lavoratore tipicamente sostiene  una serie di costi, ad esempio: Exit costs Recruiting ...

Immaginazione e conoscenza

  “ Imagination is more important than knowledge” For knowledge is limited to all we know and understand, while imagination embraces the entire world, and all there ever will be to know and understand — Albert Einstein Tags :  Team Work | Creatività |

Milioni di cose ancora da scoprire x scrivere buon codice

  proprio quando credevo di aver  imparato   tutto quello che c'è da sapere sulla programmazione scrivere proprio codice intendo, scopro che ce nè altrettanto ancora da imparare !!! un po come migliorare il tempo del giro in go-kart, per passare da 50'' a 48'' ce n'è da fare, provare, capire, imparare, forse  piu di quello che è servito per passare dai 60'' ai 50'' (oh, nella gara di go-kart  tra colleghi sono pure arrivato ultimo)! è che arrivato ai 50'' per abbassare ancora di 2'' al primo momento pare che sia questione di dettagli infinitesimali, tutta roba da   perfezionismo maniacale e talento naturale....

Lascia decidere l'utente

Quando c'è da prendere una decisione che ha impatto sul lavoro del'utente il compito dello sviluppatore, del coach e del project manager è quello di lasciare scegliere l'utente (il product owner). Anche se nel team c'è un esperto di dominio che conosce perfettamente il business dell'utente, difficilmente può conoscere la quotidianità in cui l'utente lavora e tutte le implicazioni della decisione sul suo lavoro. Ma anche se ipoteticamente le sapesse, l'utente è un'altra persona e quindi ha priorità, obiettivi, metri di giudizio propri. Le differenze sulla priorità/importanza sono più di quelle che si è portati a credere. In "The Manager as Negotiator" (D.A....

Imparare a cooperare con un compito difficile da assolvere

  La risoluzione dei conflitti si è evoluta nel tempo dalle forme più costose a quelle più vantaggiose: la lotta il ricorso ad autorità e norme condivise le transazioni la collaborazione  Ci sono ad esempio dimostrazioni che comportamenti collaborativi possono emergere in modo spontaneo anche in assenza di una autorità centrale (Robert Axelrod) o descrizioni le caratteristiche che hanno i negoziatori migliori (Neil Rackham, 1999). Anche se non spiegano come nel tempo l'uomo ha imparato la collaborazione e perchè sceglie di collaborare. Anzi, studiosi in psicologia e...

Parmenide, Eraclito e von Neumann

Leggendo questa citazione di von Neumann ho ricordato quella di Parmenide e Eraclito   « Non ci si può bagnare due volte nello stesso fiume, perché né l'uomo né le acque del fiume sono gli stessi »  (Eraclito, Battiato)     « E neppure è divisibile, perché tutto intero è uguale; ... Perciò è tutto intero continuo: l'essere, infatti, si stringe con l'essere ... Ma immobile, nei limiti dei grandi legami ... E rimanendo identico e nell'identico » (Parmenide, Monismo, Uno)   « Non c'è motivo di essere precisi riguardo a qualcosa quando non conosci quello di cui stai parlando  » (von Neumann)   Tags :  Team Work | Agile | Progettazione Software |

Retrospective con time-line

Matteo ha appena pubblicato le sue foto del ESSAP 2008 tra cui quelle della Retrospective conclusiva con la tecnica della time-line e dei bollini :   Pre-ESSAP, Domenica, Lunedi, Martedi         Mercoledi, Giovedi, Venerdi e la discussione            Ognuno ripercorre a memoria un giorno della settimana alla volta e pensa a ricorda cosa è successo quel giorno,  una cosa __  che ha apprezzato __  di cui si lamenta e ha delle raccomandazioni __  che lo lascia perplesso...

Foto da team agile

Nella vita di un team agile arriva il momento della foto, un po come accade a una squadra di calcio, di pallacanestro o di rugby Ci sono le foto ufficiali in posa con la divisa e quelle scattate durante l'azione che mi danno il senso di essere più "vere" Ecco le foto certamente originali di 2 team di cui faccio parte (clicca x ingrandire) :   Tags :  Team Work | Agile | Team | Team building |

Feedback, feedback, feedback e sharing, sharing, sharing

Feedback, feedback, feedback e sharing, sharing, sharing ... sono parole prese dal post di Marco Fiocco anche lui al ESSAP 2008 - e veneto come me ;-) E queste alcune immagini del feedback raccolto e condiviso in team (( (clicca x ingradire xXX - info sul tooltip) )) : Feedback dopo l'introduzione          La prima Retrospective ... feel good, feel what ???              Retrospective, altro formato per le azioni ... start this, keep that, stop what ?       Altra Retrospective in giardino ... appreciation e altro ancora        Sharing sharing sharing              Tags :  Team Work | Agile | Pratiche | Team | Comunicazione | Conflitto | Negoziazione |

Situazioni da team: palla avvelenata

  Ti viene assegnato una User Story per un progetto e non sono chiare le responsabilità ne la disponibilità delle risorse&nbspegrave; sarà un probabile insuccesso   Cosa fai per spendere il tuo tempo al meglio per la tua azienda e per il tuo patrimonio professionale fatto di competenza e credibilità? Rifiuti il compito sino a quando non viene fatta chiarezza Accetti il rischio e cominci anche se potrà finire con un gran dispendio di energia e pochi risultati Ti adoperi...

ESSAP 2008: Una settimana di training Agile full-immersion

  Questo venerdì ho completato una settimana molto intensa e fruttuosa di formazione sulle metodologie Agili alla 3rd European Summer School on Agile Programming o più brevemente ESSAP 2008. Hanno partecipato studendi universitari e dottorandi di tutta europa (Italia, Austria, Belgio, Olanda, Bulgaria) e oltre (Pakistan, Canada e Argentina) e professionisti esperti ( io sono tra questi ;-) ). Hanno partecipato come tutor e speaker gli organizzatori dalla Università dell'Insurbia tra cui Matteo Vaccari  Federico Gobbo e Vieri del Bianco, alcuni professionisti e consulenti che già impiegano i metodi agili (per es. in ThoughtWorks e in Funambol) e Coach con esperienza internazionale di insegnamento e utilizzo dei metodi agili su gradi progetti e per...

Passionate Teams, cooperative customers

  Riporto queste slide di Claudio Perrone sulla agilità, la comunicazione efficace e l'approccio creativo. Interesanti !  Non sarebbe stato male andare in svezia e assistere all'intera presentazione ;-)   | View | Upload your own   Tags :  Team Work | Agile | Team | Comunicazione | Cliente | Creatività |

Anche l'informatica ha un cuore

  Mi annoto 2 frasi di Michael Atiyah dall'articolo di ieri sul corriere La matematica ha anche un cuore L'informatica nasce come branca della matematica dalle ricerche sui fondamenti della matematica e dagli studi sulla calcolabilità di funzioni (es. numeriche finite, infiniti e infinitesimali e logiche) e quindi ce la metto dentro ;-)    « Il matematico persegue la propria indagine per ragioni non troppo diverse da quelle per cui il pittore dipinge o il musicista compone »  « In matematica, come nell' arte, non c' è alternativa allo scambio intellettuale tramite cui si tramandano le tecniche, la conoscenza di base e lo spirito di...

Situazioni da team: un compito improbabile

  Hanno assegnato al tuo collega una User Story  o un task di sviluppo e lui valuta che skill esperienza conoscenze che servono non corrispondono abbastanza alle sue. Gli input che gli servono molto probabilmente non riuscirà ad averli neanche da altri colleghi o qualcun altro. Cosa gli consigli di fare? Per il successo del progetto e per lui. Update 27/06/2008: idee dai commenti Sintesi personale dai commenti, ecco due possibili alternative  - vai dal manager e glielo dici, se insiste accetti la situazione (sperando che faccia tesoro di un fallimento e sperando di non perdere troppo la tua credibilità verso gli utenti/clienti) - insisti per essere affiancato o per avere il tempo di apprendere e in caso negativo rinunci a prenerti in...

Situazioni da team: azzardi tecnologici

  Un tuo collega per passione, per curiosità, per interesse o per semplice aggiornamento professionale decide di sperimentare in un progetto  per un cliente alcune soluzioni tecnologiche che non conosce e quindi non ha una ragionevole certezza di padroneggiarle a sufficenza. Lo ritieni un comportamento professionale? Cosa faresti al suo posto ?   Update 21/06/2008: idee dai commenti Sintesi personale dai commenti - trovo che emerge una varietà di almeno 4 possibili risposte / comportamenti - Il cliente non deve pagare sotto alcuna forma la mia inesperienza ed io non posso legare il mio successo professionale ad una botta di fortuna o di sfortuna.  Lo studio e...

Situazioni da team: disaccordo sulla architettura

Per lo sviluppo di una funzionalità gli altri membri del team concordano su una soluzione architetturale che detesti, cosa fai ?  Update 17/06/2008: idee dai commenti cercherei di capire perchè il team stia facendo quella scelta e perchè la trovino più adatta a quella che farei io Dopodiche calcolo a spanne il guadagno che la mia soluzione avrebbe rispetto a quella proposta e valuto di conseguenza se vale la pena portare altri argomenti alla discussione o se non convenga lasciare perdere ...

Comunicazione & dialogo

  Mi annoto queste cose che mi sono venute in mente pensando al dialogare - trovo che sono complementari - che si sostengono a vicenda   capacità di persuadere  e  apertura all'essere persuaso asserire e sostenere la propria posizione e essere capaci di vedere il valore che c'è in altre posizioni saper decidere in autonomia e saper condividere la decisione con chi ne avrà conseguenze misurare l'efficacia della comunicazione con i risultati che produce e accettare che l'altro è una variabile indipendente essere un agente del cambiamento e cambiare se stessi     Tags :  Team Work | Comunicazione | Team building |

Creatività collettiva

  E' un gioco di parole, un neologismo in lingua inglese,   sc enius invece che   g  enius: "Scenius sta per intelligenza e intuizione di un'intera scena culturale. E' la forma collettiva del concetto di genialità." ...Individui immersi un uno scenario prolifico fioriranno e produrranno le loro opere migliori. Sostenuto dalla scena agirai come un genio. I tuoi simili e l'intero ambiente ti ispirerà... Il padre di questo neologismo è Brian Eno, e per chi non lo conosce basta dire ad esempio U2, X-Files, Coldplay e anche il suono di avvio in Windows95 Riporto altre frasi :   The geography of scenius is nurtured by several factors: •  Mutual appreciation...

L'intelligenza che emerge dalla rete

Negli anni '80 Marvin Minskey diffonde la metafora di mente come rete di agenti privi di mente , si osservano colonie di formiche da cui collettivamente emergono comportamenti intelligenti. Una form adi Intelligenza collettiva. Uno dei primi esempi è Game of Life di John Conway apparso intorno agli anni 70 da cui si possono osservare schemi complessi che emergono dall'implementazione di regole assai semplici. Qui la descrizione: http://it.wikipedia.org/wiki/Gioco_life_di_Conway E qui una implementazione eseguibile on-line: http://www.bitstorm.org/gameoflife/ Boids di Craig Reynolds , è una evoluzione di Life e simula il volo di uno stormo di uccelli. Qui è descritto ed è possibile vederlo in azione : http://www.red3d.com/cwr/boids/...

Incoraggiare la creatività, casi reali

  Tom Melohn da presidente della North America Tool and Die (NATD) ha portalo l'azienda a incrementare le vendite del 25% annuo e a produrre un utile sul capitale investito pari a quello delle maggiori aziende americane. Alla radice di questo cambiamento l'incoraggiamento delle persone a    correre dei rischi in termini di creatività.      Fonte: Lo spirito creativo, D. Goleman Tags :  Team Work | Leadership | Aziende | Creatività | Innovazione |

Oltre la gerarchia, casi reali (continua)

  La assicurazione Amex Life Assurance era una azienda che reagiva molto lentamente alle esigenze dei clienti con risultati disastrosi. L'azienda era strutturata secondo una rigida gerarchia e una scarsa comunicazione tra reparti e livelli differenti. Sarah Nolan (Sarah M. Nolan) intervenendo sull'organizzazione gerarchica riusci a ridurre drasticamente il tempo di reazione e a incrementare i profitti del 700%. Insieme a 5 dirigenti si fece assegnare un nuovo ufficio completamente vuoto staccato dall'edificio principale e insieme si trovarono difronte all'incarico di reinventare una divisione.  Al termine del lavoro i livelli della gerarchia furono ridotti da 10 a 3, le rigide distinzioni di mansioni furono...

Oltre la gerarchia, casi reali

  Alla SAS le compagnie aree scandinave (SAS Group) Jan Carlzon è stato presidente e direttore generale ed è intervenuto in un momento di forte difficoltà economica della compagnia. Alla organizzazione gerarchica in cui le istruzioni fluiscono dall'alto al basso ha preferito una organizzazione in cui sono le informazione a fluire mettendo in condizione i dipendenti di prendere velocemente decisioni nel momento in cui sono necessarie.  Con questa visione rivoluzionaria e con un piano contiunuo di formazione in due anni ha riportato in attivo la compagnia emettendola nuovamente in condizione di eccellere per puntualità e servizi al cliente.   Jan dice  l'informazione di parla delle tue...

Comportamenti sociali

In che contesti un comportamento egoista produce maggiori vantaggi  di un comportamento altruistico ? E in quali casi è il contrario? In che condizioni una propensione cooperativa  conviene rispetto un comportamento avido e in quali no ? E' possibile che un team sviluppi un nuovo comportamento, agisca in modo coordinato senza l'intervento di una coordinamento/direzione/guida centralizzata ? A una festa conoscienti e nuove conoscenze si riuniscono in piccoli gruppi, lo fanno in modo totalmente casuale e imprevedibile? In che modo la velocità con cui le persone di una azienda sciolgono un team, si rimescolano e formano un nuovo team e la quantità di nuovi arrivi in un team influenzano la...

Trasparenza delle informazioni, casi reali (continua)

Un altro caso reale di valore generato dalla condivisione trasparente delle informazioni tanto per un team quanto per l'intera azienda    La Skaltek (www.skaltek.com) produce e vende grandi macchinari per la produzione di fili e cavi metallici, macchinari realizzati appositamente per ogni singolo cliente. Oystein Skalleberg è un ingegnere e ne è il fondatore.  Al successo a livello mondiale dell'azienda contribuisce il modo insolito con cui incoraggia la creatività dei suoi dipendenti. Alla Skaltek c'è una riunione settimanale di tutti i dipendenti in cui nella quale si fa un rapporto completo del flusso di cassa della settimana precedente: vendite, stipendi, trasasferte, tasse, costi, ammortamenti e il numero...

Tener duro

  E' una frase celebre di Edison, si lui Thomas il genio sta nel tener duro !   è la perseveranza che stà nel assecondare le proprie intuizioni affrontando le difficoltà e attraversando con fiducia i periodi di frustrazione barricarsi con ostinazione dietro formule, prescrizioni, metodologie, pratiche senza ascoltare la propria intuizione, ignorare gli errori, essere chiusi verso idee nuove o differenti dalle proprie è un comportamento più simile al preconcetto cioè come si può sperare di ottenere dei risultati nuovi e differenti continuando a fare le cose come le abbiamo sempre fatte, allo stesso modo? mi sento di riscriverla così   il genio stà nel assecondare l'   i n t u...

Trasparenza delle informazioni, casi reali

  L'accesso trasparente alle informazioni tanto per un team quanto per l'intera azienda genera  valore Le tesi più diffuse sono che con la trasparenza emergono le difficoltà in modo che possano essere affrontate e superate ed emergono le opprtunità in modo che possano essere colte  -  e che la disponibilità delle informazioni mette i dipendenti in condizione di assumersi respansabilità efficacemente Più di mille tesi riporto alcuni casi reali di aziende   Body shop è una catena di negozi di cosmetica naturale (The Body Shop) E' stata fondata nel 1970 e la sua disinvoltura nei confonrti della verità sembrò poco meno che ridicola agli occhi dell'industria cosmetica tradizionale. Il successo...

Sviluppare e mantenere una relazione posivita con la controparte

Un elenco di suggerimenti per manterere una buona relazione con la controparte nella gestione di un conflitto e durante una negoziazione.   - Resta razionale anche quando la controparte agisce emotivamente - Cerca di comprenderla anche quando ti fraintende - Anche quando non ti ascolta, consultala prima di prendere decisioni che possono influenzarla  - Sii onesto e degno di fiducia anche quando tenta di ingannarti - Evita le tattiche coercitive anche quando l'altra parte le usa - Sii aperto alla persuasione e cerca di persuadere - Prenditi cura dell'altra parte e sii disposto ad apprendere da lei anche quando rifiuta questo interesse - Attacca il problema senza attaccare la persona...

Spacchi pietre, sbarchi il lunario o costruisci cattedrali ?

( Gypsy di Susanne Vega : la notte è la cattredrale in cui si rivelano i segni del nostro destino ) Segnalo un articolo interessante : Stonecutters, Paycheck Earners, or Cathedral Builders?  Alcuni estratti “I’m cutting stone, what does it look like? I cut stone today, I cut stone yesterday, and I will cut stone tomorrow!” “I’m making a living for my family.” “I’m building a Cathedral!” . . . if a person is annoyed with his job, does he: Complain? He is probably a stonecutter. Ignore it? He is probably a paycheque earner. Fix it? He...

Groupthink

           Un indicatore importante in un team è che quando funziona ci si diverte - all'impegno che si mette segue la soddisfazione per le difficoltà superate A volte si può essere team, coesi, e ... Si chiama Groupthink e consiste nella perdita delle capacità critiche del team (leggi anche reparto o azienda) a causa della lealtà verso il team stesso.    8 indicatori : Illusions of invulnerability creating excessive optimism and encouraging risk taking. Rationalising warnings that might challenge the group's assumptions. Unquestioned belief in the morality of the group,...

Intelligenza collettiva, altre definizioni 3°

  Concludo la terna con degli esempi di varie forme di inteligenza collettiva: political parties, military units, trade unions, and corporations: __Queste 3 nuvole le trovo molto evocative Coordinazione ... immagino una figura di nuoto sincronizzato      Cooperazione ... immagino una touche del rugby, i piloni alzano il saltatore durante una touche            Cognition~Conoscenza ... immagino le conquiste appena consolidate e la nascita di nuove idee per il futuro durante una retrospective Fonte: http://en.wikipedia.org/wiki/Collective_intelligence  Tags :  Team Work | Complessità | Team | Conflitto | Negoziazione | Creatività | Team building |

Alan Turing sulle ... Congetture

Una citazione di Alan Turing del 1950 « L'opinione popolare che gli scienziati procedano inesorabilmente da un fatto ben stabilito a un altro fatto ben stabilito, senza che intervenga mai l'influenza di una congettura non ancora provata, è del tutto errata. Purché venga chiaramente messo in evidenza quali sono i fatti provati e quali siano le congetture, non può risultare alcun danno. Le congetture sono di importanza fondamentale , dato che suggeriscono utili linee di ricerca. » Tags :  Team Work | Creatività | Innovazione |

Intelligenza collettiva, altre definizioni 2°

  Ancora altre descrizioni-definizioni di intelligenza collettiva raccolte dalla rete : Collective intelligence , the most rigorous definition would require a capacity to respond to very arbitrary conditions without orders or guidance from "law" or "customers" that tightly constrain actions Fonte: http://en.wikipedia.org/wiki/Collective_intelligence Individuals who respect collective intelligence, say Atlee and Pór, are confident of their own abilities and recognize that the whole is indeed greater than the sum of any...

Mescolare bene esperienza e capacità di imparare facendo

  I veloci cambiamenti del mercato e della concorrenza, i cicli di vita ridotti dei nuovi prodotti e la velocità con cui emergono nuove tecnologie evidenzia ogni giorno l'importanza di saper reagire e adattarsi in fretta - e questo si riflette anche nei software      Per molte sfide cioè reagire e adattarsi è indispensabile perché non è possibile prepararsi in anticipo ad affrontare eventi non prevedibili o totalmente nuovi e sconosciuti.    Altre sfide riguardano domini/tecnologie/etc  talmente nuove e anche se conosciute di esperti reperibili in tempo non ce n'è.    E ci sono sfide che affrontano eventi conosciuti e solo in parte prevedibili, preparasi a tutte le possibili...

Innovate or die ? parte III

Alcune note dall'articolo "Get Lean. Get Innovative." di Dan Markovitz presidente di TimeBack Management  segnalato dal post di Marco. "Innovate or die." That's the mandate of the global economy these days. ... Does your staff have this time? Or are they so busy fighting fires? ... More than anything else, innovation requires time:  time to think, to dream, to experiment, to break the rules, and to rewrite them .   Google incoraggia i suoi dipendenti ad impiegare il 20% del loro tempo in progetti insoliti 3M incoraggia il loro staff tecnico ad investire il 15% del loro tempo in progetti personali Chiquita ... "rapisce"  le sue persone migliori, le toglie dal lavoro day-by-day e gli chiede...

Imparare nuovi modi di fare le cose

  In questo periodo ho (ri)provato di persona cosa aiuta a imparare nuovi modi di fare un task / un lavoro e cosa invece è di ostacolo. In particolare ho osservato che in condizioni di  urgenza ,  rischio  o  pressione  interna (es. aspettative elevate sul proprio risultato) oppure esterna (es. aspettative improprogabili del cliente) è normale tornale ad adottare i vecchi modi di fare noti e consolidati.     Imparare facendo   in attività lavorative reali con la guida di un trainer esperto scherma la pressione e riduce il rischio cioè creai 2 presupposti importanti. Anche  esercitarsi  autonomamente elimina l'urgenza e rischio e la pressione esterna e permette di acquisire confidenza e fare propri...

Intelligenza collettiva, altre definizioni

  In rete ho trovato altre descrizioni-definizioni di intelligenza collettiva   Collective intelligence is a form of intelligence that emerges from the collaboration and competition of many individuals Fonte: http://en.wikipedia.org/wiki/Collective_intelligence Collective intelligence is the capacity of human communities to evolve towards higher order complexity and harmony, through such innovation mechanisms as differentiation and integration, competition and collaboration Blog http://www.community-intelligence.com/blogs/public/     Tags :  Team Work | Conflitto | Negoziazione | Team | Complessità |...

Individualismo illuminato

             Q ual è l'attegiamento che ottiene i migliori risultati nella negoziazione?   Diverse fonti sono d'accordo che è la forte ambizione personale verso il proprio rendimento combinata a una uguale attenzione ai rendimenti della controparte :  porta a un efficace processo di interdipendenza, promuove la negoziazione integrativa e infine produce rendimenti superiori   !      Lo mostrano le sperimentazioni di laboratorio descritte nel 1984 da Ben Yoav e Pruitt. Dimostrarsi sempre per primi disponibili a negoziare in modo cooperativo , essere pronti a cambiare stile in conseguenza alle scelte della controparte è la strategia più efficace come dimostrano nel 1984 gli studi e le simulazioni di...

Momenti di disaccordo nel team - 3°

          Concludo completando le ultime annotazioni  che ho raccolto da varie fonti su comportamenti utili ad affrontare il disaccordo che poi è normale attraversare lavorando in team  :    A scoltare le proposte di tutti nel team e valutarle con pari attenzione e considerazione senza pregiudizi  U n accordo generale di fiducia e rispetto reciproci nel team fa da cornice alla situazione di disaccordo e rassicura sulla capacità e volontà di superare insieme e indenni anche situazioni di disaccordo ...

I metodi Agili riscrivono le convenzioni ?

      Sto scoprendo che i metodi Agili guardano le cose da un punto di vista inconsueto rispetto alle abitudini consolidate nel modo classico di condurre i progetti software.  Quasi promuovono una nuova forma mentale.   Ecco gli esempi che ho raccolto senza dimenticare il  m a n i f e s t o :   La cultura del imparare invece del evitare gli sbagli Consuntivo sulle funzionalità e sul valore consegnato invece delle stime di previsione e consuntivo dei tempi Far emergere i possibili problemi per...

Le caratteristiche che hanno i negoziatori migliori

Riporto un elenco di caratteristiche comuni tra i migliori negoziatori, sono comportamenti che li distinguono da quelli medi  (Neil Rackham 1999) :   su ogni questione negoziale durante la preparazione individuano in media 5,1 opzioni contro le 2,6 degli altri orientano il 40% delle loro riflessioni su possibili aree comuni di a