Developing a software project is definitely not like building a house. If you focus on the learning aspects instead of the simple building you'll probably discover something interesting and unexpected.
About meIn the IT ﬁeld since ZX SpectrumGenerally in large scale projects (I might be biased)Freelance consultant: NotOnlyCodeTrainer (Freelance & Skills MaBer + Zenika)Technical WriterBlogger: h9p://ziobrando.blogspot.comTwiBer: ziobrando My e‐mail: email@example.com
Part I Build softwareAbout the step forward done and the ones still to come
SoGwareComputer software, or just software is a general termprimarily used for digitally stored data such as computerprograms and other kinds of information read andwritten by computers. Today, this includes data that hasnot traditionally been associated with computers, suchas film, tapes and records.The term was coined in order to contrast to the old termhardware (meaning physical devices); in contrast tohardware, software is intangible, meaning it "cannot betouched". Software is also sometimes used in a morenarrow sense, meaning application software only.
Main Entry: soft·warePronunciation: ˈsȯft-ˌwerFunction: nounDate: 1958: something used or associated with and usuallycontrasted with hardware: as a : the entire set ofprograms, procedures, and related documentationassociated with a system and especially a computersystem; specifically :computer programs b : materialsfor use with audiovisual equipmentA computer program tells a computer what todo. It is a sequence of instructions to beexecuted in order. A computer program consistsof a set of instructions that the computerunderstands.
Hardware: the computer part that gets hit when the soMware crashes
In 2010 (in Italy)‐ ...a bank to bank payment sUll takes from 2 to 5 days (even with some recent good news)‐ ...I sUll can’t change a composite train Ucket online‐ … more funny things I probably can’t reveal
One product ‐ one team one product owner with a high level vision of the product a team with all the necessary skills to realize the product
for es s Ar ma in us st ch Xo B ite n ly Project ct na r designe Web A Manager istec UX ial QAsp Cu sto Developers Arc me r Coach hite ct
Have we got all the skills? skill or roles?Have we got the structures to work together? Are the resources all available? How? Under whick contract? where? when? ...
Part III LearningDoing our job better means doing our job well
Noop.nl big Agile PracXces Survey: “Build a system metaphor” among the less used agile pracUces
...what if we try to see it in a diﬀerent way?soMware is a side eﬀect of a learning process
• Eliminate waste ‐‐> what is really necessary? Reduce the cogniXve load• Amplify learning ‐‐> amplify learning 2 == learning to learn• Decide as late as possible … :‐/• Deliver as fast as possible ‐‐> short iteraUons, creaXve collaboraXon with domain experts, experience on the ﬁels• Empower the team ‐‐> empower the team• Build integrity in ‐‐> learn consistently• See the whole ‐‐> no specialists –
Can I plan learning?Can I learn faster?Can I learn less things?
The Rosenthal experimentThree students group selected as “best of breed”Three teachers selected as “best of breed” Excellence objecUves ObjecXves accomplished
The Rosenthal experimentThree students groups selected randomlyThree teachers selected randomly Excellence objecUves ObjecXves accomplished
What to learn? Problem Domain Conventions Admin dutiesPMP Legacy code Office space Project Management Agile XP TDDCMMI SOA Domain Driven Design CQRS Web 2.0 EDA Scrum Software Craftmanship Kanban Back to Basics System Thinking JQuery Git User ExperienceRuby languages Scala Erlang Information Architecture