logging in or signing up A Day In The Life Richie Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: Embed: Flash iPad Dynamic Copy Does not support media & animations Automatically changes to Flash or non-Flash embed WordPress Embed Customize Embed URL: Copy Thumbnail: Copy The presentation is successfully added In Your Favorites. Views: 1608 Category: News & Reports.. License: All Rights Reserved Like it (0) Dislike it (0) Added: August 09, 2007 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript A Day In The Life Of A Developer: A Day In The Life Of A Developer Grady Booch Chief Scientist In The Early Days Of Rational: In The Early Days Of Rational In The Early Days Of Rational: In The Early Days Of Rational We sought to build a software development environment that supported modern software engineering practices We built our own products We built our own tools We built our own hardware In The Early Days Of Rational: In The Early Days Of Rational The state of the practice of software engineering was subtly yet materially different Domain Before the Web Before most contemporary programming languages Best practices Before object-orientation Tools Before most team-oriented tools Culture Before open source and agile programming The World Of The Developer Has Changed: The World Of The Developer Has Changed The World of the Developer Has Changed: The World of the Developer Has Changed The World Of The Developer Has Changed: The World Of The Developer Has Changed The World Of The Developer Has Changed : The World Of The Developer Has Changed The World Of The Developer Has Changed: The World Of The Developer Has Changed Forces In Software: Forces In Software The Development Team: The Development Team The Development Team: The Development Team Team Size 1 2 4 8 16 32 64 128 256 The Development Continuum: The Development Continuum Development is a team sport Teams typically deliver systems, not just applications Such systems are rarely self-contained Services, infrastructures, and platforms serve as the dark matter of the development continuum Systems represent critical masses in the fabric of the development continuum The Development Continuum: The Development Continuum In The Current Days Of Rational: In The Current Days Of Rational Domain The presence of the Web impacts virtually all development Programming languages, services, infrastructures, and platforms continue to evolve Best practices We better understand what works and what doesn’t Tools We better understand how to automate those practices Culture Peopleware issues are growing Culture: Culture All meaningful development is formed by the resonance of activities that beat at different rhythms The activities of the individual developer Social dynamics among small sets of developers Dynamics among teams of teams What Do Developers Really Do?: What Do Developers Really Do? There exist some soft studies The Psychology of Computer Programming Gerry Weinberg Peopleware: Productive Projects and Teams Tom DeMarco and Tim Lister The Peopleware Papers Larry Constantine What Do Developers Really Do?: What Do Developers Really Do? There exist a few empirical studies By The Way, Has Anyone Studied Real Programmers Yet? Larry Votta Empirical Studies of Software Engineering: a Roadmap in The Future of Software Engineering (forthcoming) Dewayne Perry, Adam Porter and Lawrence Votta Designing the Working Process: What Programmers Do Besides Programming Jorg Strubing A Day In The Life Grady Booch What Do Developers Really Do?: What Do Developers Really Do? There are secondary sources that infer what developers do Communication and Design with the Internet: A Guide for Architects, Planners, and Building Professionals Jonathan Cohen Collaborative Development Environments (CDEs) Has Anyone Studied Real Programmers Yet?: Has Anyone Studied Real Programmers Yet? Larry Votta in the Proceedings of the Ninth International Software Process Workshop (ISPW9) 'We should study what [developers] do, and then build productive theories … to explain why they are doing what we observe. Finally, we should refine these theories by demonstrating and confirming our hypotheses through sequences of experiments.' Designing The Working Process: Designing The Working Process Jorg Strubing in the NATO Advanced Research Workshop for User-Centered Requirements For Software Engineering Environments, 1991 'Being a sociologist, I have found that designing software is a highly cooperative social process.' 5 year investigation First series of experiments with 10 open-ended interviews and one group discussion Second series of experiments with 25 interviews with programmers and a couple of expert interviews What Programmers Do: What Programmers Do Organizing the working steps Representation of design decisions and ideas Communication and negotiation Programming is a task requiring Very heterogeneous activities and requirements Management of ambiguity Significant 'negotiativeness' A Day In The Life: A Day In The Life Grady Booch, experiment conducted on Tuesday, March 27, 2001 involving 50 developers from around the world Artifacts generated include Photo Pre-day survey Desktop snapshot Timesheets Photos: Photos Timesheet: Timesheet Timesheet: Timesheet Desktop Snapshots: Desktop Snapshots Analysis: Analysis Gender 81% male, 19% female Location Austria, Germany, Canada, United States, India, Australia, New Zealand, Venezuela, Russian Federation Job title Software engineer, chief architect, tool smith, analyst, programmer, chief technologist Experience 9 years average 1 year minimum, 43 years maximum Coworkers 1,325 average 1 minimum, 17,000 maximum Analysis: Analysis Domain GUI for technical users Posting system for TV advertising Telecommunication networks Banking and financial applications Order processing Managing fishing quotas Embedded military Web portals 'Anything our customer desires' Analysis: Analysis Platform 46% Unix 41% Windows 7% Linux 5% pure Web Language 37% Java 35% C/C++ 28% other (Perl, Visual Basic, Ada, assembler) Tools Most use Visual Studio, Visual Age, or JBuilder (some use several) 10% use open source development tools Most use Microsoft Office Analysis: Analysis Analysis 16% average 5% minimum, 40% maximum Design 14% average 1% minimum, 40% maximum Coding 16% average 0% minimum, 60% maximum Testing 10% average 0% minimum, 50% maximum Analysis: Analysis On the phone 3% average 0% minimum, 20% maximum Reading 7% average 0% minimum, 31% maximum Productive meetings 10% average 0% minimum, 30% maximum Useless meetings 7% average 0% minimum, 15% maximum A Forthcoming State Change: A Forthcoming State Change The importance of team productivity will supercede the importance of individual programmer productivity Tools such as Visual Café, JBuilder, and Visual Studio are important in making the individual programmer more productive Success is defined by the ability to manage the creative, engineering, and production teams Development as a team sport Collaborative Development Environments: Collaborative Development Environments Using the Web to change the nature of software development Web-based Artifact-centric Individual tools are invisible Provides different views to different stakeholders By The Web: Practice: By The Web: Practice DoD systems Construction and manufacturing Open source By The Web: Foundations: By The Web: Foundations ICSE 98 Workshop on Software Engineering Over the Internet Frank Maurer Agile Software Engineering Environment Over The Internet Aoyama The Spearmint Approach To Process Definition And Process Guidance Becker-Kornstaedt, et al A Proposal Of An Internet-based Software Development Process Model For COTS-Based Systems Development Hirai, et al An Internet Based Software Process Management Environment Maurer, et al Using The Internet To Combine And Analyze Distributed Software Engineering Data Tesoriero, et al A Web-based Synchronous Cooperative Editor For Software Development Yang, et al A Web-based Document Review System Konno, et al Providing An Experience Base In A Research Context Via The Internet Feldmann, et al By The Web: Foundations: By The Web: Foundations ICSE 99 Workshop on Software Engineering Over the Internet Frank Maurer A Web-based Virtual Room For Small Team Collaboration Penedo Distributed Software Development With CHIME Dossick MILOS: A Model Of Interleaved Planning, Scheduling, And Enactment Holz Approaching Process Support For Virtual Software Corporations Maurer Implementing An Internet-Enabled Software Experience Factory: Work In Progress Seaman A Process Web Center Purper Exploiting The web To Manage Software Development Artifacts: The Labyrinth Project Cattaneo DISC: A Distributed Web Based Software Configuration Management System Hoang Integrity, Authentication, Privacy, And Delegation: Security Goals In Automated Software Configuration Management Over The Internet Devanu Enterprise Software Deployment: It's The Control, Stupid Hall An Architecture For Supporting 'Pay-per-use' Downloadable Systems Based On Java 2 And JavaSpaces Wong Web-site Quality Evaluation Method: A Case Study On Museums Olsina Open-Source Software Development Cubranic By The Web: Foundations: By The Web: Foundations ICSE 00 Workshop on Software Engineering Over the Internet Frank Maurer Sophisticated Hypertext Functionalities For Software Engineering Bompani, et al Internet-based Software Engineering Enables And Requires Event-Based Management Tools Cook Global Problem Management System - Development Experience And Lessons Gao, et al Distributed Component Engineering Using A Decentralized, Internet-based Environment Grundy Virtual Software Inspections Over The Internet Harjumaa, et al Configuration Management And Open Source Projects van der Hoek Synchronized Multimedia For Internet-Wide Process-Centered Software Engineering Environments Kaiser, et al Building A Virtual Marketplace For Software Development Tasks Kotting, et al A Strategy For The Integration Of Software Process Support Technology Into Organizations Becker-Konrstaedt Establishment Of A Distributed Software Center Of Excellence Through Intel Ireland Melody Ontology-based Retrieval Of Software Process Experiences Nour, et al A Review-Report-Oriented Knowledge-Management System Kudo, et al By The Web: Foundations: By The Web: Foundations ICSE 01 Workshop on Software Engineering Over the Internet Frank Maurer Points Of Friction: Points Of Friction Start up Work product collaboration Communication Knowledge and experience Status Project memory Time starvation Stakeholder cooperation Stuff that doesn’t work Creating A Frictionless Surface: Creating A Frictionless Surface Start up Making the virtual project environment just an URL away Work product collaboration Artifact storage with change management, meta-knowledge, and semantically rich tools Communication Discussions, virtual meetings, and project dashboard Time starvation Virtual agents Stakeholder cooperation Process automation Stuff that doesn’t work Return On Investment: Return On Investment Economic Cost of startup Cost of using/administering Business Support for nomadic developers Support dynamically created teams Technology Gives in house and dispersed employees a single point of access that includes all the development tools, techniques, and collaborative functions they need A Survey Of CDE Sites: A Survey Of CDE Sites Other domains Asset management www.componentsource.com Information services www.rational.net Infrastructure www.webex.com Netmeeting, Webex Community www.groove.com Software www.sourcecast.com Other Domains: Manufacturing: Other Domains: Manufacturing Design Engineering, February 2000 ConceptWorks Pivotal Envision-i OnsSpace E-Vis Other Domains: Construction: Other Domains: Construction Asset Management: Asset Management Information Services: Information Services Information Services: Information Services Information Services: Information Services Information Services: Information Services Information Services: Information Services Community: Community Lotus Notes Created by Ray Ozzie, bought by IBM Basically an electronic bulletin board Newsgroups Adobe groupware Community: Community Community: Community Community: Community Community: Community Community: Community Groove features Visual indicators Awareness (of users and content) Text/voice chat within/outside spaces Message history File viewers Microsoft Office integration File management Role-based access control Sketchpad and calendar tools User reporting Community: Community Sharepoint Search engine Data access and indexing Subscription Microsoft Office integration Version control Workflow Document profiling Dashboard Microsoft VisualStudio integration Software: Software Software: Software The Focus of a CDE: The Focus of a CDE Artifact Management: SCM Continuum: File Management Heavy CM Simple Versioning Moderate CM Artifact Management: SCM Continuum No shared components Hierarchies of shared Components Not Parallel Highly Parallel Shared Storage Software: Software Methodologies and Developer Resources Internet A Preview of Rational Hosted Tools and Services Daniel Wedge and Rich Hillebrecht Session#RTL08 Collaborative Development Environment: Collaborative Development Environment Project Workspace 4Project Assignment 4Access Rights 4Team Management 4Collaboration Collaborative Development Environment: 4Change Management 4Document Management 4Requirements Management Collaborative Development Environment Team Tools Project Workspace Collaborative Development Environment: Collaborative Development Environment Methodologies and Developer Resources Team Tools Project Workspace Development Resources 4Reusable Assets 4Web-based Training 4Best Practices Forms Of Collaboration: Forms Of Collaboration Mailing lists are great for Small groups with a common purpose; conversations that wax and wane over time; communities that are just getting started; newsletters and announcements Message boards are great for Asking and answering questions; encouraging in-depth conversations; managing high-volume conversations; providing context, history, and a sense of place Chat rooms are great for Holding scheduled events; preparing for – and debriefing after – live events; discussing offline events as they’re happening; hanging out– relaxing, flirting, gossiping, visiting Whiteboards are great for Brainstorming, communicating, and discussing Netmeetings are great for One on one discussions Webex meetings are great for Group presentations and distributed discussions Virtual Team Management: Virtual Team Management Instant messaging Virtual meeting room Application sharing Centralized document storage management Searching and indexing Document check in/out Co-browsing Electronic document workflow Calendaring and scheduling Online event notification Project resource profiling Whiteboards Online voting and polling Roger Fournier, Infoworld, March 5, 2001 Virtual Team Management: Virtual Team Management Tools, for both connected and disconnected use Discussion groups Project dashboards/metrics Self-publication of content Collaboration must be in context Security Backup Personalization Virtual agents for daily hygiene Meeting automation One Hundred Small Things: One Hundred Small Things Basic hygiene Integration with Outlook, Project, Palm Webification of all artifacts Rethink the concept of a project and a subproject Creature comforts Publish and subscribe mechanism Picking up crumbs Workflow assistance Status assistance Stages Of Maturity: Stages Of Maturity Stage 0 Simple artifact storage and navigation Stage 1 Basic mechanisms for collaboration Stage 2 Advanced mechanisms; basic tools for manipulating artifacts Stage 3 Advanced tools; creation of virtual presences Engineering Software: Engineering Software There is a time and a place for coding in the zone Yet, development is indeed a team sport Individuals and teams must cope with high degrees of uncertainty, ambiguity, and chaos While at the same time, demanding creativity, predictability, and repeatability We can only hope to engineer the illusion of simplicity Reducing the friction of development frees developers to build great software You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.