Knowledgebase

Viewing articles tagged 'softwareengineering'

Agile, Scrum and Kanban: Everything That Matters, Briefly The summary.THE TEST OF WHETHER YOU ARE ACTUALLY WORKING ITERATIVELYWhen did you last change... Anti-Patterns Common structures that cause harm.THE BIG BALL OF MUDNo discernible structure. Everything reaches... Applying Patterns Sensibly Judgement over catalogue.WHAT TO DO FIRSTWrite the straightforward solution.WHYMost code needs no... Approaching a System Design Problem A method.WHAT TO DO FIRSTEstablish the requirements, rather than proposing a design.WHAT TO... Architectural Styles Compared Common structures.MONOLITHICOne deployable unit containing everything.Simple to build, deploy and... Automating With Platform Pipelines Continuous integration on hosted platforms.WHAT PIPELINES DORun defined steps automatically when... Behavioural Patterns How objects interact.WHAT PROBLEM THEY ADDRESSDistributing responsibility and communication... Choosing Between Scrum and Kanban Which suits your work.WHAT SCRUM SUITSWork that can be planned in fixed increments Teams needing... Code Quality: Everything That Matters, Briefly The summary.CODE IS READ FAR MORE OFTEN THAN IT IS WRITTENSo optimise for the reader. Clever code... Common Architectural Mistakes What goes wrong.DISTRIBUTING A SYSTEM THAT DID NOT NEED ITAdding network calls, partial failure... Comparing Git Hosting Platforms GitHub, GitLab and Bitbucket.WHAT THEY ALL PROVIDEHosted repositories Pull or merge requests,... Contributing to Open Source Software Participating well.WHY IT IS WORTH DOINGReview by experienced practitioners Exposure to... Creational Patterns Controlling how objects are made.WHAT PROBLEM THEY ADDRESSCreating objects in a way that is... Deciding When to Take on Debt Deliberate compromise.WHEN IT IS DEFENSIBLEA genuine deadline where being late costs more... Definition of Done and Quality Gates Agreeing what complete means.WHAT A DEFINITION OF DONE ISThe conditions every item must satisfy... Design Patterns: Everything That Matters, Briefly The summary.PATTERNS ARE A VOCABULARY, NOT A GOALApplying them because they are known produces... Designing a Kanban Board Visualising the work.WHAT THE BOARD SHOULD SHOWEvery stage work passes through Every item... Designing Communication Between Components How parts interact.WHAT SYNCHRONOUS COMMUNICATION ISA caller waits for a response.What it... Designing Data Storage Where information lives.WHAT TO ESTABLISHWhat data exists, and how it relates How it is read, and... Designing for Consistency Agreement across a system.WHAT STRONG CONSISTENCY MEANSEvery read returns the most recent... Designing for Observability Understanding a running system.WHY IT MATTERSYou cannot operate what you cannot see, and problems... Designing for Reliability Systems that keep working.WHAT AVAILABILITY MEANSThe proportion of time a system is usable.WHAT... Designing Systems That Scale Handling growth.WHAT VERTICAL SCALING ISA bigger machine.What it provides: simplicity, and no... Development Lifecycle: Everything That Matters, Briefly The summary.REQUIREMENTS BECOME CLEAR THROUGH USEWhich is why iterative approaches suit most... Documentation: Everything That Matters, Briefly The summary.DOCUMENT WHAT THE CODE CANNOT ANSWERWhy it was done that way, what was rejected, what... Documenting APIs and Interfaces What others depend on.WHAT TO DOCUMENT FOR EVERY ENDPOINT OR FUNCTIONWhat it does What it... Documenting Architecture Decisions Recording why.WHY IT MATTERSArchitecture decisions are questioned for years, and the reasoning is... Documenting for Operations What the people running it need.WHAT THEY NEED TO KNOWHow to deploy it How to roll it back How to... Essential Git Operations The daily commands.WHAT TO KNOW FIRSTChecking the current state Seeing what has changed Staging... Establishing Coding Standards Consistency across a team.WHY THEY MATTERConsistent code is read faster, and differences become... Estimating Software Work Predicting effort.WHY ESTIMATES ARE WRONGThe unknowns are discovered during the work, not... Evolving Architecture Over Time Change without rewriting.WHAT TO EXPECTThe architecture will need to change, and the original... Gathering Requirements Finding out what is needed.WHY IT MATTERS MOSTBuilding the wrong thing correctly is the most... Git Branching Strategies Organising parallel work.WHAT A BRANCH IS FORIsolating work in progress from what is... Handling Changing Requirements Change as normal.WHY REQUIREMENTS CHANGEUnderstanding improves Circumstances change Seeing... How Git Works The model beneath the commands.WHAT GIT STORESSnapshots of the entire project at each commit, not... Identifying Technical Debt Finding what costs you.WHAT TO LOOK FORAreas everyone avoids changing Changes that consistently... Keeping Documentation Current The maintenance problem.WHY DOCUMENTATION DECAYSIt is separate from the code, and nothing forces... Managing a Product Backlog Ordering what to build.WHAT IT ISAn ordered list of everything wanted, with the most important... Managing and Repaying Technical Debt Addressing it sustainably.WHAT DOES NOT WORKRequesting a period to fix everything.WHYIt is rarely... Managing Complexity The central problem.WHY COMPLEXITY IS THE CORE ISSUEEvery system becomes harder to change as it... Managing Dependencies on Open Source Relying on others' code.WHAT THE RISKS AREAbandonment Breaking changes Security vulnerabilities... Managing Scope and Change Handling shifting requirements.WHAT SCOPE CREEP ISWork growing without time or resources... Managing Stakeholders The people with an interest.WHO THEY AREUsers The people paying Managers accountable for the... Merging and Rebasing Integrating changes.WHAT MERGING DOESCombines two branches, creating a commit with two... Modelling Requirements Representing what is needed.WHY MODELS HELPA diagram frequently reveals gaps that prose... Monorepositories and Multiple Repositories How to divide code.WHAT A MONOREPOSITORY ISSeveral projects in one repository.WHAT IT... Naming Things Well The most underrated skill.WHY IT MATTERSNames are the primary means by which code explains... Planning Software Work Deciding what to build and when.WHAT TO ESTABLISH FIRSTThe goal, and how you would know it was... Platforms and Open Source: Everything That Matters, Briefly The summary.BACK UP YOUR REPOSITORIES INDEPENDENTLY OF THE PLATFORMAccount loss or platform... Preventing Debt Accumulation Keeping it manageable.WHAT PREVENTS ACCUMULATIONAutomated tests, so change is safe Code review,... Prioritising Requirements Deciding what matters.WHY IT IS NECESSARYEverything cannot be built first, and treating... Quality Attributes and Non-Functional Requirements What the system must be, not only do.WHAT FUNCTIONAL REQUIREMENTS DESCRIBEWhat the system... Refactoring Improving structure without changing behaviour.WHAT IT ISChanging the structure of code while... Repository Structure and Hygiene Keeping a repository usable.WHAT TO CREATE FIRSTThe ignore file, before the first... Requirements Engineering: Everything That Matters, Briefly The summary.PEOPLE DESCRIBE SOLUTIONS, NOT PROBLEMSAnd the solution they describe is frequently... Resolving Merge Conflicts When changes collide.WHAT A CONFLICT ISThe same region changed differently in two branches.WHY IT... Reviewing Code Effectively Examining each other's work.WHAT IT ACHIEVESCatching defects Spreading knowledge Maintaining... Running an Open Source Project Maintaining something others use.WHAT TO PROVIDEA clear description of what it does and does not... Running Daily Coordination Meetings The short daily meeting.WHAT IT IS FORThe team coordinating: what is blocked, what needs help,... Running Reviews and Retrospectives Inspecting the product and the process.WHAT A REVIEW DOESDemonstrates working software to... Running Sprint Planning Deciding what an iteration contains.WHAT IT ESTABLISHESA goal for the iteration What work will be... Separation of Concerns and Boundaries Dividing a system.WHAT A CONCERN ISOne aspect of what the system does.WHAT SEPARATION... Sequential and Iterative Approaches Comparing the models.WHAT A SEQUENTIAL APPROACH LOOKS LIKEEach stage completed and approved... Software Architecture: Everything That Matters, Briefly The summary.ARCHITECTURE IS THE DECISIONS THAT ARE EXPENSIVE TO CHANGEWhich is what distinguishes... Software Engineering: Everything That Matters, Briefly The whole category in one page.WHAT SEPARATES ENGINEERING FROM PROGRAMMING IS TIME AND OTHER... Software Maintenance and Evolution After the first release.WHAT PROPORTION OF EFFORT MAINTENANCE ISThe majority of a system's total... Structural Patterns Composing objects.WHAT PROBLEM THEY ADDRESSCombining objects into larger structures without rigid... System Design: Everything That Matters, Briefly The summary.ESTABLISH REQUIREMENTS AND MAGNITUDES BEFORE PROPOSING A DESIGNRough numbers are what... Technical Debt: Everything That Matters, Briefly The summary.ONLY DELIBERATE, RECORDED COMPROMISE IS ACTUALLY DEBTConflating it with everything... Testing as a Quality Practice Verification built in.WHAT TESTS PROVIDEConfidence that behaviour is correct The ability to... The Cost of Change Over Time Why early decisions matter.WHAT THE PATTERN ISA defect or misunderstanding costs more to correct... The Discipline: Everything That Matters, Briefly The summary.WHAT SEPARATES ENGINEERING FROM PROGRAMMING IS TIME AND OTHER PEOPLECode written once... The Software Development Lifecycle The stages of building software.WHAT THE STAGES AREUnderstanding what is needed Designing a... Trade-Offs in Engineering Decisions There is no best option.WHAT EVERY DECISION INVOLVESGaining something and giving up something... Understanding Clean Architecture Dependencies pointing inward.WHAT THE CORE IDEA ISBusiness rules at the centre, with everything... Understanding Design Patterns What they are and are not.WHAT A PATTERN ISA named, documented solution to a problem that... Understanding Domain-Driven Design Modelling the business.WHAT IT ISAn approach to designing software around a model of the business... Understanding Kanban Managing flow.WHAT IT ISA method for visualising and managing work, focused on flow rather than... Understanding Open Source Licensing What terms permit.WHY IT MATTERSUsing code without complying with its licence creates legal... Understanding Scrum A framework for iterative delivery.WHAT IT ISA framework organising work into fixed-length... Understanding Technical Debt The metaphor and its limits.WHAT IT ISThe future cost of a decision taken for short-term... Undoing Changes in Git Recovering from mistakes.WHAT TO ESTABLISH FIRSTWhether the change has been shared.WHYThat... Using Issue Tracking Recording work and defects.WHAT AN ISSUE SHOULD CONTAINWhat the problem or request is Why it... Using Pull and Merge Requests Proposing changes.WHAT THEY AREA proposal to merge a branch, with discussion and review before it... Using Tags and Managing Releases Marking versions.WHAT A TAG ISA permanent label on a specific commit.WHAT IT IS FORMarking... Validating Requirements Confirming you understood.WHAT VALIDATION ESTABLISHESThat the requirements describe what is... Version Control and Git: Everything That Matters, Briefly The summary.VERSION CONTROL IS NOT A BACKUP BY ITSELFA repository on one machine is lost with... What Agile Actually Means The principles beneath the practices.WHAT IT ISA set of values about how software is built, not a... What Makes Code Good Qualities that matter.WHAT GOOD CODE ISCode that someone else can read, understand and change... What Software Architecture Is Structure and its consequences.WHAT IT ISThe decisions about structure that are expensive to... What Software Engineering Is Beyond writing code.WHAT PROGRAMMING ISWriting instructions a computer executes.WHAT SOFTWARE... What to Document and What Not To Deciding what is worth writing.WHAT DOCUMENTATION IS FORAnswering questions the code cannot... Why Software Projects Fail The common causes.BUILDING THE WRONG THINGThe commonest cause, and the most expensive.Nobody... Why Version Control Matters The foundation of collaboration.WHAT IT PROVIDESA complete history of every change The ability to... Writing a Good Readme The first thing anyone reads.WHAT IT MUST ANSWERWhat is this? Who is it for? How do I set it up?... Writing Clear Requirements Stating what is needed unambiguously.WHAT A GOOD REQUIREMENT ISSpecific Testable Free of... Writing Good Commits Recording changes well.WHAT A GOOD COMMIT ISOne logical change, complete in itself.WHY THAT... Writing Readable Functions Small units with one purpose.WHAT A FUNCTION SHOULD DOOne thing, at one level of abstraction.WHAT... Writing User Stories Describing work from the user's view.WHAT A USER STORY ISA short description of something a user...
Back

Are you happy with your experience? Leave us a review on Trustpilot.


Trustpilot