Team Work

There are 608 entries for the tag Team Work

Current state of Agile values and practices evolution

Here follow some contributions to the evolution and understanding of Agile values and practices from Kent Beck. Evolution of Agile Values Team vision and discipline over individuals and interactions over processes and tools Validated learning over working software over comprehensive documentation Customer discovery over customer collaboration over contract negotiation Initiating change over responding to change over following a plan You can read more about it in this Forbes article: Innovation: Applying "Inspect & Adapt" To The Agile Manifesto And you can watch this presentation: Startup Lessons Learned Evolution of Agile Practices ...

Why you shouldn't be an Agilist

Agile Practitioner (practice) is someone who enact the values and principles of Lean and Agile Software Development and enact the practices of  many Lean and Agile methods and frameworks, based on what is best for the specific context, project, team, organization and situation. Agil-ist (ideology) is someone who without distinctions of context or situation take one side and is against the other side, without exceptions. Agil-ist can i.e. take side of  Agile against Waterfall or can take side of one favorite Lean-Agile Framework/Method against the other. Why you shouldn't be an Agil-ist (ideology)? Every value system, like the Agile's ones, are inevitably...

Respect, one of the core XP values, from a practical point of view

Everybody has an intuitive understanding of what Respect is. And Respect is also one of the core values of eXtreme Programming. I want to look deeper at what Respect means, be able to spot a disrespectful behavior and avoid it. There are many writings about Respect from many different fields (i.e. philosophy and psychology) and Respect itself has many dimensions, i.e. cognitive dimensions (beliefs, acknowledgments, judgments, deliberations, commitments) affective dimensions (emotions, feelings, ways of experiencing things) conative dimensions (motivations,...

Emergent Architecture, what really is?

What is Emergent Architecture then ? I start writing down a description, you are welcome to add yours. I begin with a story that in my opinion describe the dynamic of an Emergent Architecture In Oregon in 1975 when faced with the decision of where to build footpaths between newly erected student housing, the architect let the authorities first plant grass between the buildings. Students were left free to walk on the grass. Later, the footpaths were placed on the paths the students feet had traced on the lawn. ...

Deeper into WIP Limit

When the basic concepts and practices of Kanban are in place in the team, it is time to look at the whole picture. A general principle WIP limit is a tool to adapt the work commitments to the current whole system bottlenecks/capacity and an help to achieve continuous flow and implement a pull-system. WIP limit, continuous flow, whole system value stream mapping, a pull-system , transparency and visualization and frequent inspections are prerequisites in the sense that they are the means to achieve the goal of: Just-In-Time Production The main WIP to limit All the work done prior to the production use...

On Lean & Agile

I'm reflecting about similarities and differences between Lean and Agile software development to challenge and deepen my understanding and gain new insights. You are welcome to add your comments with more reflections on similarities and differences. My reflections start with this interesting paper about similarities between Lean and Agile: When you’re Agile you get Lean by Charlie Rudd.  And continue with the book  "Prioritize, focus, deliver" by Tomas Björholm and Hans Brattberg from Crisp that name this long list of things that Lean have in common with Scrum and XP: - Prioritization and focus, transparence, high quality, iterative and incremental development, cooperation to...

Top reasons for projects success

A big value of XP, Scrum, Lean, Kanban and Agile in general is the decreased time to market and increased success rate. What are the top perceived reasons for projects success then? The book from Crisp 'Prioritera Fokusera Leverera' references two sources on the matter. The Standish Group CHAOS report 2006: The Harvard Business School article from professor Alan MacCormack 2001 that lists: An early release of the evolving product design to customers Daily incorporation of new software code and rapid feedback on design changes A team with broad-based experience of shipping multiple...

On following the rules and questioning the rules

A rule is useful when set boundaries a person can benefit from: 1) The rule must be good & 2) The person must be capable to benefit from it The 2nd point is important too ! For example ignoring 1) can lead to assertions like Financial market don't need regulations or ignoring 2) can lead to assertions like We can export democracy.  We all know the results. On rigid and brittle rules: ABIDE model: Barriers On authority, discipline and dissent: When diversity, dissent and responsibility lack A book: Saying no, Asha Phillips This give me an interesting suggestion on questioning the...

A definition of Trust that is useful in practice

In software development and project management : sometime trust can be defined as loyalty, commitment, effort, predictability, obedience, sacrifice and sometime with keeping a word or keeping a secret. Many of those are desirable qualities while they are not necessarily useful in a work relationship. The kind of trust that can make an organization more effective is: knowledge of the capability of a person-team-department from memories of past experiences . Trust is a form of knowledge inside a relationship that can be gradually achieved through direct experience and exploration. So lack of trust is lack of knowledge. This definition of trust enable the organization to...

What are the most difficult things in Agile?

What are in you opinion the most difficult things in Agile? This is my answer based on  observations in my personal experience: recognizing and accepting reality and uncertainty reducing control and anticipation trusting people achieving transparency practicing respect pursuing mastery How do you answer? See also: The dimensions of Agile Tags :  Team Work | Agile | Lean Agile | Complessità | Traduci al ITALIANO >>>

Quotes on doing Agile & being Agile

On doing Agile A genius break the rules to create something unprecedented a fool break the rules to achieve what others do better following the rules while most stand in between searching for a balance On being Agile When someone identify himself with his favorite Agile method or framework risk to became an Agile Religious or an Agile Superstitious and is not Agile See Also: Doing Agile & Being Agile Tags :  Team Work |Agile | Lean Agile | Complessità | Traduci al ITALIANO >>>

Many ways of looking at Software development, from software cults to software fashion

I think of a Software Engineer as: professional who work in computer programming. Computer programming a mix of science and techne / craftsmanship founded in knowledge and discovery of principles, direct experience, exploration and experimentation, mastery, sharing of ideas and insights, empirical evidences, proven facts, good arguments A passionate and engaged Software Engineer: often participate in and actively contribute and belong to some computer programming communities. Too much can lead to software cult Software Cult is about believing in something as opposed to having observed, sensed, experienced it hands-on directly ...

When diversity, dissent and responsibility lack

Below follow 1 historical fact and 2 experiments that show a fact quite unexpected and surprising. Only 1  _small_ step separate even the best man to the monstrosity when diversity, dissent and personal responsibility are somehow insufficient, lacking. They are listed just with the name and a link, while there exist a lot of other curious and interesting related material you are encouraged to search for: The third wave experiment by Ron Jones (article, documentary) Stanley Milgram’s experiment on obedience to authority (video) Stanford prison experiment (article, about the movie) ...

Can we have constructive disagreements? Maybe!

 We discuss on-line many hours in blogs, forums and twitter. To what degree do we discover something professionally useful and valuable and to what degree are we losing our precious time?   Information sharing proved to be extremely useful and valuable. Instead disagreement and diversity of opinions, that have a great potential for learning new things, very seldom lead to profitable discussions. At least in my personal experience.       Do we know what we are disagreeing about? Paul Graham write:  More often than not, two people arguing passionately about something are actually arguing about 2 different things. Sometimes they...

Are we talking from different parallel alternative universes? Often!

  We spend many hours in blogs, forums and twitter. How much we really understand each other, behind empathy, sympathy or  antipathy? The surprising hypothesis is that, yes, when we talk about computer programming and software development: we are often talking from different parallel alternative universes and we misunderstand each other because of the topic itself that is complex and slippery (what is called a wicked problem) and because we highly underestimate this complexity.   Really ? Let's start mentioning well known and documented misunderstandings. Martin Fowler about Model View Controller or MVC architectural pattern says "one of the most quoted and most misquoted patterns around". Jeffrey...

Discussing certifications a little deeper and without bias

Here below follow some common criticisms about certifications that are a little superficial and inaccurate. I'll try to show what I think are the mistakes in those sentences using arguments, facts and evidences. Don't misunderstand me, with this I'm not implying that the opposite sentences are true neither. The goal is to move the conversation a little deeper. Whatever is your opinion, belief, intuition and feeling about Agile Certifications, good arguments, facts and evidences can help everyone to discuss effectively and have a better understanding of the topic. All the certifications are broken Fact: Would you get on a bus where the...

Monitoring and supporting the emergence of team dynamics toward positive directions

Previous posts [1][2] mentioned an approach to teams coaching from a Social Complexity point of view: direct and influence the emergence of behaviors toward positive directions to the advantage of the organization of the team and of the project success, to amplify the emergence of beneficial behaviors and to reduce or revert the non beneficial ones Other previous posts [3][4] tell about known approaches, tools and models that can be used to direct and influence that emergence of behaviors, acting at the boundaries of the system (i.e. instead of micro-managing the team). Here is a list of the...

Defining and measuring the success of an Agile methodology

Alistar Cockburn describes in this post  the success of a methodology with the formula: Methodology Success = Project delivered + Staff would do it again In software projects people is a fundamental variable, so here with methodology is not intended say RUP or FDD or say XP or Scrum or Kanban. Instead is intended that A methodology is the conventions the team agrees to and actually follow When the team achieves a methodology success as defined above, it is possible to infer that the team and also the method they used, RUP or FDD or one of the others,  helped the project success. In case...

The dimensions of Agile

After hands-on experience with Agile practices, working in Agile environments and attending and speaking at 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: work begin with respecting people dealing with uncertainty managing the unexpected recognizing the unknowns and accepting what cannot be measured ...

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

10 years have passed, bringing successes [0][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

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://www.toyota-global.com/company/vision_philosophy/toyota_production_system/quiz_on_the_toyota_production_system.html 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 Some example - FM 6-22 Army Leadership (Competent, Confident and Agile) - Corps Business: The 30 Management Principles of the U.S. Marines - The Agility Advantage: A Survival Guide for Complex Enterprises and Endeavors Tags :  Team Work | Agile | Complessità | Leadership | Team | Creatività | Innovazione | Traduci al...

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

A short excerpt from this 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 accordo con la controparte mentre gli altri  orientarno il 90% su aree di potenziale conflitto fanno commenti sulle possibili implicazioni future in misura doppia...

Momenti di disaccordo nel team - 2°

  Ho raccolto da più fonti delle singole tracce su comportamenti che "funzionano" meglio di altri per attraversare un periodo o una situazione di disaccordo nel team.   Non ho trovato una unica fonte che parlasse specificatamente di questo = ben vengano link e indicazioni. Per ora mi limito di raccogliere qui sotto le annotazioni che ho trovato Riconoscere che l'altra posizione è lecita e comprensibile anche quando è differente dalla propria Sapere...

Momenti di disaccordo nel team

       Łavorando in team mi capitano questioni del tipo  'per questa feature usiamo i Web Services o il Remoting?' o anche  'di frequente c'è qualcuno che arriva tardi allo stand-up meeting. Mettiamo una multa simbolica, entra solo chi è in orario o spostiamo il meeting più tardi?'        Probabilmente perché condividere le decisioni oltre che le responsabilità è basilare quando si è parte di un team. Ho notato che alcune decisioni richiedono tempo prima di trovare l'accordo e altre non sono fondamentali e si vive anche senza.  Cioè anche con la volontà e i mezzi per risolvere i conflitti è lo stesso consueto attraversare periodi di...

Creatività & professione

  Una frase rubata da 'L'Accademia dei sogni' di William Gibson «         Oggi la maggior parte della creatività è rivolta la commercializzazione invece che ai prodotti stessi, che siano scarpe da ginnastica o lungometraggi.  Ecco perché ho fondato la Blue Ant »   Un altro libro ironico e sprezzante    Lire 26.900   di Frédéric Beigbeder che racconta cosi il mondo della creatività e del marketing  -  dal punto di vista di un creativo   Tags :  Team Work | Creatività |

Negoziazione integrativa : nasce dalle differenze

   L a possibilità di generare nuove risorse da un conflitto, cioè fare un accordo integrativo, si basa sulla diversità di interessi che c'è tra le parti cioè  interessi sufficentemente diversi da non essere totalmente sovrapposti.   Questo è possibile molto più spesso di quanto si è portati a pensare Il trucco è ... Esplorare le differenze e superare la limitata visione di ciò che è possibile Aiuta molto porre domande, l'ascolto attivo e la domanda magica "perchè?"   Ci sono   3  categorie di differenze presenti in abbondanza tra le parti   :     Differenza sulla stima della probabilità che un evento si verifichi in futuro ...

Equivoci che portano allo scontro, la lista

Questo è l'elenco che ho sino a qui raccolto dalle letture di distorsioni cognitive che tendono ad alimentare lo scontro e allontanare la collaborazione : La tendenza a percepire la controparte come portatrice di interessi perfettamente identici e speculari anche quando non è così La tendenza ad aspettarsi dalla controparte degli inganni ,tendenzialmente questo si percepisce nella misura in cui uno è propenso a mettergli in atto lui stesso L'incapacità di riconoscere subito il...

Positive Core

  Dopo un po di sedimentazione ecco in questa Mind-Map alcuni suggerimenti di Tim Mackinnon Un paio di link per approfondire, anzi 4: - XP - Call In The Social Workers - Italian Agile Day 2007 - Mackinnon - Dare feedback in modo efficace - Esprimere un apprezzamento e dare approvazione E per restare in tema:  la scienza del sorriso e  Positive Psychology   Tags :  Team Work | Agile | Team | Comunicazione |

Equivoci che portano allo scontro

 C i sono equivoci comuni che tendono a provocare una contrapposizione a discapito delle potenzialità integrative che possono essere realmente presenti in una negoziazione.   Sono distorsioni che intervengono nelle informazioni percepite, nella loro selezione, nel modo in cui si combinano e si valutano. Sono connaturate al normale funzionamento del sistema cognitivo e hanno l'effetto di orientare in modo distorto l'interpretazione di un problema o delle richieste della controparte.   E' un argomento simile a quello postato da Pier Greborio , qui c'è una panoramica su questo tema.   Tags :  Team Work | Comunicazione | Conflitto | Negoziazione |

Processo di sviluppo della fiducia

Riporto alcuni s-punti di una conversazione che ho sentito sulla fiducia. Nei metodi agili la fiducia è il primo elemento utile a evitare sprechi  -   Nel team è il collante principale  -   Per un coach e per il leader è l'elemento essenziale per esercitare la delega  -   in una negoziazione è il fattore che permette di considerare le potenzialità integrative per generare nuovo valore Nella conversazione la fiducia invece di essere descritta come qualcosa che si ottiene in bianco o perchè la si merita è stata descritta come il risultato di un processo di apprendimento Sono seguiti 2 esempi Quello di un bambino a cui si...

1 esempio classico di negoziazione integrativa :

 M i annoto qui questo esempio classico che aiuta bene a chiarire il punto E' domenica mattina. Pina e Gina due sorelle nubili ottuagenarie si alzano di buon'ora per andare alla messa delle 8. Si incontrano davanti al frigo dove scoprono che c'è un'ultima arancia che entrambe vogliono. Cosa fare ? Accapigliarsi e rovinare la piacevole atmosfera domenicale (c'è pure il sole) ? Ricorrere all'autorità della anziana mamma che una volta svegliata le manderebbe entrambre ... a quel paese ? Lanciare una monetina ? Optano per il compromesso. Pina, la pignola, taglia l'arancia in due e la Gina la parsimoniosa sceglie la sua metà. Sono...

Prevedere il futuro...

  Mi ha colpito una pubblicità mentre leggevo una rivista ( w w w . c o l o r s m a g a z i n e . c o m ). Diceva : Il miglior modo di predire il futuro è inventarlo Ho scoperto essere un aforisma di Alan Kay. Alan Kay è uno dei pionieri della programmazione ad oggetti, del personal computing e delle interfacce grafiche. Ha precorso molte delle idee alla radice dei linguaggi orientati agli oggetti contemporanei guidando il gruppo che sviluppò Smalltalk. Oltre ad essere specializzato in Informatica è competente in matematica e biologia, in lingua inglese e antropologia.  Negli...

Specialisti e generalisti

  L'occasione per pensare all'equilibrio tra specialisti e generalisti arriva in un momento di divertimento, da 2 frasi di un film che sto guardando : Ciò che vale per il gruppo vale anche per l'individuo. Il concetto è semplice, un'eccessiva specializzazione porta alla debolezza, a una lenta estinzione Se riesci a ricordare parole come quelle in un istante, probabilmente l'espressività del tuo dispositivo di memoria è un po prevenuta   Da un lato la specializzazione permette di agire in modo rapido ed efficace in virtù del fatto che presuppone uno schema fisso e definito entro cui muoversi. Dall'altro la generalità è utile a muoversi da uno...

Innovate or die ? parte II

  Ho cercato risposte alla domanda del post precedente : Serve ancora la preparazione, l'esercizio ... ?    - Quando stiamo affrontando un problema complesso in parte perchè è in un terreno nuovo e non è assibilabile a qualcosa che già conosciamo - in parte perchè sta cambiando ed  è in evoluzione - in parte perchè le cose cambiano all'improvviso in modo imprevedibile - in parte perchè sono coinvolti molti fattori legati tra loro in modo inestricabile - in parte perchè potrebbe non avere soluzione:                        esplorare, procedere per tentativi, imparare facendo e adattarsi                                                               funziona meglio della preparazione, dell'esperienza e dell'esercizio     - Quando stiamo affrontando un problema semplice o alpiù difficile perchè è governato da relazioni stabili di...

Innovate or die ?

  E' la frase e anche un po forte di un articolo che mi sono annotato da un po di tempo I metodi agili forniscono gli strumenti per gestire l'emergenza, l'incertezza e i cambiamenti imprevedibili  - diventa lecita e opinabile la domanda : Serve ancora la preparazione, l'esercizio e la padronanza  anche quando uno ha metodo e intelligenza per gestire un nuovo problema come un'emegenza e un imprevisto ? Si ? Oppure no ? Tags :  Team Work | Agile | Complessità | Pratiche | Disciplina | Professione | Innovazione |

Intelligenza collettiva : un mix di abilità

  Nel post precedente ho descritto l'equilibrio di Nash e come traccia un confine tra  intelligenza individuale e intelligenza collettiva    ,  suggerisce come risolvere un conflitto in modo ancora più vantaggioso di quanto calcolato con la matematica da sola Questo è possibile perché nel conflitto e nella negoziazione  si fondono  modelli logico-matematici  ,  psicologico cognitivi e sociologici o descrittivi   In conclusione per ottenere il meglio da un conflitto e una negoziazione e in moltre attività di team sono utili un mix di   abilità razionali , capacita di relazione col prossimo e la capacità sociali di relazione in un gruppo Tags :  Team Work | Conflitto | Negoziazione | Team | Complessità |

Mix di matematica psicologia e sociologia per risolvere il conflitto e negoziare

  Nel post precedente ho descritto l'equilibrio di Nash e come traccia un confine tra  intelligenza individuale e intelligenza collettiva    ,  suggerisce come risolvere un conflitto in modo ancora più vantaggioso di quanto calcolato con la matematica da sola Questo è possibile perché nel conflitto e nella negoziazione si fondono  modelli logico-matematici  ,  psicologico cognitivi e sociologici o descrittivi - - - -   Ecco deglia altri esempi dalla teoria dei giochi che evidenziano questo mix  -  il gioco dell'ultimatum  (vedi qui) mostra come dal punto di vista matematico la strategia più conveniente è accettare l'offerta sempre - tuttavia la tendenza umana a rifiutare offerte ritenute inique e a "punire" i comportamento ingiusti prevale cosi come chi fa l'offerta in questo gioco...

Negoziare un Conflitto : le differenze tra piccola e grande azienda

  In una  piccola azienda  è possibile risolvere un conflitto o una divergenza in modo unilaterale agendo d'autorità In una  grande azienda  per ...     - il ritmo con cui si presentano nuovi problemi poco chiari da risolvere             - la complessità delle relazioni che ci sono tra le persone,                 tra i diversi team e reparti e tra il management                     - gli alti livelli di interdipendenza                             - la rapidità dei cambiamenti e la turbolenza .... la gestione del conflitto e la negoziazione hanno un ruolo centrale   Alcuni dati : Il  68%  delle negoziazioni hanno un potenziale integrativo ossia una parte degli interessi in gioco sono complementari e cosi si posso combinare per produrre...

Pattern di adozione dei metodi agili

  un articolo interessante : Patterns of Agile Adoption, Mike Cohn, agile journal Tags :  Team Work | Agile | Pratiche |

Condividere la conoscenza in team

  sempre sul primo punto del manifesto agile : le persone e le relazioni tra persone prima che processi e tool ecco un esempio pratico cioè condividere la conoscenza in team.     condividere conoscenze in team e quindi introdurre un cambiamento non è semplice - specialmente tra senior e nei team agili la folta presenza di senior è favorita     è ancora meno semplice quando si insegnano/imparano cose molto "personali" della programmazione - e nei team agili si condivide dalla singola riga di codice alle coding convention fino ai dettagli di design o lo stile di testing    Cosa ha funzionato per voi ?       Quello che mi è capitato di notare...

Intelligenza individuale e intelligenza collettiva

  Ho trovato dalla teoria dei giochi 2 giochi interessanti perchè in qualche modo sono un esempio del   confine tra intelligenza individuale e intelligenza collettiva       per entrambi questi giochi esiste una strategia ottimale per ogni singolo giocatore che consiste nella competizione aggressiva - è una situazione di equilibrio     cioè    a nessun giocatore conviene deviare unilateralmente dalla propria strategia ottimale perché ci perderebbe      solo se i giocatori scegliessero di cambiare strategia insieme di comune accordo cioè di collaborare potrebbero guadagnare di più entrambi  è possibile dimostrare matematicamente situazioni come queste  - la cose è spiegata nel  equilibrio di Nash  (vedi qui)   Tags :  Team Work | Conflitto | Negoziazione | Team | Complessità |

L'intelligenza collettiva

      Prendendo esempio dai 2 giochi che evidenziano il confine tra   confine tra intelligenza individuale e intelligenza collettiva   l'intelligenza collettiva è ad esempio la capacità di un gruppo di    imparare  dall'esperienza    a comportarsi (relazionarsi e oranizzasi)      in modo tale da riconoscere e reagire        nei casi in cui è vantaggioso passare dalla tattica distributiva (che distribuisce le risorse tra i contendenti) alla tattica integrativa (che produce un utile comune che si somma al valore delle risorse contese).    Questo senza l'intervento di una autorità centrale e senza bisogno di conoscere e applicare le equazioni del  equilibrio di Nash   proprio come possiamo imparare ad andare in bici senza calcolarne...

I giochi a somma zero e altre info

     I giochi a somma zero (vedi qui)  sono quelli in cui 2 contendenti lottano per spartirsi le risorse disponibili e alla fine del gioco  uno guadagna quello che l'altro giocatore perde.    Si distinguono dai giochi a somma *non* zero perchè in questi ultimi può essere conveniente         passare dalla  tattica distributiva  (che distribuisce le risorse tra i contendenti)       alla  tattica integrativa  (che produce un utile comune che si somma al valore delle risorse contese)        Nei giochi a somma zero quando non hai informazioni per stimare la probabilità dei singoli eventi puoi applicare queste strategie : - il criterio di  minimizzare la perdita  cioè la differenza con quanto...

Strategie di decisione/gioco nel conflitto/competizione

Alcune brevi annotazioni su strumenti matematici x risolvere soluzioni di conflitto - dalla teoria dei giochi. I modelli di decisione si riferiscono a una  singola decisione  -  possono essere applicati alla situazione più realistica di un  susseguirsi di decisioni  prese dalle parti influenzandosi a vicenda.      Quando puoi conoscere/stimare la probabilità : che la controparte faccia una scelta piuttosto che l'altra e la probabilità che si verifichino o meno (ad opera della "natura") eventi rilevanti ai fini del conflitto/competizione => puoi calcolare l'utilità (l'esito, il guadagno) atteso di ogni tua strategia cioè la media μ e la varianza (il grado di rischio) б e scegliere la migliore. Questo caso è detto...

Le persone al centro del processo di sviluppo sw

Nel 2002/2003 quando ho cominciato a interessarmi ai metodi agile come XP e Scrum ero molto concentrato su le pratiche   :   sulle cose nuove da scoprire e capire -  sui nuovi strumenti da usare - sulle difficoltà tecniche da superare ( QualityAssuranceAgile#Agile )   In seguito ho iniziato a guardare/vedere la "big picture" ossia sulle pratiche collettive, i processi  e come migliorarli per consegnare più valore all'utente ( QualityAssuranceAgile#LeanAgile )    Per tutto questo -  lungo ? :D - tempo mi è sfuggito ... il primo punto del manifesto agile : le persone e le relazioni tra persone prima che processi e tool A mia discolpa ;-)  come la maggioranza degli sviluppatori sono più TaskOriented...

Creatività - una nuova definizione

  ecco un'altra definizione - questa emersa dalla pratica quotidiana dei fabricanti  in   _f a b r i c a_              L a  C reatività è cosa inusuale : spaventa, scombussola, è sovversiva _ Diffida di ciò che vede e ciò che sente. Ti sfida a dubitare _ Agisce anche se può sbagliare _ Si insinua nelle convinzioni preconcette, scuote le certezze assodate _ Incessantemente inventa modi nuovi, nuovi vocabolari. Provoca e cambia punti di vista _  Tags :  Team Work | Creatività |  |

Difference Between Approval and Appreciation

  Excerpts from the article : The Difference Between Approval and Appreciation   Appreciation ... It comes from the heart and is offered spontaneously as the heart wells up with feelings of delight, awe, joy, or love regarding another's way of being. Appreciation has much more to do with the essence of a person rather than with performance. We are appreciating a person's core Self, who they really are and the results of who they are, rather than what they do and their performance. Appreciation is a true gift. With appreciation, there is no attachment to the outcome, no expectation that the other should...

Dare giudizi e esprimere valutazioni sulle persone

  Come tecnico sono chiamato spesso a valutare    un problema o una soluzione    , esprimere un giudizio professionale su     una scelta tecnica    . E la capacità di farlo con metodo e secondo criteri consolidati e riconosciuti è una parte importante del bagaglio professionale di un tecnico. Quando il giudizio e la valutazione invece è rivolta a        una persona, un collega, un membro del proprio team      , ostacola il clima di fiducia e confidenza utile a lavorare in modo collettivo e ad affrontare e superare i conflitti in modo creativo e produttivo. L'articolo citato in questo post suggerisce un modo efficace e senza "effetti collaterali" per...

Il materiale del Italian AgileDay 2007 è on-line

  Qui  x tutte le sessioni i doc , le slide e i link :  http://www.agileday.it/index.php?page=slides E qui foto pubbliche dell'evento: - http://www.fabiobeta.it/photos/AgileDay2007Photos/  - http://picasaweb.google.com/matteo.vaccari/AgileDay2007   Tags :  Team Work | Agile | Eventi |

Ancora sul conflitto come fatto positivo

  Sempre annotando dal libro 'La Negoziazione'.  Accertato che il conflitto non è in assoluto positivo o negativo, ci sono livelli di conflitto e tipi di conflitto che meglio si prestano ad essere gestiti per massimizzare le conseguenze favorevoli e minimizzare quelle svantaggiose. Sulla intensità del conflitto la curva dell'utilità ha una forma a  ∩ cioè nel centro ha effetti favorevoli sulle prestazioni e la soddisfazione del gruppo  mentre l'assenza di conflitto e una conflittualità elevata hanno effetti svantaggiosi. Sulla tipologia del conflitto, quando è basato sulla percezione di questioni materiali/quantificabili (es. risorse, procedure, compiti, ...) ha effetti favorevoli per il gruppo e la relazione, quando è basato su questioni emotive ( es....

Il conflitto come fatto positivo

  Una cosa che mi sorprende leggendo 'La Negoziazione' è che il conflitto può essere una cosa favorevole. Ok che una volta che è in corso ci sono modi per uscirne al meglio!   Che l'inizio di un conflitto possa essere in se vantaggioso sorprende cmq. Il libro descrive gli effetti sfavorevoli quando il conflitto viene sistematicamente soppresso - alcuni li riconosco in esperienze di team passate. L'aperta espressione del conflitto invece può produrre valore e crescita per entrambe le parti. Ancora di più consentire/sollecitare il conflitto favorisce la comunicazione tra gruppi, la comprensione reciproca, il consenso sugli accordi raggiunti, promuove la cooperazione all'interno del gruppo, limita le azioni dettate da rivalità...

Conflitti nel team ? Segno che è vivo ! 2°

 ∑ cco degli esempi di conflitto che potrebbero far parte della   __dinamica__   di un team  - in sequenza come effetto della trasformazione in atto, risolversi positivamente in una evoluzione sino al prossimo salto annunciato da un nuovo conflitto utile/necessario :   il team è in conflitto con il team manager perchè il team vuole poter applicare le pratiche agili ottenuto il permesso di cominciare dopo un po ... i singoli membri del team sono in conflitto tra loro da quando l'applicazione delle pratiche...

Conflitti nel team ? Segno che è vivo !

Prima di dirvi la mia , qualcuno si riconosce in questa situazione ?   Tra i corridoi all'Agile Day e nelle conversazioni in sala ho sentito racconti di  situazioni di conflitto nel team...  E chi non ne ha ?  Ripensando alle situazioni di conflitto che ho conosciuto nei molti anni di lavoro mi si è illuminata una lampadina... Quando c'è un conflitto nel team ed è legato a un problema pratico (invece che contro una persona), ha un momento in cui è cominciato e ha una fine in cui è concluso e risolto (invece di instaurarsi e proseguire di continuo)  e resta limitato a quello specifico...

Le cinque qualità di un leader carismatico

Mi annoto  questo articolo dal Corriere del 26 Nov 2007 Le cinque qualità di un leader carismatico di Alberoni. Alcune frasi : ... La prima è capire, intuire che cosa vuole la gente in quel momento ...  ... credere nella meta che propone, non dubitarne mai ...  ... l'intuito strategico, la capacità di cogliere fulmineamente l'essenziale, di puntare diritto alla meta lasciando da parte tutto ciò che è secondario ...  ... la capacità di stabilire un rapporto affettivo con ciascuno dei suoi ...  ... è anche un abilissimo comunicatore attraverso le parole ma soprattutto inventando formule, simboli ...   Tags :  Team Work | Leadership |

Sono stato al Agile Day 2007 e ...

E' passata - anche l' "euforia" dell'evento - e a boccie ferme è stata una giornata ben investita   Si è tenuta per il primo anno a Bologna - le partecipazioni sono in crescita - c'erano tante facce nuove e molte facce conosciute   Il formato dell'evento migliora ogni anno grazie ai partecipanti e alle loro indicazioni.                E' stato un mix di temi introduttivi, real experience report e open-space organizzati (tipo tavole rotonde con un facilitatore che da il là alla conversazione in cui si parla, ascolta e contribuisce) oltre a open-space spontanei "da corridoio"   Ho incontrato persone interessate a cominciare ad  applicare metodi agili, nuovi team che hanno appena iniziato questa avventura e team che applicano questi metodi da...

Quali coflitti al lavoro ?

Ho iniziato a documentarmi sulla parte più    matematica / informatica    del conflitto e della negoziazione.  Nel frattempo ho una domanda che mi gira in testa, quale tipo di conflitto capita + spesso sul lavoro. Intendo conflitto di breve durata (tipo una discussione, idee o obiettivi diversi, uno sfogo)  o prolungato (tipo mesi o una forte antipatia o addirittura una rivalità continua) . Con i colleghi oppure col capo o intra-reparto o col cliente o il fornitore. Si concludono con un accordo soddisfacente, con una perdita di tempo o peggio con svantaggi per tutti.   Qual'è la realtà tra informatici/developer , suggerimenti ?    Tags :  Team Work | Conflitto | Negoziazione |

Coach che guida il team ad essere più unito - Parte 4°

  Rileggendo questa quaterna di post sembra che tutta la responsabilità (onori e oneri) sull'unità del team sia del coach.  In realtà però  i  comportamenti che ho annotato vanno bene per tutti , ogniuno può farsene promotore.   Il fatto è che credo l'accesso a informazioni riservate  mette il coach in posizione di forza e così anche i team manager  in su fino ai manager e la direzione.  Cioè credo che così per il team l'intervento del coach è indispensabile per trasformare dei comportamenti competitivi e predatori  in cooperativi e integrativi.   Trovo che invece la trasparenza e libero accesso alle informazioni danno al team la possibilità di cambiare i comportamenti facendoli...

Creare i presupposti per risolvere il conflitto

Mi annoto dalla solita fonte le linee guida per creare i presupposti che facilitano la risoluzione positiva di un conflitto. Quando ci si riesce la soluzione non peggiora la relazione che c'è tra le parti, magari la rafforza. Neutralizzare la tendenza a vedere le questioni in gioco come   questioni di principio   : trasformare la questione in una questione materiale quantificabile ,  trasformare le questioni percepite come intrattabili in questioni trattabili con una equa compensazione Calmare la percezione ansiosa di una   posta in gioco molto alta  ...

Coach che guida il team ad essere più unito - Parte 3°

  Dopo il "quando" trascrivo l'elenco di pratiche e principi Agili che trovo d'aiuto nel mettere in pratica questi comportamenti a beneficio della unità del team. Le pratiche e i principi che nomino li prendo dal libro bianco di K. Beck. Sono numerati 1 a 1 con il corrispondente comportamento. whole team - team continuity - pair programming retrospective (x ascoltare feedback del team lasciando gli incontri personali x feedback di carattere pesonale) ...

Le 6 strategie per affrontare il conflitto

  Mi annoto questo è l'elenco di 6 strategie che ho letto da La Negoziazione di Ruminati-Pieroni per affrontare il conflitto. Sono applicabili quando il conflitto è negoziabile. Uno può adottarle col fine ultimo di trarre il massimo vantaggio a danno dell'avversario (e facendosi terra bruciata intorno) o di risolvere il conflitto combinando il mutuo beneficio (e così rafforzando la relazione con la controparte a futuro beneficio). Non c'è una strategia più efficace in assoluto, invece dipende dalla singola situazione e più strategie possono essere combinate insieme e in sequenza con intensità differenti. Eccole   Problem-Solving  cercare una configurazione...

Coach che guida il team ad essere più unito - Parte 2°

Ho postato una raccolta qualche giorno fa di comportamenti che un Coach può seguire per aiutare un team a  essere unito in alternativa a comportamenti che invece favoriscono divisioni. E' che elencarli non basta perché riesca a metterli in pratica  :-)   Magari ! Alcuni comportamenti sono autoMagici, quelli istintivi, del proprio carattere sono i più difficile da riconoscere e da cambiare.   Ho trovato efficace come primo passo riconoscere quando (il momento in cui) c'è la possibilità di comportarsi facilitando l'unità oppure aumentando le divisioni , per es. : quando si assegna un compito un obiettivo, quando si interviene per evidenziare una criticità o ci si rende disponibili ad ascoltare il feedback del team, quando si decide su una questione,...

Conflitto : 7 percezioni che lo peggiorano

  Sono  2  i modi per evitare _sempre_e_comunque_ il conflitto : il potere assoluto oppure nessuna meta da raggiungere. E non sembrano molto allettanti.  Forse x questo è un fenomeno "pervasivo". Quando capita, ci sono  7  modi improduttivi di interpretare il conflitto in corso - percezioni - che allontanano la soluzione e la rendono più costosa : considerare l'oggetto del contendere come  questioni di principio  piuttosto che questioni materiali quantificabili  percepire la  posta in gioco alta  e quindi la possibile perdita come elevata e il rischio di creare un precedente ...

Contratti per progetti Agili

  Uno dei modi in cui i progetti di sviluppo Agili eliminano lo spreco è attraverso il rapporto di fiducia, tra i membri del team, tra il team e l'organizzazione per cui lavorano e con il cliente. Questo vantaggio può essere ampliato adottando delle forme contrattuali che si basano sulla fiducia, sulla condivisione dei rischi, sulla motivazione di entrambe le parti al successo degli sviluppi. E sempre con il vantaggio di potersi adattare velocemente ai cambiamenti e gestire l'incertezza e gli imprevisti più in fretta, meglio, e con minori costi. Qui una serie di alternative contrattuali Agili da una fonte molto attendibile : http://www.agileadvice.com/archives/2007/11/agile_contracts.html...

Coach che guida il team ad essere più unito

Questo è un argomento su cui stò cercando di chiarirmi già da qualche tempo. Cioè capire quali comportamenti può avere un Coach Agile per contribuire a ridurre le divisioni e superare le rivalità sotterranea tra i membri del team .   Ecco i punti che ho raccolto sinora curiosando in giro : chiedere al team intero di impegnarsi sull'obiettivo complessivo condividendone insieme la responsabilità e l'esito piuttosto che chiedere a singole persone del team di raggiungere ogniuno separatamente singoli obiettivi  quello che chiamo l'effetto riflettore: dedicare a tutti ne...

Anche l'umorismo al lavoro ... fa bene !!!

  La battuta tra colleghi aumenta la creatività, la coesione e anche le prestazioni personali Le persone scherzose hanno migliori risultati e riescono a ridurre i conflitti durante le riunioni Così il risultato della ricerca dello psicologo Chris Robert, ricercatore dell'università del Missouri. Fonte: articolo E così dopo il Vaffa Friday ecco il Joking Monday   Tags :  Team Work | Comunicazione | Team building |

Conflitto, come finisce ?

  Sto iniziando a leggere sui modi in cui possono concludersi i conflitti all'interno di un team, tra 2 team, etc . Un modo è quando il conflitto viene soppresso, qualcuno fa pressione per azzittirlo  Può concludersi con un vincitore e un vinto o similmente con un compromesso al ribasso Oppure con un'idea smart che incastra bisogni e opportunità che crea vantaggio per entrambi ...

Forme di gestione del conflitto

  Il modo di gestire il conflitto si è evoluto nel tempo insieme all'uomo attraverso 3 forme comuni: la lotta l'autorità le norme Le norme sono la forma più evoluta eppure per coprire ogni possibile situazione di conflitto servirebbe una giungla di regole incomprensibile, inevitabilmente rigida e difficilmente applicabile (qualcuno sta pensando alla legge italiana ?)Poche regole comuni chiare e codivise sono preferibili. Quando una situazione di conflitto cade nell'area di ambiguità o assenza di norme vengono in aiuto anche le norme implicite, la prassi e le consuetudini che si consolidano col...

Motivazione professionale e scala di valori: 2 casi reali

L'argomento è MotivazioneProfessionale (wiki) e ScaleDiValori  (wiki). Completo il secondo dei 2 punti,  Mitch Kapor e Bill Gates,  lasciato in sospeso : Bill Gates ;-) La storia completa è qui  e qui  , quello che serve per provare a scoprire valori e motivazione è riportato sotto. Bill Gates 20anni prima che la parola Computer diventi di uso comune quanto telefono e televisione Bill Gates intuisce le potenzialità commerciali che sarebbero nate dal mercato degli home-computer prossimo ad esplodere, la necessità di programmatori per scrivere software per tutte quelle macchine e la possibilità di guadagni per il software prodotto... ...e già negli anni 70 comincia a guadagnare programmando computer e percorrendo...

Quali comportamenti uniscono un team ?

Altre annotazioni sparse dalla lettura  La Negoziazione.   Comportamenti e circostanze che uniscono  : Abbonzanza delle risorse disponibili o la  percezione che siano sufficenti alla propria soddisfazione es. : prospettive chiare su lavoro , percorsi di crescita , valorizzazione delle proprie competenze , opportunità di dimostrasi efficaci ed essere influenti Regole chiare e una autorità riconosciuta (interna al team oppure esterna)  che garantisce il rispetto delle regole comuni condivise e sprona le parti in conflitto a trovare autonomamente un accordo  tra loro quando...

Quali comportamenti dividono un team ?

Annotazioni sparse dalla lettura  La Negoziazione. Comportamenti e circostanze che dividono   : Rancore  -  alimentato dal senso di inequità e ingiustizia sulla distribuzione di risorse, peggio se scarse La scarsezza delle risorse in gioco o la loro percezione come scarse e insufficienti per la propria soddisfazione es.  :   responsabilità   -   prestigio dei compiti assegnati   -   libertà di iniziativa   -   l'attenzione del capo   -   l'autorità concessa   -   l'autorevolezza riconosciuta dal capo   -   l'HW assegnato   -   spazi di autonomia   -   le forniture dell'ufficio   -   la partecipazione a corsi   -   l'accesso a opportunità di crescita professionale  ...

Quali comportamenti uniscono un team e quali dividono ?

Ci sono dei  comportamenti che tendono a creare divisioni nel team perchè alzano il livello di conflittualità e portano a soffocare i conflitti o a farli sfociare in "battaglie"  dagli esiti traumatici e persistenti. E ci sono dei comportamenti che invece catalizzano un gruppo di persone e lo aiutano a diventare un team perchè diminuiscono il livello di conflitualità e spronano la risoluzione dei conflitti in modo utile e costruttivo. E' da un po che l'argomento mi incuriosice e mi attira. Per ora mi sono procurato La Negoziazione di Rumiati e Pietroni, conto di annotare gli spunti interessanti che troverò.   Prima ancora del libro mi piacerebbe soprattutto conoscere l'opinione di chi ha...

Come iniziare un team correttamente?

Mi annoto alcune righe che trovo interessanti da  : FAQ's on Teams & Leadership Come iniziare un team correttamente? Assicurati che tutti i membri del team condividano una visione chiara di quello che il team è chiamato ad assolvere Fai emergere da ogniuno dei membri del team cosa significa per lui/lei fare parte di questo team e che risultati si aspetta che questo produca Stabilisci un accordo sulle regole basilari per i membri del team. Scopri i contributi che ogni  membro...

Organizzazione aziendale decentralizzata e adattiva?

  Ricercatori all'Università di Bologna studiano le reti biologiche , e in particolare i modi in cui si espandono adattandosi velocemente alle esigenze in modo robusto ed efficace. Ne traggono modelli di organizzazione delle reti decentralizzati e adattivi applicabili anche alle strutture organizzative aziendali.   Biological Networks : http://advice.cio.com/fred_hapgood/biological_networks     Tags :  Team Work | Leadership | Team | Agile |

Le parolacce al lavoro? Fanno bene!

  Leggo da un divertente articolo di oggi Le parolacce in ufficio e l'uso di parole tabù rendono i dipendenti più produttivi: non solo aiutano a combattere lo stress, ma anche contribuiscono a creare solidarietà tra i colleghi e sviluppare uno spirito di gruppo sul posto di lavoro   Di sicuro, e parlo per esperienza diretta :-) , aiutano a rompere il ghiaccio e creare una atmosfera informale e rilassata.            Basta sapere che il rapporto di fiducia, stima e collaborazione non è in discussione, che non c'è rancore  e allora anche il piacere di uno spontaneo, liberatorio e reciproco Vaffffa... tra colleghi  sarà totale :D   Altro...

Motivazione professionale e scala di valori: 2 casi reali

Tempo fa ho postato sulla MotivazioneProfessionale (wiki) e sulle ScaleDiValori  (wiki). Ieri leggevo di Mitch Kapor e Bill Gates. Mitch Kapor 20anni prima che la Human-Computer Interaction diventasse una disciplina autonoma dell'Informatica con specializzazioni quali la Computer-supported collaborative work; prima che la sociologia, le scienze cognitive e la psicologia dessero i loro contributi all'informatica; prima ancora che il Web 2.0 si realizzasse riducendo i tempi e amplificando le possibilità  di scambiarsi informazioni e stringere relazioni; ...    ... già negli anni '80 aveva la sua azienda di software "ON Technology" e si occupava appunto di software Groupware per computer Apple Macintosh.        Di Boston dove sponsorizza il locale...

FAQ sul lavoro in Team: 3 punti che ci tengo a ricordare

Cos'è un team? Un team è un gruppo di persone in cui il risultato personale di ognuno dipende in modo evidente dal risultato collettivo. continua... Quali sono i principi fondamentali del lavoro in team? Successi condivisi. E' detto anche il principio della scialuppa di salvataggio, quando più persone sono nella stessa barca le differenze individuali e i risultati personali contano meno della sorte comune. Impegni condivisi. continua... Uguale voce in capitolo per tutti. continua... Perché la fiducia è importante per i team? Siccome i contributi individuali e relativi riconoscimenti e ricompense avvengono in momenti diversi e dipendono anche da ciò che gli altri del team fanno, la fiducia è la garanzia che i...

Isole nella rete

Un po di svago : alcune frasi sparse da 'Isole nella rete' del 1988 di Bruce Sterling ...

FAQ sul lavoro in Team e sulla Leadership

Interessante : FAQ's on Teams & Leadership What is a team? What are the basic principles of teamwork? Are there different types of teams? How is a team different than a group? Who can be on a team? How does a team form? Why is trust important to teams? Can one person make a difference on a team? What is leadership? Who can exhibit leadership? Should teams have an assigned leader? Shouldn't the technical expert be designated as the team leader? What is the difference between "leadership" and "leader?" How is a leader different than a manager? What equips Partnerwerks to provide team and leadership expertise? How do I start a team correctly? How do I get...

Intuito e visione d'insieme

Annotazioni rileggendo Extreme Programming Explained: Embrace Change, 2nd Ed. di Kent Beck. "This is the paradigm for XP. Stay aware. Adapt. Change." "The Theory of Constraints is a way of understanding systems and improving their throughput." "The practices are  also useful because they give you a place to start. You can start writing tests   before changing code, and gain benefit from doing so, long before you understand   software development in a deeper way.Even if I knew all the same gardening   practices as Paul, I still wouldn't be a gardener. Paul has a highly developed   sense of what is good and bad about...

Quando un team inizia a essere un Team?

Metto in evidenza un pezzo che mi piace molto del post Fare parte di un Team oppure no ?  Una somma di persone comincia a essere un Team quando considera più importante agire come un unico fronte unito piuttosto che agire divisi e perciò è capace di prendere insieme decisioni e condividerne la responsabilità. Compito del coach è spronare il team di cui è parte a lavorare insieme, rimuovere le ragioni di conflitto e competizione e incoraggiare la collaborazione, schermare il team dagli impedimenti alle pratiche collettive (pair programming, iteration planning, etc.). Update: Compito del team, cominciare a collezionare una serie continua di piccoli successi e conquistarsi la fiducia del management...

Metodi Agili & Disciplina

Mi annoto questo articolo interessante che mi segnala un collega :   The Discipline of Agile  Parla di come i metodi agili richiedano disciplina per usare bene le pratiche e per crescere nel Team. Riporto un paragrafo che mi ha colpito    The Discipline of Teamwork Agilists, when given the opportunity, will rarely work alone because they know it is too risky to do so. It requires discipline to follow non-solo practices such as pair programming and modeling with others because it's too easy to assume that you're smart enough to get the job done quickly by yourself. It also requires discipline to be responsible for the entire system, not...

Situational Leadership parte II

Riprendo un post precedente che parla di come adattare lo stile di leadership alle caratteristiche del team per aggiungere un'altra dimensione cioè come adattare lo stile alla complessità del progetto che si stà affrontando : Per essere pratici, lo stile di leadership rispetto il team può essere adattato alla singola pratica o meglio al singolo comportamento e  rispetto il progetto può essere adattato alla singolo task. In questo modo è più facile essere specifici e concreti adattandosi al qui, ora e adesso invece di assumere posizioni generiche "di principio". Tags :  Team Work | Agile | Leadership | Team |

Team leader o politicante?

Un post interessante  Leaders or politicians?  L'ho letto e mi chiedo quando la politica è utile e  quando è dannosa per un team? Ho richiamato dalla memoria i significati che in passato ho sentito associare all'eccesso di politica: - evitare decisioni e responsabilità - favorire la proliferazione di mail PIC e della burocrazia - cercare nella politica la soluzione quando la radice del problema è tecnico - cautelarsi dagli esiti del progetto invece che spendersi per portarlo al successo - omettere informazioni, alterare fatti, manipolare le persone contribuendo a un clima di sfiducia La matrice di Ralph Stacey mi da una strada per capire quando la politica è utile. L'asse y descrive il livello di consenso su come...

Gestire situazioni di conflitto

Mi annoto una serie di post interessanti sull'argomento. Conflict Behavior In An Organization : http://advice.cio.com/abdhiraj/conflict_behavior_in_an_organization Beneficial Consequences of Conflict Behavior In An Organisation : http://advice.cio.com/abdhiraj/beneficial_consequences_of_conflict_behavior_in_an_organisation Dysfunctional Consequences of conflict : ...

Fare parte di un Team oppure no ?

  Fare parte di un gruppo, di una squadra, di un team ...     richiede il rispetto di alcune regole comuni per lavorare bene insieme in modo coordinato e un po di disciplina per far buon uso delle regole ed evolvere     comporta dei vantaggi come l'accesso alle conoscenze condivise e alle risorse del team, il supporto collaborativo dei compagni e il mutuo soccorso     necessita di spazi in cui poter esprimere la propria individualità all'interno del gruppo, dare il proprio contributo in modo rilevante e vederne riconosciuta l'importanza e il valore. ______________ Una persona può preferire di non entrare a far parte di un Team perchè considera le...

Intanto rilascio poi lo sistemo 2°

Oltre alle considerazioni linkate nell'ultimo post ecco altri due pensieri interessanti sull'argomento: Failure is not an option : <<We continuously deploy solutions just a bit late, almost with all the desired capabilities, that works in most cases for some time.>> Come va a finire ? Leggilo qui :  http://pierg.wordpress.com/2007/09/10/failure-is-not-an-option/  Fail Fast : http://martinfowler.com/ieeeSoftware/failFast.pdf articolo...

Intanto rilascio poi lo sistemo

Alla categoria: i consigli della nonna Mi ricordo da piccolo frasi del tipo "dai una sistemata alla tua camera, è proprio sottosopra adesso "  e io " sto giocando con i robot adesso , la sistemo ... dopo". E' una risposta comprensibile da parte di un bambino e lo sappiamo che "dopo" significa _mai_. La soluzione sembra banale in questo caso eppure sorprende quando lo stesso atteggiamento lo ha un adulto, un professionista informatico molto capace : "intanto rilascio e ... dopo lo sistemo". Certo da adulto si trova ad affrontare problemi più difficili che sistemare la sua cameretta, ma come dicevo è un professionista molto capace. Inoltre subisce pressioni...

La disciplina e il rapporto con i colleghi

Sempre dal libro di Asha Phillips: la disciplina viene applicata all'interno di una relazione    e   conta molto quello che accade tra le persone , la reciprocità dell'interazione, l'effetto che ciascuno dei due ha sull'altro. Nel libro vengono descritte alcune situazioni difficili della relazione. Ho provato a riassumerle insieme alle indicazioni per superare le difficoltà. Ecco i miei appunti.   Situazioni Circolari Quando capita una situazione che abbiamo già sperimentato che si presenta in modo ricorrente e non ci soddisfa.  Accade quando difronte ad un problema reagiamo nel modo che ci è famigliare e l'altro risponde ponendoci in un...

Team Agili : il contratto

Un buon contratto è quello in cui entrambe le parti sono soddisfatte perchè aiuta ogni parte a perseguire i propri personali obiettivi con un accordo che ogniuno ritiene equo.   E' anche un modo semplice e divertente di descrivere gli impegni a cui è chiamato un team agile , il coach che lo guida e la azienza che lo ingaggia. Ecco 2 link : Contract among members of a scrum team Contract between an organization and a scrum team   In tema c'è anche questo post che descrive i diritti del Programmatore e del Cliente. Tags : ...

Agile Survey Results 2007

Agile Survey Results 2007 : http://www.agilejournal.com/articles/from-the-editor/agile-survey-results:-widespread-adoption,-emphasis-on-productivity-and-quality.html Alcuni estratti : over 70% (of agile teams) are using Scrum, XP, or a Scrum/XP hybrid. top factors for adopting Agile methods: managing change and increasing productivity, time-to-market, and quality The most significant improvements were seen : improved project visibility , improved  alignment between IT and business objectives, improvements in productivity, software quality, and/or time-to-market Tags :  Team Work | Agile |

Disciplina non significa comportamento autoritario

L'immagine più frequente che richiama la parola disciplina è quella di un capo che impone con autorità al gruppo l'obbedienza a norme che lui ha stabilito. Ho annotato degli appunti sulla disciplina nei post precedenti e con piacere vedo che non è questa l'immagine di disciplina che appare.   La definizione che più si avvicina è quella di insegnamento, guida cioè qualcosa che prima di tutto serve ed è utile a chi la applica cioè alle persone che compongono il team.     Un team nuovo - composto da sviluppatori che devono conoscersi, trovare un modo efficente di collaborare insieme in modo coordinato, scoprire un modo efficace e produttivo di affrontare...

Ancora sulla disciplina di un team

Aggiungo al post precedente alla voce Applicarla bene. Le regole vanno stabilite presto e insieme. E' importante la capacità di stabilire delle regole e di attenerci ad esse. La chiave è essere forti e flesibili : Possiamo mantenere le nostre idee e far valere le nostre regole. Ma non possiamo costringere gli altri a darci ragione.  Per poter stabilire dei limiti certi e ragionevoli dobbiamo averne avuto qualche esperienza e averli trovati giusti. E' utile parlare...

Liberare il cambiamento

Ho già postato su come facilitare e promuovere il cambiamento perché il mondo cambia velocemente nel IT. Aggiungo anche questa annotazione dalla lettura che sto facendo:   Non sempre il cambiamento assume una forma che ci aspettiamo o che ci aggrada, allora dobbiamo imparare a trattenerci, a dire di no a noi stessi e all'istinto di imporre il nostro approccio e il nostro modo di vedere. Dobbiamo accettare che ci sia un modo diverso e autonomo di integrare ciò che gli altri incontrano sulla loro strada. Sostenerli e indirizzarli nei momenti di bisogno e appoggiarli nella loro ricerca di indipendenza.    Questo lo chiamerei liberare il...

Disciplina, è utile? a cosa? e come?

Proseguo le annotazioni dalla lettura che sto facendo, I no che aiutano a crescere di Asha  Phillips.     Quando è utile La disciplina è utile quando aiuta a coltivare la passione e il coinvolgimento e insegna a conoscere, capire ed adattarsi alle regole per farne buon uso. I limiti possono rappresentare delle restrizioni ma hanno anche la funzione di proteggere e in questo modo aiutano ad acquisire sicurezza. La disciplina è utile anche perchè insegna l'arte di stare in compagnia e gestire i conflitti e l'aggressività in modo vantaggioso. Insegna a conservare la propria individualità pur facendo parte di un gruppo.   Applicarla bene Nel applicare la disciplina...

Creatività e successo

Sono incappato in questa citazione di Mark Twain:  « Un uomo con una nuova idea è un pazzo finché la sua idea non ha successo » Mi è capitato di incontrare uomini con buone idee bloccati da un timoniere senza il coraggio di esplorare e uomini con un'idea "farlocca" che si fanno forza dietro il timonienre proprio sapendo che non gli lascerà esplorare. In entrambi i casi questa rappresenta una  strada chiusa e non la trovo di gran vantaggio visto che  una grossa fetta delle scoperte di successo del nostro tempo sono iniziate proprio con un errore: la penicellina i raggi X ...

Superare una difficoltà insieme

Riporto alcune note da un libro interessante che sto leggendo: I no che aiutano a crescere di Asha  Phillips. Mi sembrano interessanti riguardo il superare le difficoltà in team, il chiedere e ricevere aiuto, l'imparare cose nuove dai colleghi e ricambiare. A una visione con due uniche alternative, il fallimento o il successo promuove l'alternativa intermedia di un necessario percorso di apprendimento da fare insieme quando non si riesce a fare qualcosa da soli.   Tags :  Team Work | Team building | «Per diventare più forti bisogna riconoscere di non poter fare tutto immediatamente. Per acquisire qualcosa dagli altri bisogna pensare che abbiamo qualcosa da offrire. Condizione necessaria per chiedere...

Dire di no

In un post precedente ho scritto di leader che "non sanno dire di no, non vogliono scontentare nessuno". Capitano ad esempio situazioni in cui quando ci sono le stime, l'utente ha scelto le priorità, gli sviluppi sono messi a calendario, costantemente arrivano nuove impegni, richieste, lavori  che il responsabile di progetto non sa schermare perché non sa dire di no. La lista di casi in cui dire no e come: No, this doesn't fit our priorities. Se stai conducendo il progetto con metodi agili, gestire questa situazione è più facile. Se la richiesta arriva dall'utente che ha stabilito le priorità...

Negoziare: alcuni suggerimenti utili

Preso da un post di Sameer Penakalapati : Why negotiation skills are so critical in personal and professional life? here is what you should know. Mi risulta naturale raggruppare così i suggerimenti che da: Comunicazione 1. Always go for 'win-win' negotiation, keeping everything neutral (emotions, egoism etc.) 2. Understand your fair interest and the interest of the person you are with negotiation 8. Show your inerest to open for new ideas Relazione 6. A good negotiation leaves a future merit for a business relationship, or even a good friedship 9. Treat everyone involved in the negotiaton with great respect 10. Thank every one at the end of the negotiation,...

Competitività e imprese: l' IT fa la differenza

Davvero interessante scoprire per un developer che le linee di codice che scrive generano del valore reale che contribuisce in modo determinante all'aumento della competitività. Vien voglia di fare un giro per i reparti, parlare con gli utenti ed i committenti, conoscere la loro quotidianità con i propri software, capire in che modo fanno la differenza, conoscere il loro business, sentire le scelte prossime strategiche del business, immaginare come le prossime righe di codice che scriverò potranno aiutarli a realizzarle. E' questa la reazione leggendo questo righe : The findings of the study claim US multinationals obtain higher productivity than non-US multinationals because of how how...

Un po di Agile anche in Microsoft Irlanda

Ecco cosa chiedono tra le varie cose: Experience with agile development methodologies. A proven track record of shipping on time and at a very high quality level. Strong verbal and written communication skills. Se qualcuno ha voglia di partire per Dublino ecco i link: http://cercalavoro.monster.it/getjob.asp?JobID=58517774 e http://cercalavoro.monster.it/getjob.asp?JobID=58517923 E per chi vuole iniziare ad interessarsi alle metodologie agili Agile Quick Start   Tags :  Team Work | Professione | Aziende |

Eventi Agili Modena-Reggio & Brescia

Periodo ricco di eventi ... Agili , sarà che funziona? Per chi è di Brescia e dintorni venerdì 8 Giugno c'è il Seminario Agile tenuto da Emanuele Del Bono e Daniele Armanasco presso l'Università di Brescia. Per chi è di Modena, Reggio e dintorni mercoledi 6 Giugno c'è XPLabsTour2007 tenuto da Francesco Cirillo presso  l'Università degli Studi di Modena e Reggio Emilia. 2 ottime opportunità per lasciarsi contagiare da un nuovo modo divertente di lavorare ;-) Ecco qualche link per farsi una panoramica della realtà agile in italia: Agile Quick Start. Tags :  Team Work | Agile | Eventi |

Il lavoro, uno degli ingredienti della felicità

  Leggendo del materiale di Martin E.P. Seligman (Fox Leadership Professor of Psychology in the Department of Psychology at the University of Pennsylvania, promote the field of Positive Psychology) scopro che il lavoro è uno degli ingredienti della felicità : One of the most important influences on happiness is social relationships. People who score high on life satisfaction tend to have close and supportive family and friends. Another factor that influences the life satisfaction of most people is work or school, or...

Come va il QI di gruppo nel tuo team?

Il QI di Gruppo è la misura della capacità di alcuni singoli individui di lavorare bene in team combinando le loro competenze e la loro forza. Ecco tre livelli con cui confrontare le prestazioni del team di cui si fai parte: la prestazione del team è superiore alla prestazione media del suo componente migliore la prestazione del team è pari alla prestazione media dei suoi componenti la prestazione del team è inferiore alla prestazione media dei suoi componenti.  Ho trovato questo argomento raccontato in 'Lavorare con intelligenza emotiva' di Daniel Goleman.   In...

Come dare feedback in modo efficace

Delle indicazioni su come dare il proprio feedback perché venga capito ed usato:  It starts with an opening that sets the stage Lets people know that you have something important to say, that this isn’t a run-of-the-mill conversation. It also gives people a chance to respond, “This isn’t a good time. Can we talk later?". Provides a clear description of behavior or results Don't make judgments:   - Clear descriptive data and examples ...

Sei un buon Team Player ?

Ho trovato in rete un questionario che misura 24 punti di forza  del comportamento di una persona importanti nel lavoro in team. Il test è stato realizzato da persone esperte e competenti e per avere valore scientifico deve essere fatto  in un ambiente controllato con il supporto di uno specialista. Fatto on-line suggerisce aspetti importanti nel lavoro di team e pone domande stimolanti. Qui il test (purtroppo richiede una breve registrazione, pegno per la serietà della cosa) :  http://www.authentichappiness.sas.upenn.edu/tests/SameAnswers_t.aspx?id=270 (e qui l'elenco dei test disponibili) Ecco in sintesi i 24 punti di forza che misura: Perspective [wisdom] Being able to provide wise counsel to others; having ways of looking at the world that...

Odi il tuo capo ??? Sorpresa: lui odia TE :D

Da questo articolo leggero e provocatorio: http://money.guardian.co.uk/work/story/0,,2048182,00.html  ecco la Top Ten delle cose che il tuo capo odia di TE: Quando sei in ritardo (e le scuse peggiorano solo la situazione) Quando manchi di iniziativa Quando hai troppa iniziativa (specialmente quando ignori completamente le indicazioni) Quando sei logorroico e ti lamenti in continuazione Quando sei sleale Quando non ci metti passione ne un po' di interesse  Quando ti prendi troppa confidenza e credi di poter ignorare gli "ordini" ...

Le 12 abilità di un dirigente

Ho raccolto alcune note interessanti da questo articolo che ho appena letto: http://www.cio.com/article/28426/Stress_Tolerance/1 La competenza di un dirigente viene spesso descritta in uno spettro di dodici abilità: Auto-controllo cioè auto-disciplina Una buona memoria a breve termine (vedi http://en.wikipedia.org/wiki/Working_memory) Autocontrollo emotivo Focus Facilità nel cominciare un nuovo task (detta task initiation) Pianificazione e priorizzazione Organizzazione Gestione del tempo Definire e raggiungere gli obiettivi Flessibilità Capacità di osservazione...

Gli ingredienti di una atmosfera di lavoro stimolante

Ingredienti che fanno un ambiente di lavoro stimolante: porre domande aperte chiedere di fare invece che indicare come fare rispondere alle domande con domande guida penetranti incoraggiare ad infrangere le consuetudini, ad essere audaci, ad esprimere le proprie intuizioni apprezzare le menti indipendenti essere aperti a idee apparentemente irritanti e destabilizzanti e ai suggerimenti contribuire ad un clima di rispetto e fiducia favorire la trasparenza delle informazioni senza barriere,...

Un ambiente di lavoro ostile

Elenco (raccolto da letture) di cose che possono rendere un ambiente di lavoro sconfortante, bloccante, inibente invece che stimolante, incoraggiante e ispirante: la sorveglianza - toglie il coraggio di rischiare il giudizio, la valutazione e le ricompense - tolgono il piacere personale di fare e la soddisfazione per i propri conseguimenti la competizione eccessiva - toglie la possibilità di seguire le proprie attitudini e i propri talenti e disincentiva la collaborazione l'eccessivo controllo - disincentiva l'originalità e l'esplorazione la limitazione delle scelte - inibisce...

Team eXPerience

Queste sono domande che ho raccolto da alcune letture che ci si può porre per riflettere sulla proporia esperienza in un team. Ho anche raggruppato quelle a mio parere affini. Il QI di gruppo cosa ho imparato in questo periodo dai compagni di squadra che ha cambiato il mio modo di pensare/valutare/lavorare? quali caratteristiche individuali e competenze di spicco ho e quali altre ci sono all'interno del team? quali delle mie caratteristiche personali e specifiche ho messo a disposizione del team e utilizzato per supportare i miei compagni di squadra e gli...

Il pendolo della cretività

L'idea di uno studioso, George Land, è che la creatività si manifesta come un pendolo che oscilla passando attraverso tre fasi. nella prima dopo aver esplorato tutte le alternative il sistema inventa se stesso nella seconda istituisce un modello formale in base a ciò che ha funzionato meglio nella prima nella terza deve infrangere i limiti di questo modello per ricominciare a svilupparsi ed evolversi E questo accade ad esempio in cicli di minuti durante la soluzione di un...

Il sapore della qualità, corollario

Corollario al post precedente: "Il debito tecnico che ti fai oggi è un ostacolo in più sulla strada del successivo rilascio puntuale" "se invece di risolvere questo debito tecnico oggi ne crei uno nuovo, per il prossimo rilascio avrai 2 debiti tecnici in più da risolvere" Tags :  Team Work | Agile | Pratiche |

Il guastatore

 «    Si'. è molto strano... non credo di aver mai visto un caso simile prima d'ora... Io consiglierei di rimettere l'elemento al suo posto e lasciare che vada in avaria. Dovrebbe essere facile allora individuare la causa; possiamo certo permetterci di interrompere le comunicazioni per il breve periodo necessario alla sostituzione.   » 2001: Odissea nello spazio, Stanley Kubrick, 1968   Hal, il computer dell'astronave, prevede un'anomalia del componente AE-35 eppure il computer gemello Novemila prevede non ci sarà anomalia. Per scoprire dov'è il problema lasciano in funzione il componente AE-35 sino alla rottura che darà informazioni utili a risolvere il mistero.   «    Saremo pronti a celebrare la vittoria...

Stile di leadership agile: Situational leadership

L'idea che Hersey suggerisce è di adattare lo stile di leadership alle caratteristiche del team. Lo stile si adatta in due dimensioni: task_behavior ossia il grado in cui il leader dirige il lavoro e relationship_behavior ossia il grado in cui il leader utilizza il rapporto e la comunicazione con il team. Da queste 2 dimensioni scaturiscono 4 stili di leadership (quattro quadranti ;-)) : Telling / Directing: il team riceve chiare indicazioni sul lavoro da svolgere e su come svolgerlo e i risultati vengono controllati mentre la comunicazione è principalmnte uni-direzionale verso il team. Lo scopo per il team...

Essere agili: team auto-organizzati e disciplina

Questo commento di Ludovico mi fa pensare a due aspetti in conflitto tra loro dell'essere agili, la disciplina e l'auto-organizzazione in un team. Posso facilmente immaginare team disciplinati dove c'è meno auto-organizzazione e più autorità e controllo. Posso immaginare team auto-organizzati dove c'è meno controllo e più improvvisazione. Fatico invece ad immaginare auto-organizzazione e disciplina insieme. Riflettendoci però ... I team agili si auto-organizzano nel senso che individuano, definiscono e adattano i processi e le pratiche che applicano facendoli emergere dai bisogni e dalle necessità reali che affrontano. Cioè fanno in modo che gli sprechi e i problemi diventino visibili e facilmente riconoscibili (fai galleggiare la barca sulla superfice). Ogni volta che uno spreco o un problema si presenta, il team lo vede chiaramente e può...

Agile Quick Start

Alcuni link da cui iniziare:  http://www.agilemovement.it/  la community italiana dedicata alle metodologie agili fondata da Marco Abis http://www.agileday.it/ la conferenza italiana dedicata alle metodologie agili in cui incontrarsi, confrontarsi, condividere esperienze e conoscere esperti ed aziende di primo piano http://www.extremeprogramming.it/ lo user group italiano di extreme programming, qui trovi le persone più attive su XP in italia http://www.agilemanifesto.org/ il manifesto contiene i valori e i principi comuni a tutti...

Essere agili senza anticipare o improvvisare

Mi chiedo periodicamente come essere Agile senza anticipare e senza improvvisare. In mente ho due spunti: Una indicazione è quella di anticipare, prevedere il minimo indispensabile e non di più (un esempio di questo è Enough Design UpFront, EDUF ossia la quantità minima di disegno che è utile anticipare) L'altra è quella di reagire rimandando ogni scelta non reversibile sino all'ultimo momento responsabile e non un attimo dopo.    Scoprire dove sono questi due estremi non mi è facilissimo, variano di caso in caso. Il punto che cerco, l'equilibrio, è li nel mezzo, da qualche parte. Sul tema ho trovato...

Leader con personalità troppo incombenti, cosa fare?

In un post precedente ho scritto "leader con personalità incombenti", un comportamento che rischia di scoraggiare il team ed ostacolarlo invece che supportarlo e incoraggiarlo. Il compito del leader comprende prendere decisioni a volte su questioni difficili, prendere posizioni chiare anche quando ci sono dibattici accesi su temi caldi, rispondere alle responsabilità che si è assunto rispettando gli impegni e consegnando in tempo. Quando la pressione del lavoro si alza la tendenza ad un atteggiamento pessimistico e al giudizio critico nei confronti dei colleghi cresce perché si assottiglia il tempo per comunicare e confrontarsi. ...

Stile di leadership agile e stile di management classico

Ho appena finito di leggere, rileggere, sminuzzare, ricomporre e analizzare articoli sulla differenza tra questi due modi di guidare un team. Metterli a confronto mi ha aiutato a capire meglio il significato di Leadership agile e a chiarire ciò che attraverso l'esempio, l'emulazione e il training on the job di colleghi illuminati ;-) sono riuscito a intuire. Annoto qui i passassaggi chiave a mio avviso. Il vantaggio di una leadership agile è quello di produrre un'organizzazione agile in grado di gestire situazioni estremamente mutevoli, che è in grado di valutare velocemente le nuove condizioni e adattarsi e reagire velocemente per raggiungere i propri obiettivi. Mi fa pensare a...

Ascoltare, decidere e agire

Nel Corriere di ieri c'è un articolo interessante di Alberoni. Parla di chi non ascolta, non delega, è autoritario o dispotico, non si consulta con i colleghi e con gli esperti, oppure ha una personalità troppo incombente. Ed in cambio ottiene il timore, un atteggiamento servile, il silenzio. Il feedback si spegne e questo porta all'errore. Parla di chi non decide, non vuole correre il rischio di sbagliare, non vuole assumersi responsabilità, ne prendere iniziativa. Ed in cambio ottiene l'immobilità, nessun passo verso la meta,  nessun miglioramento da sedimentare. Parla di chi ascolta troppo, prolunga troppo la mobilitazione, accoglie troppi progetti nuovi, inserisce sempre...

Appunti sulla leadership

Annoto alcune frasi prese da Larry Wilson che mi tornano molto.«  La leadership sta nel dimostrare agli altri il desiderio di prendersi cura di loro e favorire la loro crescita  »   «  Il lavoro di un leader è quello di trascinarci e portarci oltre il punto che noi pensavamo di poter raggiungere  » «   La leadership si esprime in tre momenti: il primo consiste nel creare una visione delle cose in cui poter credere e che si possa comunicare agli altri il secondo consiste nel guidare i tuoi verso quell'idea il terzo...

Embrace the change, come ? Parte 2°

Quando una persona è disposta verso il cambiamento? In che condizioni non lo ostacola, lo accetta, partecipa, contribuisce oppure lo promuove? (continua qui) Fonte: un libro di Goleman, qualcuno lo riconosce?     Tags :  Team Work | Motivazione | Creatività |

Errori convenienti: la cultura del imparare

Se ti trovassi ad organizzare i posti a sedere per una cena, metteresti la parola 'errore' a tavola con le parole danno, colpa, disapprovazione, rimprovero e punizione o la metteresti a tavola insieme alle parole esperimento, novità, coraggio, talento e perseveranza? (continua...)   Tags :  Team Work | Agile | Pratiche |

Indagine sui tool usati nel Agile Project Management

Ecco i risultati di un'indagine condotta sull'adozione di tool che supportano il project management agile: http://trailridgeconsulting.com/files/2006AgileToolingSurveyResults.pdf   Disponibilile anche il risultato dell'indagine sull'adozione delle metodologie agili: http://www.ambysoft.com/downloads/surveys/AgileAdoptionRatesSummary.pdf Tags :  Team Work | Agile | Tools |

Matematica e creatività

Navigando ho scoperto che una delle definizioni più efficaci di Creatività l'ha data un matematico, Poincaré appunto:   << Creatività è unire elementi esistenti con connessioni nuove, che siano utili >>   Creatività è anche uno dei valori dell'etica hacker.     Tags :  Team Work | Motivazione | Creatività |

Le 5 paure che si frappongono al successo

In pratica queste sono le 5 paure principali che frenano una persona nel raggiungere ciò che desiderano, ad esempio il completamento positivo di un progetto: La paura dell'ignoto La paura del fallimento La paura della disapprovazione La paura di impegnarsi (scegliere, dover perdere una cosa per averne un'altra) La paura del successo Quella che più mi colpisce è la paura del successo, sembra paradossale, mi incuriosisce molto. Update: un film su questo tema interessante Rischio a due (Two for the Money) con Al Pacino  Segnalato da: http://pierg.wordpress.com/2006/09/26/what-prevent-people-from-pursuing-their-destinies/ Tags : ...

Creatività e ispirazione

Questa storia su creatività e ispirazione mi è piaciuta, ecco alcuni passi: (cliacca x leggere)

Qualità vs. Quantità . chi vince ?

Secondo un sondaggio internazionale della NFI Research 1 azienda su 4 da più valore alla qualità che alla quantità e la domanda di qualità da parte dei superiori è ancora maggiore più di un quarto ha risposto che il loro responsabile da importanza alla qualità prima che la quantità. Qualità e quantità sono due obiettivi in conflitto tra loro la quantità serve a ben poco se la qualità è insufficente a volte è il cliente stesso che preme a discapito della qualità per ottenere maggiori volumi e maggiori velocità ...

Project Management: tradizionale & agile

  Smilitudini e differenze tra il Project Management tradizionale (stile PMI) e Agile (stile XP, Scrum) in questo documento : http://www.rallydev.com/documents/rally_survival_guide.pdf  Mi sembra possa essere un buon ponte tra i due mondi. Vuoi attraversarlo? Link: - http://www.rallydev.com/kportal.jsp?doc=wp11 - http://www.rallydev.com/agile_knowledge.jsp     Tags :  Team Work | Agile | Pratiche | Leadership |

Comunicazione: da spettatore ad attore principale

In community WorkShop e WebCast non mancano e nemmeno al lavoro i meeting mancano. In molte occasioni capita di partecipare lasciando il "palcoscenico" ad altri e sedendosi in "sala". Comunicazione e Feedback si stanno dimostrando ingredienti sempre più importanti così capita sempre più spesso che lo spettatore-ascoltatore può svolgere un ruolo attivo e rilevante per il successo di WorkShop, un WebCast e di un meeting riuscendo così a portarsi a casa più valore per il tempo speso. In questo articolo segnalato in un post precedente che ho letto e riletto in cui per ogni specifica difficoltà di comunicazione (le chiama 'barriers to effective listening') c'è una contromisura...

Dipartimenti IT eccellenti

Un elenco di caratteristiche comuni ai migliori dipartimenti IT : Alignment with the business Managing change Establishing trusted relationships with vendors and outsourcers Managing infrastructure systematically Assimilating information about new technologies Deriving best practices and lessons learned from...

Problemi di comunicazione?

A volte mi è capitato durante una discussione di finire in un vicolo ceco, di non riuscire a smuovere la discussione arenata. Sotto c'è un elenco che descrive 8 atteggiamenti negativi in una discussione. Sono rimasto sorpreso di scoprire che per ogniuno di questi casi c'è una contromossa che permette di recuperare la situazione. Ancora maggiore è stata la sorpresa quando ho capito che la soluzione la si può risolvere comportandosi da buon ascoltatore: la contromossa è in mano a chi ascota. Update 3-Nov-2006 qui il post originale già in italiano: http://blogs.ugidotnet.org/pier/archive/2006/09/28/49125.aspx Ecco l'elenco: Credere di conoscere già la risposta al problema e quindi smettere di...

E tu come la pensi ?

Lo schema descrive alcuni modi tipici di organizzare il pensiero: Split o Lump Split cioè il modo di pensare per differenze ossia porre molta attenzione e notare ed evidenziare le differenze delle cose Lump cioè il modo di pensare per similitudini ossia  notare ed evidenziare le similitudini tra le cose Trees o Forrest Trees ossia il modo di pensare concentandosi sui dettagli concreti, sulla parte su cui si sta lavorando. Ad esempio guadando il muro si penserebbe al mattone Forrest ossia il modo di pensare concentandosi sulle...

E-mail per comunicare

Leggendo questi post ho visto lo stile di e-mail che preferisco e come adattarlo all'interlocutore per comunicare bene: Be ‘in rapport’ with e-mail (1) Be ‘in rapport’ with e-mail (Type of email) Be ‘in rapport’ with e-mail (VAK) Be ‘in rapport’ with e-mail (Tone) Effective communication via e-mail Again on better e-mail usage Managing e-mail Fonte: http://pierg.wordpress.com/   Tags :  Team Work | Comunicazione |

Leadership: aree di competenza e carenze fatali

Zenger and Folkman definiscono 5 principali aree di competenza di un buon leader: Capacità personali Carattere Capacità di comunicazione interpersonali Capacità di focalizzarsi sul risultato Desiderio di guidare il cambiamento in azienda Definiscono anche delle carenze fatali per un leader: Incapacità di imparare dai propri errori Mancanza delle basilari abilità interpersonali Chiusura verso le nuove idee e idee originali o differenti dalle proprie Poca affidabilità e responsabilità verso gli altri (clienti, colleghi)...

A quale categoria motivazionale appartieni?

A che categoria motivazionale appartieni? Quali sono le motivazioni nel lavoro informatico che fai? Scopri la ... tua MotivazioneProfessionale!   Tags :  Team Work | Motivazione |

I risultti del... 2ndo Test Estivo per programmatori - AGOSTO 2006

                                                                            Ecco anche i risultati del secondo test estivo per programmatori.  *Ordina questa lista di valori mettendo prima quelli che più ti rappresentano.                                                                            Prendine i primi 5, conta quanti appaiono tra i ValoriDelloSviluppoAgile, se sono almeno  3 sei affine al metodo di sviluppo agile altrimenti sei + affine al metodo classico. Tags :  Team Work | Motivazione |

I risultati del ... Test da spiaggia per programmatori - AGOSTO 2006

Ecco qui il risultato del Test da spiaggia per programmatori - AGOSTO 2006. Segna per ognuno dei 19 valori in questa lista, carta penna e Notepad, se lo condividi Moltissimo(++), Abbastanza(+) o Poco(-). Ad ogniuno dei 7 valori che appaiono anche qui (ValoriDellEticaHacker) se lo condividi Moltissimo(++) somma 10punti, se lo condividi Abbastanza(+) somma 5punti. Il totale va alla scala di valori dell'etica hacker.  Ad ogniuno dei 7 valori che appaiono anche qui (ValoriDellEticaCapitalistica) se lo condividi Moltissimo(++) somma 10punti, se lo condividi Abbastanza(+) somma 5punti. Il totale...

Professione informatico: quello che i Manager vorrebbero da noi

Ecco il profilo dell'informatico ideale che il management spera vivamente di reclutare e difficilmente riesce a trovare. Fotografa la situazione corrente del mercato americano, rispecchia una realtà presente ora solo nelle maggiori aziende italiane di punta e probabilmente anticipa di qualche anno una tendenza di carattere generale per tutto il mercato IT nazionale. L'informatico esperto/senior ideale da reclutare per il management: possiede un'ampia competenza tecnica ed esperienza delle tecnologie emergenti e dei sistemi legacy ha una capacità analitica e di problem-solving di prima scelta ha eccellenti doti di comunicazione sa...

Innovazione si, ma finta

La fortuna non mi è mancata al primo impiego nel lontano 1889 quando potevo lavorare utilizzando un ambiente di sviluppo di IV generazione, un Db relazione con transazioni distribuite e funzioni di disaster recovery, un S.O. in time-sharing con supporto per il clustering. Cosa da extra terrestri a confronto di ciò che c'era intorno a quell'epoca. Passione, curiosità e impeto mi hanno sempre spinto verso la novità. In XP il cliente è parte integrante del team, è il garante del dominio applicativo, definisce i requisiti, sceglie le prossime feature da implementare, valida i risultati e la loro effettiva adeguatezza a soddisfare le necessità del cliente. Quando il cliente non è raggiungibile,...

Embrace the change, come ?

Mi è capitato di parlare con colleghi del desiderio di innovazione (nuove tecnologie, nuovi modi di lavorare, etc.) che viene frustrato da aziende poco propense ad innovarsi.  Accade anche la situazione opposta, manager che spingono per innovare e membri del un team che frenano. Sembra che a questa situazione apparentemente paradossale ci sia una spiegazione: La reazione tipica al cambiamento imposto è lo stress, il disagio e il fastidio. Alcune tecniche per promuovere l'innovazione e realizzare il cambiamento in team sembrano essere poco efficaci: Incentivi, come il bastone e la carota, sono poco efficaci a livello individuale ...

2ndo Test Estivo per programmatori - AGOSTO 2006

                                                                            +. Ecco il secondo test estivo per programmatori, come il precedente è l'occasione per scoprire quali sono i Valori da cui preferisci farti guidare nel lavoro quotidiano e con quali scale di valori sei più in sintonia. Metti in ordine questi punti, da quello che consideri per te più importante a quello che senti meno importante: ...

Test da spiaggia per programmatori - AGOSTO 2006

Ecco qui il test estivo per informatici, da assumere preferibilmente in spiaggia baciati dal sole, rinfrescati da una lieve brezza, con i piedi infilati nella sabbia e con un panoramara scelto a piacere. Quella che segue è una lista di 19 valori che riguardano proprio il lavoro di noi sviluppatori e informatici. Questi valori appartengono a 3 distinte scale di  valori, il test serve a scoprire quale scala delle 3 ti rappresenta meglio. Istruzioni: il punto è mettere in ordine di priorità i seguenti valori ed elencali in tre gruppi di priorità: quelli con cui ti senti  Moltissimo in sintonia  , scegli quelli con cui ti senti...

La mappa degli agilisti italiani

http://www.frappr.com/italianagilemovement Ci sono anch'io. Fonte: http://blogs.ugidotnet.org/nicolacanalini   Tags :  Team Work | Agile |

Memo: il ciclo del rispetto e il ciclo del disprezzo

Showing leadership means both earning respect from others and knowing what to do with it. Recognize the skills of your team members, and make sure you can offer each person challenges and development without exceeding what they can cope with at a given time. Leadership involves not always getting to do the "fun" parts of a project yourself (that scary "delegation" word). It also involves not asking anyone to do a task that you wouldn't be willing to do yourself.   Fonti: - http://www.developerdotstar.com/mag/articles/software_professionalism.html - http://blogs.ugidotnet.org/antonioganci/archive/2006/08/07/45965.aspx   Tags :  Team Work | Leadership |

Tecniche di stima (4 di 4): i costi e il prezzo

Per quanto riguarda il punto tre della lista ossia la definizione del prezzo... una volta che è stato ideato il prodotto che risponde le esigenze del cliente, stimato lo sforzo necessario a realizzarlo, definite le esigenze di calendario, le persone e le competenze necessarie arriva il momento di stimare i costi. I costi da considerare oltre al costo degli sviluppatori includono diverse altre voci: hardware, networking e licenze software e relativa amministrazione e manutenzione viaggio e trasferte i locali adibiti ad ufficio, ricevimento clienti, spazi di ricreazione (per una meritata pausa caffè ;-)) ...

Tecniche di stima (3 di 4): il calendario dei rilasci

Per quanto riguarda il punto due della lista ossia la definizione del calendario delle date di consegna (il commitment), il tempo di calendario dipende in modo lineare dallo sforzo richiesto dal progetto come determinato dalla stima  e dalla percentuale di tempo dedicata al progetto (es. tempo piento o metà al progetto e metà ad un altro progetto). In XP il dato storico della velocità del team (quanti story point o pomodori vengono prodotti al giorno - ciao RiccardoM -) permette di passare facilmente dalla stima in giorni ideali alla stima in giorni di calendario. La cosa è nota e resta sempre sorprendente: il...

Tecniche di stima (2 di 4): lo sforzo

Quando un progetto inizia e si va verso una offerta economica è necessario trovare la risposta a queste domande: Quanto sforzo è necessario per completare il progetto? (la cossidetta stima in giorni uomo) Quanto tempo di calendario serve? (il cossidetto commitment o impegno sulla data di rilascio) Quel'è il costo di realizzazione del progetto? (e di conseguenza il prezzo) Quello di cui parlo è il punto 1 ossia la stima dello sforzo in giorni uomo, che poi contribuisce a determinare i restanti due punti.  La difficoltà di formulare la stima...

Tecniche di stima (1 di 2): i presupposti

Noi sviluppatori impariamo in fretta che fare una stima accurata a inizio progetto è difficile e farla inaccurata è il primo passo verso il dolore. Un turista chiede al servizio metereologico che tempo farà il 25 del prossimo mese e la risposta non c'è. Una signora vuol sapere dal parrucchiere quanto ci metterà, lui chiede cosa desidera: taglio, colore, messa in piega... e poi le risponde. Ci sono cose che è inutile dettagliare perché cambieranno, altre che conviene conoscere per esprimere una stima possibilmente accurata. Per formulare una stima su un nuovo software conviene conoscere i requisiti funzionali (il problema) il relativo dominio applicativo ed i processi aziendali...

Stimare per la prevedibilità

La stima dei tempi durante un progetto viene fatta in almeno 2 momenti molto diversi. Qui il punto è che la pianificazione è un documento vivo che viene continuamente aggiornato in base alle nuove informazioni raccolte e in ogni momento esprime con la migliore precisione possibile l'ora di arrivo prevista. Procedendo così il cliente otterrà tanto valore quanto paga ed in modo prevedibile. Non è poco! Siamo anni luce avanti allo standard del pre Anno 2000/EURO. Ogni imprevisto potrà essere gestito in modo tempestivo, reagire cambiando i piani sarà la cosa naturale da fare.   Release Planning La prima stima va fatta per il Release...

Prezzo da Ipermercato, qualità da Boutique

Questo post è scritto da programmatore a programmatore, titolo compreso. Riguarda l'acquisto di software, visto dalla parte della software house, dalla parte della azienda finale e dalla parte del consulente. In queste situazioni l'acquirente desidera la stessa cosa... un prezzo da ipermercato! Basso?  No! Noto dall'inizio, certo nei tempi, certo della merce che ci si porta a casa. In una parola:  p r e v e d i b i l i t à  ! Quando un acquirente deve fare un uso del software per cui una qualità inferiore a quella da boutique non è sufficiente i software pacchettizzati standard non sono un'opzione. Sviluppiamolo da zero o quasi, facciamolo su...

Comunicazione e manipolazione: memo risorse sul tema

  Film: L'ottavo giorno (Le Huitième jour) del 1996 Regia di Jaco Van Dormael Principali interpreti: Pascal Duquenne; Daniel Auteuil; Miou Miou Film: Il popolo migratore (Le Peuple migrateur) del 2001 Regia:  Jacques Perrin Manipolazione: http://it.wikipedia.org/wiki/Manipolazione Parassitismo: http://it.wikipedia.org/wiki/Parassitismo Retorica: http://it.encarta.msn.com/encyclopedia_761574514/Retorica.html...

Comunicazione e manipolazione

 • • •  Aggiornato il 11-07-2006 Intorno a Marzo con una collega stavamo preparando un Planning Game e nel mentre ci siamo chiesti qual'è il confine tra comunicazione e "manipolazione". Senza trovare una risposta soddisfacente. Distinguo facilmente le situazioni passate di comunicazione da quelle di "manipolazione" di cui sono stato oggetto: le prime le associo ad un senso di fiducia, concretezza, soddisfazione, realizzazione professionale, reciprocità, libertà, responsabilità, chiarezza; le ultime le associo ad un senso di sfiducia, conflittualità, dubbio, oppressione, frustrazione, rabbia o rassegnazione, insoddisfazione. Immagino che sia una reazione del tutto personale. Quindi la domanda resta: cosa è "manipolazione" ?  Questa è la prima risposta che riesco ad articolare stimolato da commenti e riflessioni rubate ad altri da bravo lurker: ...

Comunicazione e gli informatici II

Alcune annotazioni da un articolo che leggo: Colma la distanza tra le tue intenzioni ed il tuo comportamento.  We measure ourselves by our intentions; others measure us by our behavior. ...   Others see only what we do. It is also very common for others to infer what our intentions are, and often they infer the worst  ... we can always state our true intentions up front. ...  Asking for feedback gets us the data we need to understand whether we are getting the outcomes we intend. ...

Programmare senza ego: linee guida

  Renditi conto che commetterai degli errori e accettalo. The point is to find them early, before they make it into production. Fortunately, except for the few of us developing rocket guidance software at JPL, mistakes are rarely fatal in our industry, so we can, and should, learn, laugh, and move on. Non sei il codice che scrivi, ne quello che hai scritto ne quello che scriverai Remember that the entire point of a review is to...

Il software come conoscenza in compresse

Mentre studiavo algebra imparai un teorema con una dimostrazione lunga 2 facciate, negli esercizi tra le note curiose scoprii che un secolo prima lo stesso teorema per essere dimostrato aveva richiesto 10 e più libri. Ora come allora la conoscenza che quel teorema portava era la medesima, ma allora trasmettere, comunicare o elaborare quella conoscenza richiedeva una quantità d'informazione estremamente più grande che oggi (10 libri contro 2 facciate).   Quando lo sviluppatore realizza una soluzione informatica ad un problema passa attraverso diverse fasi, dal problema alla sua soluzione sino alla implementazione del software in momenti successivi di analisi e sintesi sino al rilascio definitivo della versione ufficiale...

Sei un informatico e ci tieni alla carriera? Investi su di te

Ho letto un suggerimento che trovo interessante: Lessons from Personal Finance Good investors:   have a plan   diversify   look for value   are active, not passive   do it regularly Guardandomi indietro devo ammettere che questi suggerimenti hanno funzionato. Qui la fonte: http://www.pragmaticprogrammer.com/talks/HowToKeepYourJob/HTKYJ.html e la segnalazione è di Antonio.   Tags :  Team Work | Professione |

The Toyota way

Annoto alcuni spunti dal pdf segnalato qui da Antonio con l''intento di migliorarmi su questi temi: Fai galleggiare la barca sulla superfice (il flusso di lavoro e i processi) Rendi e mantieni sempre evidente il flusso (del lavoro, del processo) e fa in modo che sia noto ed evidente a tutti attraverso la tua cultura aziendale Crea un flusso che muove insieme materiali e informazioni (per me applicazioni e codice, dati applicativi e conoscenza del dominio) e che lega il processo...

Pair Programming: la diversità dei pair è una ricchezza

Due sviluppatori in pair che approcciano la rappresentazione del problema e la  soluzione in modo diverso e che hanno formazione diversa possono ottenere risultati nettamente superiori a una coppia in pair di programmatori molto capaci (specializzati sul problema) ma molto simili tra loro. Questa è l'idea che mi è venuta leggendo questo articolo:   Groups of diverse problem solvers can outperform groups of high-ability problem solvers   Fonte: http://www.pnas.org/cgi/content/full/101/46/16385 ...We find that when selecting a problem-solving team from a diverse population of intelligent agents, a team of randomly selected agents outperforms a team comprised of the best-performing agents. This result relies on the intuition that, as the initial pool...

Comunicazione e gli informatici

Da buon informatico passo molte ore ogni giorno a "parlare" con il mio computer (la cosa buona è che mi ascolta ancora ;-O). Il mio computer è un interlocutore particolare: ascolta attentamente ciò che gli dico con estrema pignoleria, nota e interpreta ogni parola, ogni singola lettera... anche uno spazio o una parentesi graffa fanno la differenza, quando mi risponde è dettagliato, preciso e dice cose veriificabili; mi ascolta instancabilmente, non si annoia, non si innervosisce, non serba rancore; in cambio impone la sua lingua e la sua grammatica.   Quando penso alla comunicazione e agli informatici penso che siamo abituati a parlare con le macchine e molto meno con le persone. ...

Quiz sulle metodologie Agili ed eXtreme Programming: le risposte che mi sono dato

Dopo aver riflettuto sulle domande ed aver letto i feedback al post precedente ecco le risposte che ad oggi mi sono dato: In generale il committente (il reparto che ha richiesto un software) e la software factory (il reparto che realizzarà il software) hanno l'obiettivo comune di concludere il progetto con successo, il confine che vedo separa ciò che porta alla riuscita del progetto da ciò che lo ostacola. D: Che differenza c'è tra adattarsi alle richieste del cliente e subire le richieste del cliente? R: Metafora. Il passeggero è salito in Taxi verso l'aeroporto per prendere il volo che a breve...

Quiz sulle metodologie Agili ed eXtreme Programming

Ecco alcune domende che mi sono posto nell'ambito delle metodologie agili ed XP. Cosa ne pensate ? Che differenza c'è tra adattarsi alle richieste del cliente e subire le richieste del cliente? Che differenza c'è tra essere agili ed improvvisare? A volte è più facile cambiare il mondo che ... C:/> _ Tags :  Team Work | Agile | Pratiche | Cliente |

Il Bon Ton del Pair Programming

In aggiunta al protocollo standard del Pair Programming ecco le cose che sono concesse in piena libertà anzi vivamente consigliate ogni volta se ne sente il bisogno quando si stà facendo Pair Programming il driver può sollecitare un consiglio al observer quando ha un dubbio l'observer può sollecitare lo switch ai comandi per passare alla tastiera sia il driver che l'observer possono interrompere il pair e chiamare una sessione di brainstorming in cui entrambi lasciano la tastiera ed i rispettivi ruoli per affrontare un dubbio o cercare una soluzione insieme ...

Pair programming: come iniziare gradualmente

Oggi alla macchina del caffé è nata una discussione su come iniziare ad applicare il pair programming. La discussione è nata dal confronto dell'esperienza fatta da una coppia di pair entrata da non molto nel team e una coppia che fa parte del team da tempo. Dopo la chiacchierata davvero interessante ecco alcuni particolari e considerazioni che mi hanno convinto: la coppia di pair nuova nel team è stata facilitata ad applicare il pair perché essendo nuovi lavorare in coppia è stato necessario per riuscire ad avere tutte le info...

Pair programming: ruotare le coppie

Nel Pair Programming ho notato che ruotare le coppie mi permette di sperimentare coppie diverse risolvere problemi di compatibilità  diffondere e condividere la conoscienza. Quando la coppia non cambia sono stato tentato a dividermi le competenze/responsabilità (es. uno scrive sempre i test e l'altro il codice, uno fa la gui l'altro il db) col pair invece che condividere la conoscenza, in quei casi il turno di observer si è  trasformato in un turno di riposo e il dialogo in monologo. Un'altra conseguenza negativa dei pair che si dividono le competenze/responsabilità è che il...

Le coppie nel pair programming

Prendo spunto dalle slide di Fabio Carucci (Agile Day 2004, "L'arte di pensare in coppia" sul Pair programming), ecco un elenco di compatibilità caratteriale per le coppie:   Novice - Novice: KO ...

Pair Programming e tempi di sviluppo

Dai post e feedback precedenti (qui e qui) se la convenienza anche in termini di tempi di sviluppo del pair programming per problemi complessi e per la qualità del codice, per problemi semplici due sviluppatori spaiati sembrano andare più veloci. Ho notato che quando sono observer mentre il driver è alla tastiera ed il problema è semplice in effetti tendo a distrarmi non essendo necessaria la mia attenzione. Lo switch tra observer e driver mi obbliga a stare attento ma non basta. Pensandoci bene tuttavia...                     ...se il problema è semplice vuol dire che c'è spazio per fare di più e/o meglio: fare palestra - se si stà scrivendo codice nuovo per un...

Annotazioni sul Pair Programming

In attesa di ricevere qui feedback anche su cosa/quando la collaborazione non è efficace, economica od efficente mi segno alcune annotazioni sul Pair Programming: Two programmers working side-by-side, collaborating on the same design, algorithm, code or test. One programmer, the driver, has control of the keyboard/mouse and actively implements the program. Types and thinks tactically about the method being created. The other programmer, the observer, continuously observes the work of the driver to identify tactical (syntactic, spelling, etc.) defects...

Quando collaborare è viaggiare al Quadrato

In questi giorni ho lavorato ad alcuni task in pair e ho anche visto due colleghi lavorare in pair.  Quando dico lavorare in pair intendo in due contemporaneamente alla stessa scrivania sul problema  e anche in due da remoto in momenti diversi sullo stesso problema. L'efficienza è quello che mi ha sorpreso, è che il lavoro in pair non ha solo dimezzato i tempi, in questi casi particolari gli ha ridotti ... al Quadrato. In un caso ha migliorato la qualità finale del task, nell'altro ha reso possibile il task nel tempo disponibile. Ecco un esempio dei task: semplificata l'implementazione di una nuova funzionalità ad una applicazione...

AgileDay 2005

Anche quest'anno ho assistito all'AgileDay, lo  seguo con molto interesse per affinare le mie conoscienze delle metodologie agili da cui mi faccio aiutare e guidare nel lavoro in team e nell'utilizzare tool e tecnologia per la buona riuscita dei progetti. La sera prima c'è stata una divertente cena di geeks (il presidente Andrea Saltarello si è esibito nel refactoring della serata in perfetto sitile Agile) impreziosita dalla presenza del gentil sesso e da un simpatico provocatore che ha contribuito ad ampliare il dialogo oltre i temi dell'informatica. Il viaggio di andata e ritorno con Riccardo Golia è stato come sempre un'ottima occasione per confrontarci sulla applicazione delle metodologie agili e sul nostro...

XP e User Stories, per noi e per Microsoft

Conclusioni Il problema: 1 mese di tempo per MS per inserire dentro il build complessivo del prodotto una aggiunta fatta da una divisione di sviluppo del prodotto. La causa: l'elevato numero di persone necessarie al team e del prodotto. La soluzione: organizzare le divisioni di sviluppo/build assegnando ad ogniuna la prossima singola funzionalità (User Story) da rilasciare, arrivare per ogni divisione ad un build giornaliero e quindi ridurre (a 1 settimana?) il tempo di attesa per il build complessivo del prodotto. Il fatto interessante L'integrazione continua è utile per poter giungere a build giornalieri fatti in pochi minuti, è un ingrediente ma ne servono anche altri. Và beh, cosa nota. Organizzare il lavoro del...

[OT] Informatica e creatività

Aggiornando il mio cv mi sono accorto che... [clicca il titolo x leggere]

Quando i progetti falliscono, sull'importanza di imparare dagli errori

Secondo statistiche del 2001 indicate dal Gartner Group il 30% dei progetti di IT (uno ogni 3!!!) non giungono ad una conclusione positiva ossia vengono abortiti oppure producono un software che non soddisfa i bisogni per cui è stato commissionato. Mentre il 51% supera il budget in media del 189% relizzando solamente il 74% delle funzionalità previste. Lo scorso anno mi è capitato di vivere l'esperienza di un progetto che è stato abortito, abbastanza presto da ridurre al minimo i danni, abbastanza tardi per poter salvare tutte le teste in un periodo di recessione. L'aspetto positivo è quanto ho potuto imparare da questa situazione nel adoperarmi...

PMI informatiche e innovazione

Mi accodo al recente post di Adrian e a quello di Andrea sul tema. Cosa significa oggi per una software house in italia innovare? Come prima cosa applicare i metodi dell'informatica moderna che si sono già dimostrati efficaci, adottare gli standard diffusi e impiegare le tecnologie più moderne con l'obiettivo di: creare valore a chi commisiona e acquista prodotti informatici realizzando prodotti che risolvono adeguatamente i bisogni del cliente per cui sono stati commissionati(1) dare alla direzione della software house...

Lavorare in Team: delega e fiducia

  Lavorando in Team e a volte guidando un Team ho avuto modo di verificare quanto sia importante la capacità di delega.   Se la guida del Team non è capace di (e quindi non vuole) delegare ad altri parte dei compiti e delle decisioni diventa il collo di bottiglia che limita le prestazioni del Team (lo stesso accade nella guida delle aziende che raggiunta una certa dimensione, nonostante le capacità e la preparazione delle persone coinvolte smette di crescere, come accennavo qui).      Sapere cosa e quanto delegare ad uno specifico membro del Team è importante, il compito deve essere...

Fai il consulente... rassegnati... ;-)

Ecco la risposta all'interessante post di Lorenzo:  Fai il consulente... rassegnati... ;-) _____________ Argomento molto interessante ! ! ! Provo a rispondere raccontando la mia esperienza personale. > ... prendo ordini da uno che  ... solo perchè lui è dipendente della società che mi da lavoro... cerco di decidere gli obiettivi insieme al cliente, di renderlo consapevole delle diverse possibilità e delle loro conseguenze (valtaggi/svantaggi) di coninvolgerlo nelle scelte. cerco anche di tenere chiari i rispettivi ruoli, gli input che ogniuno deve dare all'altro e gli output che devono essere prodotti e quindi le rispettive responsabilità. cerco di tracciare in ogni istante lo stato di...

I diversi livelli di maturità della Direzione

Ci sono diversi livelli di maturità nel saper guidare la propria azienda o il gruppo di sviluppo verso l'obiettivo che si è dato. Livello 1: Individuo estremamente capace Fornisce contributi estremamente produttivi grazie al talento, la conoscienza, le capacità e buone abitudini di lavoro. Livello 2: Membro del gruppo disponibile Mette a disposizione del gruppo le sue capacità individuali per il raggiungimento degli obiettivi del gruppo e lavora efficacemente con gli altri facendo squadra. Livello 3: Direttore competente Organizza le presone e le risorse verso il raggiungimento l'efficace ed efficiente di obiettivi predeterminati. Livello 4: Guida (leader) efficace Catalizza l'impegno e una forte volontà di raggiungere gli obiettivi indicati da una visione chiara e...

Le paure nel corso di un progetto - Parte II

  Ecco la II parte del precedente blog: Le paure nel corso di un progetto che come alcuni avevano notato introduce "la carta dei diritti del programmatore e del cliente" di Beck e Fowler! I Diritti del Programmatore Diritto di... sapere cosa è necessario fare svolgere un lavoro di qualità chiedere e ricevere aiuto dai colleghi e dal cliente fare stime di impegno accettare le sue responsabilità I Diritti del Cliente Diritto di... ricevere un piano dei lavori avere il maggior...

Le paure nel corso di un progetto

Le Paure del Programmatore Paura... di dover fare più di quello che si sa fare di ricevere indicazioni oscure su cosa bisogna fare che qualcuno chieda di fare cose senza senso di restare indietro dal punto di vista tecnico di avere responsabilità senza il potere di farvi fronte di sacrificare la qualità per rispettare i tempi di dover risolvere problemi difficili senza aiuto di non aver abbastanza tempo per risolvere...

Le Slide sono disponibili!!!

I posti disponibili per registrarsi all'evento sono andati esauriti in soli 3 giorni e molti non hanno potuto partecipare, credo quindi sia notizia gradita: le slides dell'evento sono disponibili qui. A mio avviso l'intervento di Joseph Perlin è stato stellare e da non perdere sono gli spunti interessanti relativi al rapporto col cliente usando i Metodi Agili (XP, SCRUM), le paure dei programmatori e del cliente e la carta dei diritti del cliente e dello sviluppatore (da tenere appesa in ogni ufficio!!!), le valutazioni di compatibilità caratteriale nelle coppie di Pair Programming, gli spunti per iniziare a mettere in pratica XP, gli spunti illuminanti su Refactoring,...

Progettare software, la realtà italiana e della community .NET

In chat con alcuni colleghi preparati ed esperti ho potuto scambiare opinioni sulla realtà italiana dello sviluppo del software ed in particolare la realta della commnity di sviluppatori .NET. Riccardo Golia ha riassunto ottimamente le varie opinioni nel suo blog: Uno spunto di riflessione dalla chat MVP: la progettazione del software. Presto avrò modi di raccontare come ho potuto iniziare a mettere in pratica in forma graduale i buoni principi dii gestione di un progetto, progettazione e implementazione ossia mettere in pratica i valori di eXtreme Programming e le sue tecniche. Questo aspetto tecnico è molto interessante. La cosa però che + mi ha sorpreso in questa impresa (esperienza) è...

Team distribuiti per applicazioni concentrate II

     visto ke è passato inosservato ne aprofitto per segnalare questo blog Sviluppo collaborativo di Software che suggerisce modi e strumenti per lavorare in maniera efficace e gradevole con team distribuiti.    scopo del documento li indicato è proprio quello di dare risposte alle difficoltà esposte nel blog Team distribuiti per applicazioni concentrate di Andrea.    l'argomento cade sotto il filone detto "lavoro collaborativo supportato da computer" (CSCW) che promette importanti sviluppi futuri.     Tags :  Team Work | Tools |