Design and Development
Every project will have a dedicated team consisting of the following members:
The working relationship between IRONIC3D and You will follow the agile and lean startup methodologies. To understand how those methodologies affect and dictate the relationship when building your product, a brief description of each is listed below.
There are two popular types of project management models practiced by development studios when building software, those are :
- The Waterfall model
- The Agile model
The Waterfall model
is the most popular with many older and well established development studios. It also has the biggest user-base of followers. The Waterfall model is a rigid sequential process for building applications, where an application build is broken down into many phases. Each phase has specific deliverables and a review process, and must be completed fully before the next phase can begin.
- Simple and easy to understand.
- Easy to manage due to its rigidity
- Phases are processed and completed one at a time. Phases do not overlap.
- Works well for smaller projects where requirements are very well understood.
- Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage.
- The client will not have a working software to test or review until late during the life-cycle.
- High amounts of risk and uncertainty.
- Not a good model for complex and object-oriented projects.
- Poor model for long and ongoing projects.
- Not suitable for the projects where requirements are at a moderate to high risk of changing.
- This model is used only when the requirements are very well known, clear and fixed.
- Product definition is stable.
- Technology is understood.
- There are no ambiguous requirements
- Ample resources with required expertise are available freely
- The project is short.
The Agile model
is a relatively new model, used widely in the StartUp world. It is a model that was designed by software engineers specifically to design and build software that meet clients' needs and wants.
Agile is an incremental model. A software is developed in incremental and rapid cycles. This results in small incremental releases with each release building on previous functionality. Each release is thoroughly tested to ensure that the software quality is maintained. It is used for time critical applications.
- Client satisfaction by rapid, continuous delivery of useful software.
- People and interactions are emphasised rather than process and tools.
- Client, developers and testers constantly interact with each other.
- A working software is delivered frequently (weeks rather than months).
- Continuous attention to technical excellence and good design.
- Regular adaptation to changing circumstances.
- Even late changes in requirements are welcomed.
- In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life-cycle.
- There is lack of emphasis on necessary designing and documentation.
- The project can easily be taken off track if the client is not clear on the final outcome they want.
- Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it has no place for newbie programmers.
- When new changes are needed to be implemented, the freedom agile gives to change is very important. New changes can be implemented at very little cost because of the frequency of new increments that are produced.
- To implement a new feature, the developers need to lose only the work of a few days, or even only hours, to roll back and implement it.
- Unlike the waterfall model in agile model very limited planning is required to get started with the project. Agile assumes that the end users' needs are ever changing in a dynamic business and IT world. Changes can be discussed and features can be newly effected or removed based on feedback. This effectively gives the client the finished system they want or need.
- Both developers and the client alike, find they also get more freedom of time and options than if the software was developed in a more rigid sequential way. Having options gives them the ability to leave important decisions until more or better data or even entire hosting programs are available; meaning the project can continue to move forward without fear of reaching a sudden standstill.
IRONIC3D will be using the Agile method for every product design and build, specifically the Scrum methodology. Scrum uses the real-world progress of a project — not a best guess or uninformed forecast — to plan and schedule releases.
The benefits of using Scrum for TM are:
- TM will be divided into many sprints, a single sprint typically last one, two or three weeks.
- At the end of each sprint, all stakeholders meet to assess the progress and plan its next steps.
- The advantage of Scrum is that a project’s direction is to be adjusted based on completed work, not on speculation or predictions.
In addition to the Agile Scrum methodology, IRONIC3D uses the Lean StartUp methodology. A lean product follows a learn – measure – build cycle, and conducts many tests, frequently connects with end users, understands their value and focuses its key processes to continuously improve it. A never ending cycle leads the product to sustainability, smart development and success.
Typically the Lean StartUp methodology is an in house division set up and managed by the client, it is never used by software design and development studios to manage client side projects, as the commercial viability of the product is the clients' sole responsibility.
IRONIC3D is the first if not only product design and development studio that uses the Lean StartUp methodology for building our clients' products. One of our main points of difference is that we are not only an agile company developing functional software solutions to meet client requirements, we also develop products that meet market demand and have higher chances of success. This is why, we dedicate a product manager for each project, as opposed to a product owner, to manage the product research and align it with the end users. For our artisan studio that relies on long term relationships and referrals, our success is tied to our client’s product success.