Craig is at YOW! West in Perth and sits down with Dr. Anita Sengupta, a rocket scientist and aerospace engineer at NASA Jet Propulsion Laboratory (and since this interview was recorded now a Senior Vice President at Hyperloop One). They geek out talking about space exploration as well as the important topic of diversity:
When you are doing something for the first time, you have to come up with out of the box solutions – first you need to make it work, and then you need to make it last
The biggest issue is to get enough people into the pipeline from under-represented groups, one thing we can do is more public outreach at the school level
You come up with more interesting solutions when you work with diverse teams, and, when you intersect with other universes you learn so much
Communities of practice are about building knowledge, giving people support networks they need to give them the confidence to do their jobs well and making that practice better and as good as it can be
Most communities of practice are organic but they tend to be closed and often lack direction
Having an idea of who the community is for and why it is exists, get people together and regular diary times are essential
Distributed communities work but face to face is always best because it builds trust faster
Agile Team Onion is all about communication and thinking about the Agile team and about how you pragmatically communicate with the rest of the organisation – a modern day RACI
The word agile means a lot of things to a lot of people that frightens them – how do we take a step to making things better without shoving it down their throat
Test Driven Development is something you learn over very many difficult weeks or months, it is a hard concept to teach, it is becoming more accepted but still slowly
“Clean Code” – had to abandon a tradition in software development when writing this book and laid out rules telling people what to do
“The Clean Coder” – was a backlog from “Clean Code” about how to be a professional programmer
The ranks of programmers are doubling every 5 years, so half the people doing the work have less than five years experience, the industry is in a state of perpetual inexperience
Craftsmanship movement began as a response to the technical community feeling like they were kicked out of the “agile” house that they built as it became more about people and process – the desire is to bring the two camps back together
Kent Beck said “The goal of agile was to heal the divide between technology and business” – the focus has been mostly on the business side
We need a set of ethics and standards that define a profession for software development – the agile and software craftsmanship communities are the right ones to do this as it needs to be done by practitioner
Craig and Tony were privileged to be asked to be the keynote speakers at LAST Brisbane 2018. This is the audio from the keynote with introductions from long time listener Dave Pryce. You can follow along with the slides below:
There are anti-patterns with doing XP at scale, continuous delivery was born from the learnings from that
Continuous delivery is just extending continuous integration to more of the software development practice (and continuous integration requires test driven development)
Continuous delivery works because it is the application of the scientific method to software development
If you work in an iterative, imperative, experimental way and you take continuous learning seriously and take cycle time as a serious measurement you will naturally drive out agile, lean, systems theory and DevOps
Most common two ways to introduce continuous delivery to your organisation – need to get cover from senior management to make change or you do it secretly at the grass roots – the fast feedback cycle is important (build feedback in about 5 minutes and ready and deployable in about an hour)
DevOps is a terrible name – we are talking about collaborative cross functional teams and it is more than just developers and operations
Continuous delivery is focused on shortening the feedback cycle from having an idea to getting the idea into the hands of users and figuring out what our users make of the idea – that’s software development, to do whatever it takes
Continuous delivery is working in a way so that my software is always in a releasable state, continuous deployment is if all my automation says my software is in a working state I can just automatically push it to production
We have data to show that continuous delivery makes high quality software faster, creates more money for the organisations that use it, reduces defect rates significantly and makes people working in that environment happier
It changes the way you design, approach databases and the way you test
Continuous Delivery tools still aren’t mature enough
The deployment pipeline is a seriously strategic resource because it is your only route to Production – need to be able to version and test it like any other Production code
It’s as much about the culture of the team than it is about the technology, it frees teams up to do experimentation
Craig is at YOW! Conference in Sydney and talks science and psychology with Dr. Brian Little, author of “Me, Myself and Us” and professor at Cambridge University and Carleton University and they analyse:
There are 5 dimensions of personality – OCEAN – openness, conscientiousness. extraversion, agreeableness and neuroticism
Biogenic features of personality – neurophysiology, sociogenic and idiogenic
We can often act out of character, we are not bound by our biochemistry
What are the core projects in your life that drive your behaviour
Skeptical of personality tests at work such as Myers-Briggs because the results are not fixed, they are good for starting a conversation but deadly if they conclude a conversation
Don’t just ask “How are you doing?” but ask “Really, how are you doing?” to show that you are taking an interest and care in your people and their projects and aspirations
We need to look at the research in this space to find exercises that we can use in the workspace to better help and understand our people
“Me, Myself and Us” is written for the person who is waiting in Starbucks for that friend that is late again
Rob, Declan, Daya, Braiden and Homad all enjoyed Dr. Brian Little’s “Personalities at Work” keynote, Andrea Burbank’s fast paced talk and the benefits of volunteering at a big tech conference
Evolutionary Architecture is the next stage on applying Agile practices to software development at the systems level and be able to respond to changes in the environment that affect the architecture
Need to determine for your system what constitutes good, fitness functions are the documentation and tests to ensure your system meets those characteristics
Need to move the needle on architecture, need to develop tools and techniques to decompose the role
CTO role is more now to set technical direction by setting up communication channels to mine insights that can be rolled out and presented to the market
ThoughtWorks Tech Radar started as a hot technology list of what ThoughtWorkers would love to work on, became a visual radar that is now released twice a year, starts with 250-300 items and they try to get it down to 100 items, something will fade after being in the adopt ring more than twice, the radar is also available as an open source tool or radar as a service
Women leave technology at double the rate as men leave technology, mostly because they are not treated well in the environment
Working Effectively with Legacy Code originally started as a book about Test First Programming but morphed into a book about the techniques for refactoring code in legacy systems
The Pinned Progress Curve – for many people there is no incentive to change so the mean gets larger between the status quo and good practices
Organisations that have technical founders have a very different character to their work internally, need to make knowledge of the quality of software more pervasive – the business need to understand more about the technical side, and the developers need to understand more about the business
Code that has excessive error handling typically has other design problems – benefit in thinking about whether certain things should be treated as errors or not
Entropy happens in all systems, including code, so technical debt is not a surprise, need to make the case for hygiene, putting a dollar amount on technical debt does not add much value
Use low impact probing to determine whether code is dead
Potsel’s Law – an implementation should be conservative in its sending behaviour, and liberal in its receiving behaviour
State of quality is improving and there is more recognition to build quality in
Property based testing is becoming more prevalent as we move from object oriented to functional languages
Holacracy was designed by a software person, Sociocracy talks about applying democratic principles to governance, these are all interesting experiments
It can be hard to recognise if something is intrinsically difficult or not something you are familiar with
We weren’t really battling waterfall, it was the lack of any process at all…