Programmers come in all kinds and sizes. But we’ve found that there is one major distinction that keeps us from working together: attitude. Optimistic programmers tend to come up with solutions quickly, while not always respecting the problem. Pessimistic programmers tend to come up with questions quickly, while not always respecting simpler solutions.
Working together can be difficult. But by explicitly diverging and converging we can find respect for each other and what we have to bring to the table. By working together we find better solutions than we could working alone.
We will group up in teams of four or five, in so called mobs, and work on a case study in pomodoro’s. We will first diverge, to give the optimists their moment in the spotlight, where they can create tempo and get some things done. Then we will converge and give the pessimists the power, where they can refine and get things done well. If you’re not sure what your attitude is, then we will help you discover it.
We will be helping MeetInc. Their current implementation of what a meetup is, is sorely lacking. And the business has come with new rules. We will use this opportunity to make the code reflect the domain of meetups better.
Your exact mission, should you choose to accept it, will be presented to you on GitHub shortly. And fear not, you are not alone. Your team is there with you, as are the business experts, who can answers all of your questions.
Topics include Refactoring anemic models to useful domain concepts, Divergence and convergence, Timeboxing
At Procurios, we do this workshop with new employees. We focus explicitly on divergence and convergence and discover what kind of programmers the participants are. Through mob programming both optimistic and pessimistic programmers discover the value of their counterparts. Working together with a common goal all participants learn to gradually apply simple, small-step refactorings and make their code better reflect the domain.
Participants require a laptop, at least one per mob. We will provide a starting framework in at least PHP.
What value do we bring to the participants? A basic understanding and hands-on experience with refactoring from anemic orm-entity-like models to valuable, insightful, engaging models A short but explicit experience with forced divergence (let everyone share their ideas) and convergence (pick an idea and go with it). The insight that, through refactoring, rules and logic trickle down to the simplest objects
We will start out with a short introduction, help everyone form teams of four quickly, and then go on to work for a couple of sessions. The first session will promote divergence. Participants in the mob are not allowed to interrupt the driver, but have to write their insights down or discuss them very quietly. The second session will promote convergence, where the team actively interacts and the driver is more of a voice-controlled keyboard. If there is time, the third session will allow each team some time to present their solution and struggles and experience.