using AgileDevelopmentMethodologies; using ASP.Net2.0; using VisualStudio2005; using NUnit; /// <summary> /// This individual will crank out high-quality, high-performance application logic /// to further enhance the absolute industry-dominance for their employer. /// The product is the leading provider in its market vertical and seeks to broaden /// their target market. It's an exciting and challenging opportunity. /// The website itself is a public facing, high volume, user-centric, high profile brand /// and a valuable product to consumers /// /// Highly competive rate for competent individuals. Position immediately available. /// </summary> public class SeniorDeveloper : ExperiencedWebApplicationDeveloper { string _employmentType = "Contract/Contract to Perm"; int _immediateDotNetTeamSize = 3; int _organizationTeamSize = 20; //appx int _growthOpportunity = int.MaxValue; //TODO: consider refactoring to use larger datatype // developer must be able to work on a team yet complete tasks independently // skills needed are all facets of web development as related to high-traffic, // public websites. Think http://www.apartmentguide.com public SeniorDeveloper() { bool requirementsMayBeChanging = true; // requirements changes are expected and embraced. // If they should change, impact to project development must be minimal. // Short iterations enable flexible project focus while( requirementsMayBeChanging ) { // turn business ideas into functional feature sets AnalyzeRequirements(); // elaborate on the above CommunicateWithBusinessSponsors(); // estimate the work required to implement EstimateFeatureDevelopmentCost(); // independently productive and organized. Aware of issues early and able to communicate risk ManagePeronalResponsibilitiesAndHelpManageProjectStatus(); // commitment to quality and zero defects (*required) WriteUnitTests(); // keep the logic out of the interface, keep the html out of the class library. // if any feature or function cannot be unit tested, it is a poor design. refactor! ImplementStrongObjectOrientedPractices(); // IE 5+, FireFox 1.0+, mac and windows SupportCrossBrowserUserInterface(); // check in code that compiles // Write unit tests that verify code-complete // strive for zero defects WorkOnATeamUsingContinuousIntegrationAndAutomatedUnitTesting(); // work closely with qa to provide a rich test plan // that extends upon the quality offering of developer authored unit tests // be production ready with every short iteration DeployShortIterativeReleasesToQualityAssuranceTeam(); // occassionally, defects pop up. Troubleshoot, isolate, write test(s) and resolve TroubleshootAndResolveDefects(); // the product's market performance drives the enhancement and extension of the website // if the product ceases to deliver business value, the product is not worth continued investment if( ProductIsMeetingSuccessFactors() ) { // feedback from user response will help to make the product even better. // New features will be requested! requirementsMayBeChanging = BusinessSponsorHasAquiredNewData(); } else { // isolated failure is only an opportunity to improve even more but continued failure is a problem throw new NotMeetingObjectivesException( "Time to reconsider the current product direction" ); } } } }