theAppFactory

Traditional university software development and software engineering programmes do not typically provide graduates with exposure to how applications are actually developed in commercial settings. The modern software development landscape increasingly incorporates AI-powered tools that fundamentally change how developers work, collaborate, and solve problems. Many courses find it challenging to cover essential commercial development practices including requirements gathering, stakeholder management, version control collaboration, code review processes, AI tool integration, deployment practices, technical debt management, cross-functional collaboration, and client communication.
New graduates seeking early career positions as software developers often focus on highlighting technologies, coding languages, and related tools without articulating alignment to commercial contexts or demonstrating practical skills acquired through real-world application.
This project aims to simulate the experiences and challenges of a real software house by developing web applications motivated by real problems with real clients using modern web technologies and AI-enhanced development practices. Students will work in teams using typical software development practices found in industry, whilst learning to leverage and critically evaluate generative AI tools as both productivity enhancers and collaborative partners.
Synopsis
Traditional university software development and software engineering programmes do not typically provide graduates with exposure to how applications are actually developed in commercial settings. The modern software development landscape increasingly incorporates AI-powered tools that fundamentally change how developers work, collaborate, and solve problems. Many courses find it challenging to cover essential commercial development practices including requirements gathering, stakeholder management, version control collaboration, code review processes, AI tool integration, deployment practices, technical debt management, cross-functional collaboration, and client communication.
New graduates seeking early career positions as software developers often focus on highlighting technologies, coding languages, and related tools without articulating alignment to commercial contexts or demonstrating practical skills acquired through real-world application.
This project aims to simulate the experiences and challenges of a real software house by developing web applications motivated by real problems with real clients using modern web technologies and AI-enhanced development practices. Students will work in teams using typical software development practices found in industry, whilst learning to leverage and critically evaluate generative AI tools as both productivity enhancers and collaborative partners.
Aims
This project simulates software development practices found in typical web development companies, including strategic integration of AI tools that have become standard in modern development workflows. Working on real web and mobile applications motivated by genuine problems with actual clients, students will experience how AI tools like GitHub Copilot, ChatGPT, and other generative AI resources are transforming software development.
Students will reflect on their experiences with both traditional development practices and AI-assisted workflows, capturing insights to improve their employability by demonstrating technical skills, ability to work effectively with AI tools, understanding of their limitations, and maintenance of code quality and security standards in AI-augmented development environments.
Commercial Development Challenges Explored
Requirements gathering and stakeholder management: Working directly with clients to understand business needs, manage changing requirements, and translate non-technical specifications into technical solutions
Project estimation and timeline management: Accurately estimating development effort, managing competing priorities, and delivering to fixed deadlines with resource constraints whilst accounting for AI tool efficiency gains
Version control collaboration and AI integration: Using Git in team environments with branching strategies, code reviews, merge conflicts, and release management practices, including managing AI-generated code contributions
Code review processes for traditional and AI-generated code: Participating in peer reviews, maintaining code quality standards, and critically evaluating AI-suggested solutions for security vulnerabilities and performance issues
AI tool integration and workflow management: Incorporating AI assistants into daily development workflows whilst maintaining team consistency, code standards, and appropriate skill development balance
Testing and deployment in production environments: Understanding differences between development, staging, and production environments, including quality assurance strategies for AI-generated code
Technical debt management and AI dependency: Balancing feature delivery with code refactoring, maintenance, and long-term system sustainability whilst avoiding over-reliance on AI tools
Cross-functional collaboration and AI communication: Working effectively with designers, product managers, and QA teams whilst transparently discussing AI tool usage with clients
Legacy system integration and AI-enhanced development: Adapting to existing codebases and implementing changes using both traditional methods and AI assistance
Performance optimisation under real-world constraints: Optimising applications for actual usage patterns, server limitations, and budget constraints
Documentation, knowledge transfer, and code ownership: Creating technical documentation using AI tools whilst ensuring team members can explain and modify all code independently
Security, compliance, and AI ethics: Implementing security best practices whilst managing AI ethics including intellectual property implications and licensing considerations
Client communication and expectation management: Explaining technical concepts to non-technical audiences whilst maintaining transparency about AI tool usage
AI Integration: Opportunities and Challenges
Opportunities
Accelerated Learning: Leveraging AI tools to understand unfamiliar technologies quickly and receive instant explanations of complex concepts
Enhanced Productivity: Using AI pair programming tools to write code efficiently, catch errors early, and explore alternative implementation approaches
Industry Relevance: Gaining experience with AI tools that directly mirrors current industry practices
Creative Problem-solving: Accessing AI-suggested innovative approaches and exploring previously unconsidered solutions
Improved Documentation: Utilising AI tools to generate technical documentation, user stories, and client communications
Challenges
Over-reliance Risk: Avoiding dependency on AI tools at the expense of fundamental problem-solving and debugging skills
Code Quality Concerns: Critically evaluating AI-generated code for security vulnerabilities, performance issues, and maintainability
Intellectual Property and Ethics: Understanding implications of using AI-generated code in client projects and navigating copyright considerations
Technical Debt Accumulation: Managing rapid AI-assisted development to prevent technical debt accumulation
Skill Validation: Distinguishing between AI-assisted capabilities and core competencies
Client Expectations: Managing client understanding of AI's role in development and setting appropriate expectations
Indicative Technologies
React JS, React Native, Express JS, Node JS and NPM, SQL, XAMPP, Git, GitHub, VS Code and appropriate extensions, Postman, GitHub Copilot, ChatGPT-4, Claude, Cursor IDE, AI-powered testing tools, and other emerging generative AI development platforms.
Project Structure and Duration
The project spans 12 weeks, organised into three development sprints of four weeks each. Students work in cross-functional teams of 4-5 members, with each team assigned a dedicated client project. Teams follow agile methodologies with weekly sprint planning, stand-ups, and sprint retrospectives. Each sprint concludes with client demonstrations and feedback sessions.
Client Projects and Scenarios
Students engage with real clients from local businesses, charities, and start-ups requiring genuine digital solutions. Example projects include:
Kingston University: Workload Allocation System
Se@T: Seating Assignment Tool
Expected Outputs
Students will build, secure, and deploy web/mobile applications and API services, demonstrating proficiency in both traditional development practices and AI-assisted workflows. Key outputs include reflections, portfolio artefacts, STAR stories, blogs, and LinkedIn assets that showcase understanding of modern software development company demands. Outputs aim to demonstrate close alignment to work practices, an ability to work effectively in teams, evidence of critical thinking, and both technical and professional aptitude within a work simulated context.