You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Instructions/Labs/LAB_AK_14_get-started-spec-driven-development.md
+31-37Lines changed: 31 additions & 37 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,9 +22,11 @@ For help with configuring your lab environment, open the following link in a bro
22
22
23
23
## Exercise scenario
24
24
25
-
You're a software developer working for a consulting firm. Your firm is moving to a spec-driven development (SDD) methodology using GitHub Spec Kit and GitHub Copilot in Visual Studio Code. You're asked to start using SDD and GitHub Spec Kit as soon as possible. One of your clients, Contoso Corporation, needs you to develop an MVP version of RSS feed reader app. Using the SDD methodology with GitHub Spec Kit helps to ensure that the application is delivered quickly, and that other features can be rolled out seamlessly when needed.
25
+
You're a software developer working for a consulting firm. Your firm is moving to a spec-driven development methodology using GitHub Spec Kit and GitHub Copilot in Visual Studio Code. You're asked to start using SDD and GitHub Spec Kit as soon as possible.
26
26
27
-
Contoso's stakeholders documented the project goals, features, and technical requirements for the RSS feed reader app. You can use stakeholder documents to help generate the constitution, specification, plan, and tasks documents.
27
+
One of your clients, Contoso Corporation, needs you to develop an initial MVP version for an RSS feed reader app. Contoso stakeholders documented the project goals, initial features, and technical requirements for the app. You'll use the stakeholder documents to help generate the constitution, specification, plan, and tasks documents. Contoso has indicated that additional features will be requested after initial sign-off.
28
+
29
+
Implementing the SDD methodology with GitHub Spec Kit ensures that the MVP app is delivered quickly, that it meets stakeholder requirements, and that new features can be rolled out seamlessly when needed.
28
30
29
31
This exercise includes the following tasks:
30
32
@@ -242,7 +244,7 @@ Use the following steps to complete this task:
242
244
243
245
Notice that the constitution workflow extracts underlying principles from your inputs (both text and files) and uses that information to add details to the constitution.
244
246
245
-
Developers should review the constitution to ensure it captures requirements accurately. This step is important when you're working in a production environment where the constitution represents your business requirements and technical governance. For a training exercise, this review is mainly to help you become familiar with the constitution content.
247
+
You should review the constitution to ensure it captures requirements accurately. This step is important when you're working in a production environment where the constitution represents your business requirements and technical governance. For a training exercise, this review is mainly to help you become familiar with the constitution content.
246
248
247
249
Each principle should be clearly stated and actionable. For example:
248
250
@@ -251,7 +253,7 @@ Use the following steps to complete this task:
251
253
252
254
If critical requirements are missing or unclear, you can edit the constitution.md file directly to add or modify principles.
253
255
254
-
For a real-world project, it's important to review the constitution against the following criteria:
256
+
In a production scenario, it's important to review the constitution against the following criteria:
255
257
256
258
- Completeness: All major areas are covered.
257
259
- Clarity: Each principle is specific and unambiguous.
@@ -301,9 +303,7 @@ Use the following steps to complete this task:
301
303
302
304
The summary description should be concise (a sentence or two) and capture the core functionality of the RSS Feed Reader app. For example:
303
305
304
-
```plaintext
305
306
"MVP RSS reader: a simple RSS/Atom feed reader that demonstrates the most basic capability (add subscriptions) without the complexity of a production-ready application."
306
-
```
307
307
308
308
1. Close any files that you have open in the editor.
309
309
@@ -390,7 +390,7 @@ Use the following steps to complete this task:
390
390
391
391
1. Close any files that you have open in the editor.
392
392
393
-
1. In the Chat view, to start the technical planning process, enter the following command:
393
+
1. In the Chat view, to start a workflow that generates the plan.md file, enter the following command:
@@ -427,12 +427,6 @@ Use the following steps to complete this task:
427
427
- Edit the plan.md file directly, or
428
428
- Ask follow-up questions in GitHub Copilot Chat.
429
429
430
-
For example:
431
-
432
-
```plaintext
433
-
The plan should include a section on how to handle feed parsing errors gracefully. Can you update the plan.md file to include this information?
434
-
```
435
-
436
430
1. Save the files, and then commit and sync your changes.
437
431
438
432
The technical plan now serves as a blueprint for implementation. It translates business requirements into concrete technical decisions while respecting organizational constraints.
@@ -501,21 +495,21 @@ With a clear specification, technical plan, and tasks document in place, you're
501
495
502
496
The tasks.md file provides a phased implementation strategy that breaks down the work into manageable chunks. The implementation can be approached in different ways, depending on project priorities and constraints. For example, you could consider one of the following strategies:
503
497
504
-
- Implementing the feature incrementally, phase by phase.
505
-
- Implementing the entire feature set at once.
498
+
- Implementing the app features incrementally, one phase at a time.
499
+
- Implementing the entire app in a single pass.
506
500
- Implementing the MVP app features first, then building out additional features.
507
501
508
502
GitHub Spec Kit's implement workflow demonstrates how to use the tasks.md file to guide the implementation process.
509
503
510
-
In this task, you review the implementation strategy and then use `speckit/implement` to implement the MVP version of the application.
504
+
In this task, you review the implementation strategy and then use `speckit/implement` to implement the MVP version of the application (the ability to add and view subscriptions).
511
505
512
506
Use the following steps to complete this task:
513
507
514
508
1. Open the **tasks.md** file, locate the **Implementation Strategy** section, and then review the suggested MVP strategy.
515
509
516
510
The MVP (or MVP First) strategy is intended to deliver a working app as quickly as possible. It should focus on completing the Setup (initialization) and Foundational (blocking) phases first before building out the first User Story (US1).
517
511
518
-
For example, the MVP implementation strategy might be similar to the following example:
512
+
For example, the MVP implementation strategy (the ability to add and view subscriptions) might be similar to the following example:
519
513
520
514
```plaintext
521
515
**Phases**: Setup → Foundation → US1 only
@@ -547,31 +541,33 @@ Use the following steps to complete this task:
547
541
548
542
> **NOTE**: GitHub Copilot displays frequent requests for assistance during the implementation phase. The time required to complete the implementation can be affected by how quickly you respond to requests for assistance/permission.
549
543
550
-
1. Continue with the implementation workflow until all tasks required for the MVP application are complete and the application is fully functional.
544
+
1. Continue monitoring the implementation workflow until all tasks required for the MVP application are complete.
551
545
552
-
GitHub Copilot should notify in the Chat view when the backend and frontend applications are fully functional.
546
+
GitHub Copilot should notify in the Chat view when the backend and frontend applications are complete.
553
547
554
548
1. Accept all changes made to the project files.
555
549
556
550
For this lab exercise, it's okay to accept all changes made by GitHub Copilot without a review. However, in a production environment, it's important to review all code changes carefully to ensure they meet quality standards and align with project requirements.
557
551
558
552
1. Save all updated files.
559
553
560
-
1. First start the backend application, and then start the frontend application.
554
+
1. Start the backend application, and then start the frontend application.
561
555
562
-
Ensure that both applications start without errors.
556
+
You can use a split terminal to run both applications side by side. Ensure that both applications start without errors.
563
557
564
558
You can ask GitHub Copilot for the commands required to start both applications if you're unsure. For example, you could enter the following prompt in the Chat view:
565
559
566
560
```plaintext
567
561
Can you provide the commands required to start both the backend and frontend applications?
568
562
```
569
563
570
-
1. Open a browser and navigate to the frontend application.
564
+
1. Verify that the frontend application opens successfully in the browser.
571
565
572
-
The frontend URL should be similar to the following: `http://localhost:5213`.
566
+
GitHub Copilot should specify a frontend URL in the Chat view that's similar to the following: `http://localhost:5213`.
573
567
574
-
Report back to GitHub Copilot if you encounter any issues. For example:
568
+
If the frontend application reports an error in the UI when it opens, report a detailed description of the issue to GitHub Copilot.
569
+
570
+
For example:
575
571
576
572
1. You start the backend application. The backend application is running locally on `http://localhost:5151`.
577
573
1. You start the frontend application. The frontend application is running locally on `http://localhost:5213`.
@@ -601,9 +597,7 @@ Use the following steps to complete this task:
601
597
at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(:5213/RenderBatchBuilder batchBuilder, RenderFragment renderFragment, Exception& renderFragmentException)"
602
598
```
603
599
604
-
At this point you need to report the issue to GitHub Copilot:
605
-
606
-
1. You report the issue in the Chat view.
600
+
1. You report the issue to GitHub Copilot in the Chat view.
607
601
608
602
For example:
609
603
@@ -635,14 +629,14 @@ Use the following steps to complete this task:
635
629
636
630
Continue to provide assistance until the issue is resolved. Once the issue is resolved, GitHub Copilot should ask you to resume manual testing.
637
631
638
-
1. Take a few minutes to verify the acceptance scenarios for the MVP application.
632
+
1. Take a couple minutes to verify that the frontend application is working as expected.
639
633
640
-
Here are some feeds that you can use to test the application:
634
+
Use the following feed URLs to test the application:
641
635
642
-
- https://devblogs.microsoft.com/dotnet/feed/ (The .NET Blog)
643
-
- https://devblogs.microsoft.com/visualstudio/feed/ (Visual Studio Blog)
You can find the acceptance scenarios in the spec.md file. The acceptance scenarios listed under the **User Scenarios & Testing** section.
639
+
You can find the acceptance scenarios in the spec.md file, under the **User Scenarios & Testing** section.
646
640
647
641
For example, the acceptance scenarios for the MVP application might be similar to the following example:
648
642
@@ -661,13 +655,13 @@ Use the following steps to complete this task:
661
655
662
656
Use Visual Studio Code to run the application, and then manually test the RSS Feed Reader functionality to ensure that it works as expected.
663
657
664
-
1. Continue manual testing and reporting results until all acceptance scenarios for the MVP application pass successfully.
658
+
1. Continue testing the frontend (and reporting any issues to GitHub Copilot) until all acceptance scenarios for the MVP application pass successfully.
665
659
666
-
Key Observations:
660
+
Key observations:
667
661
668
-
- The implementation process is iterative and might require multiple rounds of testing and debugging.
669
-
- Clear communication with GitHub Copilot is essential for effective troubleshooting.
670
-
- Thorough testing ensures that the MVP application meets the specified requirements and functions as intended.
662
+
- The implementation process can be iterative and might require multiple rounds of testing and debugging.
663
+
- Clear communication with GitHub Copilot is essential for effective troubleshooting.
664
+
- Thorough testing ensures that the MVP application meets the specified requirements and functions as intended.
0 commit comments