Приглашаем посетить
Кулинария (cook-lib.ru)

Chapter 7.  Managing the Development Environment

Previous
Table of Contents
Next

7. Managing the Development Environment

FOR MANY PROGRAMMERS, MANAGING A LARGE SOFTWARE project is one of the least exciting parts of the job. For one thing, very little of a programming job involves writing code. Unlike the normally agile Web development model, where advances are made rapidly, project management is often about putting a throttle on development efforts to ensure quality control. Nevertheless, I find the challenges to be a natural extension of my work as a programmer. At the end of the day, my job is to make sure that my clients' Web presence is always functioning as it should be. I need to not only ensure that code is written to meet their needs but also to guarantee that it works properly and that no other services have become broken.

Enterprise is a much-bandied buzzword that is used to describe software. In the strictest definition, enterprise software is any business-critical piece of software. Enterprise is a synonym for business, so by definition, any business software is enterprise software.

In the software industry (and particularly the Web industry), enterprise is often used to connote some additional properties:

  • Robust

  • Well tested

  • Secure

  • Scalable

  • Manageable

  • Adaptable

  • Professional

It's almost impossible to quantify any of those qualities, but they sure sound like something that any business owner would want. In fact, a business owner would have to be crazy not to want enterprise software! The problem is that like many buzzwords, enterprise is a moniker that allows people to brand their software as being the ideal solution for any problem, without making any real statement as to why it is better than its competitors. Of course, buzzwords are often rooted in technical concerns before they become co-opted by marketers. The vague qualities listed previously are extremely important if you are building a business around software.

In this book you have already learned how to write well-tested software (Chapter 6, "Unit Testing"). In Chapters 13, "User Authentication and Session Security," and 14, "Session Handling," you will learn about securing software (both from and for your users). Much of this book is dedicated to writing scalable and robust software in a professional manner. This chapter covers making PHP applications manageable.

There are two key aspects to manageability:

  • Change control Managing any sitelarge or smallwithout a well-established change control system is like walking a tightrope without a safety net.

  • Managing packaging A close relative of change control, managing packaging ensures that you can easily move site versions forward and backward, and in a distributed environment, it allows you to easily bring up a new node with exactly the contents it should have. This applies not only to PHP code but to system components as well.


Previous
Table of Contents
Next