class ITShopHumanInterfaces
class ITShopHumanInterfaces
/// by Dan Hermes
{
public object resource;
public object need;
public object product;
public interface ICustomer
{
resource m_cabbage;
resource m_bizneed;
public resource Money
{
get { return m_cabbage; }
set { m_cabbage = value; }
}
public need BusinessNeed
{
get { return m_bizneed; }
set { m_bizneed = value; }
}
}
public interface IUser : ICustomer
{
public product DesireASoftwareProduct(resource Money,need BusinessNeed)
{
product Product = IStakeholder.MakeItHappen(BusinessNeed, Money,
Time);
return Product;
}
public product PleadForEnhancements(resource Money,need BusinessNeed)
{
product ProductUpgrade = IStakeholder.MakeItHappen(BusinessNeed, Money, Time);
return ProductUpgrade;
}
}
public interface IStakeholder: ICustomer
{
public resource Interest
{
get { return m_givesasht; }
set { m_givesasht = value; }
}
public product MakeItHappen(need BusinessNeed, resource Money, resource Time)
{
ConsiderBusinessStrategy(strategyCompanyGoals);
return Product;
}
}
public object req;
public object spec;
public object wireframe;
public object techdesign;
public object projectplan;
public object code;
public object strategy;
public interface ITShopHuman
{
}
public interface IProjectManager: ITShopHuman
{
public needs TeamNeeds
{
get{ return m_teamneeds; }
set{ m_teamneeds = value; }
}
publicneeds BusinessNeeds
{
get{ return m_bizneeds; }
set{ m_bizneeds = value; }
}
public needs PoliticalPressure
{
get{ return m_pols; }
set{ m_pols = value; }
}
public resource Time
{
get{ return m_ticktock; }
set{ m_ticktock = value; }
}
public resource Money
{
get{ return m_dills; }
set{ m_dills = value; }
}
public resource Staff
{
get{ return m_staff; }
set{ m_staff = value; }
}
public projectplan CreateProjectPlan(resource Time, resource Money, resource
Staff,spec Specifications)
{
return ProjectPlan;
}
public ExecutePlan(DateTime StartDate)
{
Agile();
Scrum();
CMMI();
}
}
public interface IAnalyst: ITShopHuman
{
public req AnalyzeBusinessNeeds(need BusinessNeeds)
{
return BizRequirements;
}
public req DefineScope(req BizRequirements)
{
return ScopedRequirements;
}
public spec CreateSolution(req ScopedRequirements)
{
Specifications.Wireframes = MockupWireframes(ScopedRequirements);
return Specifications;
}
public wireframe MockupWireframes(req ScopedRequirements)
{
return Wireframes;
}
}
public interface IDeveloper : ITShopHuman
{
public resource Caffeine
{
get { return m_buzz; }
set { m_buzz = value; }
}
public techdesign Design(spec Specifications)
{
return TechnicalDesign;
}
public code Code(spec Specifications)
{
switch(JobType)
{
case “Retrofit”: Retrofit();
case “FromScratch”: FromScratch();
case “Maintain”: Maintain();
default: JustMakeItWork();
}
return Module;
}
public bool UnitTest(spec Specifications, req BizRequirements)
{
return FunctionsAsDesigned;
}
public code Release (code Module)
{
PreReleaseTest();
return Deliverable;
}
}
public interface IArchitect : IDeveloper
{
public strategy TechStrategy(spec Specifications, resource Time, resource Money, resource Staff )
{
Scalability();
Security();
Maintainability();
WellFactored();
ProperlyCoupled();
PatternUse();
ThirdPartyTools();
TotalCostofOwnership();
return TechnicalStrategy;
}
}
public interface IProductManager : IAnalyst
{
public strategy ProductStrategy(need BusinessDemands, need PoliticalPressures, need BusinessRealities, need MarketData, need TechnicalConsiderations, resource
Time, resource Money, resource Staff )
{
return ProductStrategy;
}
}
public interface ITester : ITShopHuman
{
public Boolean EnterpriseApplicationTwelveWeeksBehindSchedule
{
get{ return m_twelveweeksbehind; }
set{ m_twelveweeksbehind = true; }
}
public code LastMinuteCodeUpdate
{
get { return m_justonemorelittlething; }
set { m_justonemorelittlething = value; }
}
public testplan DevelopTestPlans(specs Specifications)
{
return TestPlan;
}
public Collection ExecuteTestplan(testplan TestPlan, code Release)
{
return Issues;
}
public Boolean RegressionTest(testplan RegressionTestPlan, code Release)
{
return DidWeEffItUp;
}
public Boolean SmokeTest(testplan MakeItUpOntheFly, codeRelease)
{
return not Shmokin;
}
public Boolean PreReleaseTest(testplan PreReleaseTestPlan, code Release)
{
return Boolean ReadytoRelease;
}
}
public interface IReleaseEngineer : IDeveloper
{
}
public interface ISysAdmin : IDeveloper
{
}
public interface IDBA : IDeveloper
{
}
public interface ICTO : IProjectManager, IArchitect, IAnalyst
{
public strategy RunTheITShop(need BusinessNeeds, resource Time, resource Money, resource Staff )
{
TechnologyStrategy();
IProductManager.ProductStrategy();
IStakeholder.BusinessStrategy();
return PlanItAndMakeItHappen;
}
}
}