July 1st, 2007 is a monumental day for Zend and their developers. It’s the day when Zend Framework 1.0, the first stable version of the framework, was released to public. What’s with the fuss?
It’s important for a business entity (eg. company) to make sure the business process run smoothly and profitable during the whole cycle. A lot of components are involved in company operation which determine company success, one of them is software (yes, we’re talking about modern companies). For technology-driven company, software provision and implementation is crucial. Software is not only for administration use, it solidifies and improves business process.
Now we’ll get the scope smaller by emphasizing software lifecycle processes on companies which provide web-based service or consider web existence as business image. Serious companies follow certain standard in its operation. By using standard, it will be able to measure the whole process and assess whether the operations succeeded and desired outcome achieved. Talking about software cycle, there are several evolving models used to reflect the software cycle, from the old Waterfall model to international standard ISO/IEC 12207.
In general, software development cycle are typically divided into the following process activities:
- Domain analysis
Is the task of analyzing related software systems in a domain to find their common and variable parts - Software element analysis
Is the task of extracting the requirements (especially incomplete, ambiguous or contradictory requirements) by skilled and experienced software engineers - Specification breakdown
Is the task of precisely describing the software to be written, possibly in a rigorous way - Software architecture design
Is the task of constructing structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships between them - Implementation (or coding)
Is the task of transforming design (the specification) into codes based on the architecture modeled - Testing
Is the task of measuring the quality of developed software. Usually, quality is constrained to such topics as correctness, completeness, security, but can also include more technical requirements as described under the ISO standard ISO 9126, such as capability, reliability, efficiency, portability, maintainability, compatibility, and usability - Documentation
Is the process of documenting the internal design of software for the purpose of future maintenance and enhancement and explaining how to operate or use the software to people in different roles - Software training and support
Is the task of training most enthusiastic software users (to build excitement and confidence), shifting the training towards the neutral users intermixed with the avid supporters, and finally incorporating the rest of the organization/community into adopting the new software - Maintenance
Is the process of maintaining and enhancing software to cope with newly discovered problems or new requirements
What’s interesting from the above points in accordance with this post is the existence of PHP as an alternative language for web development and deployment at the enterprise level.
Large Apps Need Framework
PHP and Java are both open source, but they go through different paths in software development. Java is considered enterprise platform while PHP is often considered as a choice for hobbyist and small to medium company. Although more and more web apps are created with PHP language and PHP gets more popular among web developers (except the recent negative trend in Google search), not many big companies consider PHP as a serious candidate for their critical web apps (Yahoo is there, but it’s only one).
For big projects and apps, code reuse is important. It can save several hours needed to build libraries and routines. Thousands of man hour saved implies efficiency in business as extra expenses on labour can be avoided. As a language, PHP lacked robust application framework to be used as a foundation for large apps. Several tries have been made and each offers nice functionalities and features.
Why Zend Framework among other available options? When a development team in a company choose a framework to streamline the development process, they should be aware about the existence of third party component, hence the framework, in their custom application. The following criteria need to be met before choosing the framework:
- The framework is on steady development phase
This means that the framework has clear roadmap and milestones. As implication, a single-person-work framework hardly meets this criterion. - The framework has top quality
This implies to the framework be written by those who not only know what they are doing but also are savvy in the field. By producing quality code, application to be made will have solid foundation thus making failure and error detection more localized to the upper layer - The framework is thoroughly tested
Several tests need to be conducted before the framework is shipped to public. The tests cover unit test and stress test for code’s behavior consistency and and beta test for receiving input from larger audience - The framework is well documented and sufficient use cases are provided
Working with external component with insufficient document and use cases is a pain. It’d better find another one with better documentation than increase the inefficiency by learning the logic behind. - The framework is backed up with strong financial aid
By strongly funded, it will implicitly hint steady development on the framework, give guarantee for companies that the development won’t stop after certain time or phases - The framework has owner, which is a legit entity
It’s important for a company to get first-class support for their third party component. By knowing that a framework, which is a third party component for them, is owned by a legit entity, they’ll get warranty that support and service for the framework are handled professionally by an entity, not unofficially through user forum or mailing list. - The framework is commercial license-compliant
This is crystal clear. By having a robust framework which can be shipped as a part of commercial app, the company has resolved the very first issue upon deciding to use external component in their application.
Fast-pacing On Zend Framework
With more than 250 expert contributors and growing communities, Zend Framework has evolved from collection of libraries in 2005 to robust use-at-will framework in 2007. Andi Gutmans from Zend even says that Zend Framework has exceeded his initial expectation. The development process is steady and milestones are achieved. With its BSD license, Zend Framework offers flexibility for commercial software company to ship their application bundled with or powered by Zend Framework without issues with licensing.
Recent partnership between Zend and IBM to develop PDT also brings more assurance about PHP enterprise support in the future. There could be possibility for Zend Framework to be included in PDT, let’s see.
If you are now developing enterprise app and teased with ease of use feature that PHP offers, Zend Framework can be a good choice for the new journey in enterprise application development.
Author’s Note:
This article is purely personal opinion. The author is neither associated with Zend Technologies nor professionally hired to advocate Zend Framework.