Why Agile?

I have 8-years of professional career on software development in a diverse range of roles such as software developer, and technical analyst (in other words systems engineer) in defense industry. In defense industry, as you can imagine, most of the contracts are huge. At the end, the contractors delivers very big systems such as fighter aircrafts, command and control systems, and missile systems etc.

Let's have a brief look at how today's defense industry companies develop softwares. It's obvious that this is based on my experience and what I saw during my career.

First of all, after the bidding phase there is a CAW (Contract Award) milestone which means the purchaser announces that you win the conract. Most of the contracts forces you to apply traditional approaches like waterfall. After the CAW, probably you will conduct a kick-off meeting with the purchaser. This means the project is started officially and your calendar is effective. During the project, you as the company should achieve some important milestones time to time:
  • Requirements Review Meeting: You need to baseline your requirements. This activity also requires very heavy documentation to reach this point.
  • Design Review Meetings: You will probably achieve two design meetings, one for preliminary design and one for critical design which both baselines your design on the very early stages of the project.
  • Test Review Meeting: You need to provide your full test cases to achieve this milestone. This means that you will start testing phase.
There are some mistakes in this approach:
  • You have to baseline your requirements and your design on the very early stages of the projects. For example, you should finalise your design in the first year of a 5-years long project.
  • Technology probably may change in 5-years time and you don't need to apply those changes to your software, because your contract may not force you to do this. What a shame for the company!
  • If you want to change your requirements and evolve the design, you need to apply another process, Change Management, to record and keep track of the changes. Of course again, heavy documentation.
  • Some companies try to apply agile methodologies like Scrum on a waterfall contract. I give a name for this type of methodology: Scrumfall! It sounds so funny! You need to achieve some milestones in a waterfall approach, at the same time you are saying that we are using Scrum. Are you kidding?
I can increase the number of such examples for the mistakes, but I guess this is enough. Let's go back to title of the article: Why Agile? I believe that, Agile is the only solution:
  • Agile improves customer involvement. You can involve your customer into the process at every stage of the project instead of only involving them to milestones.
  • Agile increases the quality of the product. In short time periods, developing some part of it, and getting the feedback from customer makes your product more qualified.
  • Agile drive down risks. If you develop the risky parts first, your customer can give feedback on earlier stages. This provides you a good way of mitigating the risks.
  • Agile increases operational awareness. Think of a 5-years project, you will deliver the whole software at the end of this period if you use traditional methods. The users of it will try to get used to how the system works after this long time period. Probably, you will need to conduct a lot of training sessions, follow-up meetings etc. On the other hand, if you use Agile, you may deploy small functional parts time to time, and at the end of 5-years, the users are already familiar to the software.
  • Agile simplify releases. Agile forces you to use continuous integration and automated test techniques to reduce the costs for integration and testing. So if you setup your environment at the beginning, this means that you don't need to spend to much time later.
Finally, Agile fits to today's fast changing nature of the software development. It increases your ability to respond the changes quickly and to meet the expectations of the customers. Therefore, defense industry companies should definitely change their software development methodologies with Agile one!

Hiç yorum yok:

Yorum Gönder