This is the intial story on a series of posts that explain changes ongoing in the software industry and highlights changes in the domain of Web technologies. Future stories include mobility, browser related stuff and discussion on openness.
However, before moving to technology domain, I think it’s worth of mentioning new kind of working practices used in software industry. Many public organizations still use what’s called Waterfall development model. In this model, the product is designed and scoped before moving to the development phase. After that, the product is tested, fixed and delivered to use. Each step follows the other, therefore the name of waterfall. In practice the scoping of a software system is less successful and the results of these projects are usually longer delivery times and poorer product quality.
So, this is the time to discuss about Agile software philosophy. This approachs highlights the importance of constant delivery and customer interaction during the software development project. They develop software in short iterations, something like a week or two. The iteration ends in a working product that can be used, and is often put in use already as such. Each iteration will focus on certain aspects of the product, and slowly and steadily the software matures, new features are added based on users’ real feedback.
What are the main differences and why should you care? The first difference is the speed of delivery: in the modern era first releases of the software should come in weeks and months, not in months and years. And, the software evolves — therefore, the real users can have their say, and the features most needed can be prioritzed first. This means that there effort is put in correct and important things and the software can be taken in use faster. Therefore, you know quicker if the software is doing what it was supposed to do and can change your plans.
Secondly, even while you might be thinking that software development is not in the core of your business — you may consider that you’re in the business of content production, teaching or facilitating meetings. However, I argue that you most likely are also in software business. Since digitality is a dominant in our society, you need to understand and have competence in it. You must be able to support fast adaptation and emerging needs in your organization. Software will be a major part of your business soonish.
Time for concluding remarks. Firstly, I have argued that software has a significant role in education domain, and skills in software will be mandatory in the future. Secondly, I have argued that software must be developed using modern, flexiple approaches. Currently, practices such as extream programming, lean development, kanban and agile are used to deliver software faster and responding to chages quicker. Naturally, each organization adapts something more of their own mix of these practices.
Further reading
- Mary Poppendieck & Tom Poppendieck (2003): Lean Software Development: An Agile Toolkit. Addison-Wesley Profession
- Eric Ries (2011): The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses. Crown Publishing
- Fred P. Brooks (1986): No Silver Bullet — Essence and Accident in Software Engineering. Proceedings of the IFIP Tenth World Computing Conference: 1069–1076.