The story so far...
Once upon a time in land far, far away, there was a little town called Derp Town.
The citizens of Derp Town were a proud bunch, and one day they decided that they would create their own university for the betterment of all human-kind (and, of course, to show those snobby villagers over in Herp Town that they were not to be outdone).
The villagers were a poor but sincere lot and they were determined to build their university the Right Way™. They formed a Board of Directors (this was Modern Times, after all, and the old, fuddy-duddy Academic Council could leave their robes at home, thankyouverymuch) and resolved that their university would do the best of everything. It would be the most grand university in all the land. (Being more grand than the nearby Herp College, of course, was a thought that occurred to nobody at all and the citizens would not have dreamed of slighting their neighbours.)
The university had no technology budget or staff to speak of yet, but that was not to stop them from becoming the market leader in technological engagement with their students, who would travel over all the lands and across all the seas to study at such a prestigious institution and gaze with awe upon the wonder that was Derp University's... Enrolment Portal.
Undeterred by their lack of suitably qualified engineers, and being a resourceful lot, they asked the teenage child of the Dean of the Rainbows and Unicorns faculty to write their grand portal using the latest and greatest technologies of the time. It would, they claimed, be a sight to behold.
The portal was unveiled, and all gasped with wonder, for it was great. The villagers rejoiced and praised the Board of Directors for their foresight and wisdom.
Of course, there were a few hitches along the way; a few things that went mysteriously wrong and a couple of enrolments that got eaten by the Terrible Greedy Fossifoo who snuck into the system one night, but by and large the villagers were pleased.
One fine day, the Dean's teenage offspring decided to embark upon an adventure. The child packed some belongings, said some good-byes and set off to find the Ivory Tower of the Architect. The villagers rejoiced, for the Architect would surely praise their Enrolment Portal and speak of them in tones of wonder. (And they would be not at all smug, of course, that Herp College had never seen or spoken to the Architect or been so praised.)
During the time in which the Dean's teenage child and creator of the Enrolment Portal was adventuring, it came time for the villagers to extend the portal. While it had been quite good for the first semester of Derp University's existence, a few (very minor, of course) shortcomings had come to light. Although the portal's author had been the only one to know all the ins and outs of the system, the villagers were confident that these shortcomings could surely be quickly addressed by the villagers themselves if they merely put their minds to it.
Weeks came and went; mid-term examinations happened; students caroused; the leaves began to brown and the seasons to turn. The villagers were no closer to making the required changes to their vaunted portal, and time was running out.
The villagers knew fear.
The villagers worked, and patched, and cobbled, and hacked, and eventually they came to accept that their vaunted Enrolment Portal was unknowable by any but its author, and its author was nowhere to be found.
The villagers knew despair.
In their misery, the villagers came to accept that what they had created for their university had not been Done Right This Time™, but instead was a Brand New Legacy Application™.
A young traveller from far away chose this moment to enter the village, seeking food and shelter. The traveller carried in their luggage a USB stick, upon which the villagers discovered wondrous tomes of knowledge and tools of refactoring. In desperation, the villagers begged the traveller to renew their hopes and restore their grand Enrolment Portal to its former glory.
Despite being young and inexperienced, the traveller took pity upon the villagers and agreed to aid them.
To be continued...
Making Legacy Apps Awesome
Firstly, thank you for signing up for the "Making Legacy Apps Awesome" workshop. We think and hope that you'll get a lot out of it.
In case you haven't worked it out yet, the young traveller is you. You've been lumped with a legacy app that you didn't create, don't particularly understand and almost certainly don't like.
In this case, the app is Derp University's Enrolment Portal, and your mission is as follows:
- Figure out what on earth the app does.
- Get it into a maintainable state.
- Extend it to allow the university to handle enrolments for multiple semesters.
- Ship it before winter arrives (i.e. in two days, when the workshop concludes).
- Understand how to make an awful app awesome and keep it that way.
Before the workshop, your laptop should contain:
- Microsoft Visual Studio 2012. If you don't have 2012 you can download a trial from Microsoft.
- Microsoft SQL Server 2012 Express Edition. It would be a good idea to install this in advance as it takes a while.
- JetBrains ReSharper. You can get a 30-day trial if you don't have a licence.
- The installer for JetBrains TeamCity. Install it in advance if you want but that isn't required.
- The installers for Octopus Deploy (grab the Octopus Server, Octopus Tentacle and TeamCity Plugin downloads). You don't need to install this in advance.
- IIS installed on your laptop. You can have IIS Express as well but you will want the full version of IIS installed, otherwise we can't mimic a production system.
- A Git client of some description. Download TortoiseGit if you're not familiar with Git. Don't worry - we won't be doing anything scary with it.
- A backup of the app's database. It would be a good idea to restore this to SQL Server Express beforehand just so you know how to do it.
The hashtags for the day are #Readify #DevDay. Your presenters are:
- @uglybugger (Brisbane/Melbourne/Sydney)
- @kkozmic (Brisbane)
- @MaheshKrishnan (Melbourne)
- @jorgefioranelli (Sydney)
By all means, please have fun - but be nice. We're looking forward to seeing you there!
All done? Here's some follow-up material.
- Eric Evans, "Domain-Driven Design: Tackling Complexity in the Heart of Software"
- Michael Feathers, "Working Effectively with Legacy Code"
- Roy Osherove, "The Art of Unit Testing"
- Eric Freeman et al, "Head-first Design Patterns"
- Robert C. Martin, "Clean Code: A Handbook of Agile Software Craftsmanship"
- Jez Humble and David Farley, "Continuous Delivery"
- Andrew Hunt and David Thomas, "The Pragmatic Programmer: From Journeyman to Master"
- Mark Seeman, "Dependency Injection in .NET"
- Vaughn Vernon, "Implementing Domain-Driven Design"
- Domain events
We'd love to hear from you. Feel free to contact us at firstname dot lastname at readify dot net.