The administration abundance chain, accepted for rolex replica uk its affordable accouterment and home apparatus offerings, is now peddling high-end artist accoutrement from above labels including, Chanel, uk replica watches and Zac Posen.The artist appurtenances will be awash on The Sears Marketplace through third-party vendors. The fake watches move may assume counterintuitive, but a Sears agent says it takes the administration abundance aback to its roots, which already included affairs cars.
UML does not equal BDUF – Failing Forward

UML does not equal BDUF

If everything was awesome…

As you might have gathered from other posts on this site, I am a software engineer (or architect, whatever). In this role, I am constantly trying to understand how best to deliver my designs to the programming teams for implementation. In theory, I think that the Agile movement, with its highly iterative, communication focused philosophy is pretty close to ideal. In my experience, the biggest hindrances to a project’s successful completion are due to lack of communication, or competing political agendas. By developing the project in the open, with all of the stakeholders able to voice concerns throughout, there are more opportunities to identify and resolve communication issues that might develop.


While the above statement is true, reality often throws in constraints that make the ideal untenable. I design software for a retail company. In this environment, our direct customers are often employees at our headquarters, but they are serving as proxies for the retail employees. In a typical project, we deliver software to them and, after they sign off on it, they create training material and prepare to introduce the software to the stores. In this reality, the cost of change after release is very high since there is a lot of work involved in the training. Rapid change cycles can lead to an enterprise level game of crack the whip. Since the people on the end of the whip are also the primary source of revenue-generation, you can imagine that we try to limit this.


To work in this environment, agreement has to be reached as soon as possible, not just about the feature set, but also about the application’s design, in order to reduce the number of post-launch changes. Pulling these tasks up front reduces the likelihood of running into coding dead-ends that force a lot of rework (as an example, try adding “undo” to an application that isn’t use the command pattern). By designing the software in the software engineers design tool of choice (UML for me, thanks), the design of the application can be considered and (mostly) factored properly before the first line of code is written. It also provides an excellent reference base for considering how new features might be worked into the design later, since the design isn’t scattered through hundreds or thousands of source files.

all roses have thorns

The reason that Agile project management is generally more efficient than ones with large up front design considerations is that, when complete, they, in theory, give you the minimum amount of code to solve the problem.  This makes it easier to comply with the YAGNI philosophy. When done up front, the design must be more flexible to allow for the inevitable last minute shifts in requirements. However, I have found that this is not entirely bad. Enterprise software typically has a long lifespan and additional flexibility in the design allows it to absorb changes more gracefully than a purpose-built system might.