The eight subprocess of software development

Humans process information through information hierarchies and separation of concerns. Complex systems can be understood by breaking them down into connected components and analyzing each piece individually.

Frameworks to decompose processes are especially important when dealing with organically emerging processing. Organic processes are not organized logically and can reach arbitrary levels of complexity.

Since the Agile revolution, most software teams are self-organizing. This means the software development process emerges organically. Work needs to be done, people are hired, they do work, and patterns emerge.

I have identified eight components of the software development process. Each of these components can be understood and analyzed separately because they are loosely coupled. They are listed in the order in which they normally occur.

Hiring

It is not easy to find people who are competent, have growth potential, are motivated, and are fun to work with.

How do you decide who the organization will invest in?

Need identification

What customers want is often not what they need. The best way to understand customer motivations, actions, and expectations is to work closely with them.

How do you find out what the customer needs?

Work definition

Once the customer need is known, it needs to be defined as a problem an engineer can solve and prioritized against other tasks.

How do you decide what work is needed to satisfy the customer’s need? Which engineer will lead the implementation? When will work begin?

Work preparation

Work preparation is completed by the engineer who is assigned to lead the work. For small work items, work can begin immediately with no preparation. For larger work items, designs can be created and reviewed. Task breakdowns can be created to distribute work across multiple engineers. Launch checklists can be filled out to ensure a smooth release.

How is work prepared so software development can begin?

Software development

Once work is ready for implementation, the software can be written. This includes business logic, tests, documentation, and peer review. Alerts, monitoring, and playbooks may need to be created. New infrastructure may need to be set up.

How do you implement solutions to customer problems as code?

Software release

Work that is completed still needs to be delivered to customers. Working software needs to be supported when customers have issues or when software breaks.

How is working software delivered to customers? How are bad releases handled? What happens if software breaks during the middle of the night?

Adoption

The job is not done when the customer is able to satisfy their need. The job is done when the need is satisfied.

How do you know if a feature is adopted? How can you find out why a feature was not adopted?

Performance evaluation

Engineers usually know how each other are performing, but that information does not always reach leadership.

How do you know who is ready for more responsibility? How do you know who needs more support?

Knowledge Check by Prehend
Complex systems can be understood by breaking them down into connected _______ and analyzing each piece individually.

 

 

 

 

One thought on “The eight subprocess of software development

Add yours

Leave a Reply

Up ↑

Discover more from Max Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading