Corner Software DevelopmentHomeServicesResourcesContact Us


"...Impressive work, especially on the limited budget and time you had to work with. I hope to do future projects with Corner Software and I'd strongly recommend you to anyone!"
Sandy Macdonald, President
The Exchange Group

More references...


Services : Development Practices

[General Info]

Corner Software uses several best practice methodologies in our development work, without being completely pinned down to any single methodology. Software development is constantly improving and each new technique adds its own refinements and point of view.

Corner Software Workbench: UML Use Case Diagram

We stay up to date on new practices like Interaction Design, the Unified Modeling Language, and Extreme Programming, without throwing away our trusty toolbox from years past. This leads to an evolutionary style that is always pragmatic, always improving, and eager to experiment and learn.

Of course some techniques are more influential than others, and Extreme Programming has provided a batch of good ideas. For example the emphasis on complete and up to date regression testing for all objects, and testing before building, is really powerful. We deliver complete regression test suites with all of our projects, and partly as a result of this, our post delivery fixes have fallen off dramatically. Delivered code tends to work pretty much as expected.

Just in case you aren't familiar with the term 'regression testing', it means a set of tests you run after every change to ensure that nothing got broken. The way Extreme Programming recommends using it is to design test routines that your code 'should' pass. Then write the code that will pass those routines, then run the tests and fix the code until the code passes. Finally, every time you change anything at all, even if it REALLY couldn't possibly break anything, run the tests again.

Coding and testing this way allows us to modify, improve, and extend code with more confidence. If we do forget something, or cause an unintended side effect, it will get noticed before it causes a problem for our customers. So not only do we deliver better code, but we are delivering it faster and with more functionality than before. Thanks Extreme Programming!

Of course Extreme Programming isn't the only arrow in our quiver. UML, or Unified Modeling Language, is also a big hit here at Corner Software. Interestingly enough, that sort of contradicts our interest in Extreme Programming. UML is usually thought of as a modeling tool that implies a heavy up front design process that Extreme Programming sees as just being a bottleneck to getting real work done.

However, software projects are a tremendous communication challenge, and what UML provides is a great communication tool. It defines a language, both textual and visual, that programmers and customers can use to communicate about the problem they are trying to solve. Having that language has clarified and improved our communication with customers, and, we think it also improves how we think about problems.

That's just a peek into our current practices, we haven't touched on documentation, which is finally improving thanks to some simple but profound ideas like JavaDoc, or a number of other topics like refactoring, Interace design, contract programming, etc. But those are topics for another day.

If you'd like to discuss anything here please drop us a line, nothing we like better than chatting about software design ;-).


This site and all contents are copyright ©1998-2007 Corner Software Development Corp. unless otherwise specified. All Rights Reserved.