This post explores the process of understanding, building, and maintaining software. It discusses the importance of aligning as a team, communicating effectively, and constantly seeking feedback. Software is described as a medium of information and instructions that express the authors' understanding of real-world problems and their solutions.
Table of contents
Understanding softwareThis company writes softwareWhat is programming anyway?Software is:To write software effectivelyyou must understand:Code is communication with computers and humans.How do we invent that specific language to express a problem?Step 1: Understand the real-world problemWe share what we understand.Step 2: Analyze the problemStudy the dataStudy what people do with that dataStep 3: Ask how automating that with software would help.Deepen that computer-focused analysisNouns : how we structure our dataVerbs : how we transform that dataStep 4: Align a teamAlign technically on the details of our solutionTechnical alignment comes from:No one person ever understands the whole thingStep 5: Coordinate to write all those text files.Software development methodologies are under-studied .We know some things are bad… and some things are goodMost healthy projects do something agile-ish .Step 6. Get feedback .Can’t we just get it right the first time?Ways our map is wrongFeedback from testingFeedback from our customersStep 7. Ship it .What happens after you ship?Most of the cost of software is maintaining itLiving software systems must be operated .Living software systems must be changed .Changing software requires understanding itSuccess can be a catastrophe .All software has a lifespanCongratulations.Now do it all over again for the next product.recap: what is software ?recap: how do we build it?recap: what happens after we ship ?And that’s how we turn a napkin sketch into something that affects the physical world.Questions?Sort: