Right now more and more companies come to understanding that Software Development is not one-shot activity and the only way to stay competitive in current market - is to always to innovate, deliver new features/functions and make it more comfortable to use. As result of it - project development can span years and cannot be planed ahead properly. That was one of the reason behind of Agile rise, as it addresses those challenges, but big projects / enterprises still need something more formal to make development more predictable and consistent.

This model is published as Work In Progress. I am strong believer that communities are stronger than any individual and, in current era - when we all are "connected", some great solutions can be created together.

Evolution rather then Revolution

In today's world we build upon what people before us did: we try to use best practices, comply with best standards and follow industry procedures to stay competitive. This is right thing to do, in current fast paced world you cannot just throw away progress, you embrace it and improve upon it. Therefore a lot of text in here is based on existing practices, processes, procedures and doesn't try to cover topics which were already raised by them, but only seeks to improve upon them.

I believe that this model incorporates some ideas/practices from some existing methodologies/ideas/principles/practices/philosophies, some of which were created, used and forgotten (by some) by now. This is not Revolution - this is Evolution which, hopefully, would be able to change (a bit) processes/companies without anybody even noticing it...

There are a lot of frameworks, methodologies and models out there. In here you will find reviewed most significant ones

SDLC
One of the first software development process. It is associated mostly with Waterfall model and a lot of big/small projects were delivered using it. It is chosen for it’s control, visibility, planning and predictability from management point of view. It was preferred choice for big project in Enterprise environment. In current fast pacing and constantly changing market – its strength results in need to plan upfront, increased development cost/time and inability to adapt to changing requirements.
Iterative and Incremental Development (IDD)
Next “iteration” of software development methodology. It can have the same “steps” as SDLC, but it is more flexible in terms of planning, need to design upfront and is more adaptable to requirement change. As it’s father – it is proven to work for big projects while providing significant amount of control, visibility, planning and predictability attributed to it’s parent.
Agile
Current “iteration” of software development methodology. It is based on Iterative and Incremental Development model and was meant to be light, flexible, provide visibility and deliver product as fast as possible. It promotes multi functional teams, trust, motivation and collaboration. Currently it is the most widely used methodology in Software Development.
Future ?
As with everything – there are always two sides to coin - there are always constraints and there is always possibility to improve. I believe that software development can be improved and we should try to do it.
  • Iterative development
    • Is based on Iterative and Incremental development model and inherits it’s strength
    • Allows to perform Continuous Integration
    • Proven to be working for big projects
    • Formal enough for Enterprises, but informal enough to be feasible for middle/small sized projects.
  • Agile development
    • Permits requirement changes
    • Promotes rapid delivery
    • Believes in individuals and interactions over process and tools
  • Waste tracking
    • Tracking of waste on every stage
    • Removal of activities (or keeping it to minimum) which doesn’t bring value to customer
  • Talent and Innovation
    • Single vision/direction
    • Promotion of best people for the job
    • Decision are made by experts in the field
    • Improvement of cooperation by removing constraints/waste
  • Shared effort
    • Daily meetings
    • Decisions are made by pairs
  • Commitment
    • No more pigs and chickens – everybody is involved
Milestones
  • Every component delivery is a milestone for the project.
  • Every milestone goes through all stages – Requirements, Analysis, Design and Implementation.
Sub cycles
  • New cycle starts along with third phase (construction).
Pairs
  • Decision are made in pairs - improves cooperation, commitment and enables peer review.
  • Business and IT lead project together.
Cooperation
  • Business and IT work together on project while utilizing knowledge and expertise of each other.
  • Everybody is committed, therefore Business and IT make decision together.
Logs
  • Every important aspect is recorded and reflected upon end of the cycle

Risks log
  • Keeps track of Risks associated with the Project.
  • Risks log is updated at every checkpoint.
Issues log
  • Keeps track of Issues associated with the Project.
  • Issues log is updated at every checkpoint.
Debt log
  • Contains two sections – business and technical debt.
  • Every decision, with possible negative impact, ends up in relevant section.
  • Every debt entry have estimated impact (value) attached to it.
  • At end of cycle voting is taking place to visualise actual impact; later is it possible to identify estimated vs actual impact.
Checkpoints
  • Meetings which allow to add new entries to risks/issues/debt log.
  • Amount of checkpoints is flexible. Recommended amount is 4 (one per each phase), minimum is 1 (final checkpoint).
  • Final checkpoint is crucial in determining waste and defining recycle plan.
Recycle plan
  • Defines actions to be taken to avoid/remove/build around of issue/waste/constraint.
  • Every recycle plan is set to be implemented during next cycle.
  • Recycle plan from previous cycle is reviewed during planning (pupa) phase.

Below you can provide feedback, suggestions, questions regarding information posted on current page