The Modern Developer’s Processes
The Need for Clearly Defined Processes
Software Development is inherently complicated.
Even the simplest of projects consists of many components that all need to work together.
If you are the only developer on the project then managing all the complexities could be done in your head or with simple notes to yourself.
If there are more than you, communication and coordination is essential to the success of the project.
The level of complexity becomes exponentially more complicated as the sophistication of the project grows.
The success of a project depends on managing the complexity of the development efforts.
In the book Code Complete 2, Steve McConnell states:
“Software’s Primary Technical Imperative is Managing Complexity”
Edsger W. Dijkstra in 1989 stated that a single person working on a software development project needs to grapple with anything from one bit to a few hundred megabytes: this is 9 orders of magnitude.
Given that software is always increasing in complexity, Steve McConnell postulates that this figure could be as much as 15 orders of magnitude or more today.
Dijkstra continues with this thought:
“The consequence of this statistic is that no one brain can store all the details of a modern computer program.
Programs should therefore be organized in a way to allow us to safely focus on one bit at a time.”
Any successful development process needs to comply with these concepts:
There is no completely right way to create software, there is no completely wrong way as well.
Five decades of software development has taught us, through costly failures, what processes work well.
The Modern Developer Website presents a collection of processes that have a greater chance of success than no defined processes at all.
The methodologies, processes and procedures presented represent the belief of the author of this site.
After over three decades, and some serious involvement with failing projects, the road map presented is based on successes realized.
There are 100 Ways to Do Anything …
… But Only a Few Ways to Do Them Successfully
The following two tabs change content below.
I am a Principal Architect at Liquid Hub in the Philadelphia area specializing in Agile Practices as a Certified Scrum Master (CSM). I use Test Driven Development (TDD) and Acceptance Test Driven Development (ATDD) with Behavior Driven Development (BDD) as my bridge to Agile User Stories Acceptance Criteria in a Domain Driven Design (DDD) implementing true RESTful services