2026-10-01 Alumni visit day! We red team the early drafts of our product definitions. |
2026-09-30 Plan hard, build easy. Plan hard build easy. Say it with me again: plan hard, build easy. All of which means we are exercising discipline to have hard conversations about functionality, platforms, test plans and more now rather than defer them to the point of delivery, when, in reality, there is no ability to do anything about any disagreements or surprises. It sure is easy to duck hard questions about how to resolve ambiguities. It is easy to ignore the stuff we're teaching, groove on the positive waves of good intentions and proceed like this is some generic programming exercise in a prior class. This lasts up until we have a head on collision with reality once a client tries to use our product. That's the point when all the gaps we covered up start to stick out badly. All at once. Honest: it is a lot less uncomfortable to hammer issues out today than in December. Do your future self a favor and humor me by trying out these active discovery techniques to surface hard issues now. Learn the professional practices by trying them (and seeing a positive outcome) instead of ignoring them (and learning what you should have done.) |
2026-09-29 More discussion today about notations available for us to model systems under study. The language we choose nuances what we can express about it, which is why we choose models carefully and with intention to span perspectives. |
2026-09-27 A busy new week begins. As mentioned in last Thursday's lab, I have opened a team engagement poll on the mentors site. Please take a moment to complete this right away. I will harvest it over coffee early Wednesday, so whatever constitutes "end of day" for you on Tuesday is the effective deadline. Also per lab discussion, let's plan on having each team prepare both a detailed Amazon Press Release and a planning document answering questions according to the Heilmeier Catechism. These should be word documents in project repo ("amazon.docx" and "heilmeier.docx" respectively). For best effect, I suggest not worring about this immediately. First focus on a kick-ass pitch for our visitors on Thursday, factor in their suggestions, feedback and advice, and then bake that new insight into these planning documents. Remember, we are practicing use of our Principles of SE too, so we will check how well the growing base of materials line up. Shoot for having this in sometime NLT "over the weekend" meaning I will check them out over first coffee Monday morning. |
2026-09-25 We launch this week with mixed effort but with most teams having enjoyed a substantive exchange with the clients. This gets us something to research as we flesh out design options in prep for pitching to our experts (alumni) on Thursday. Our alumni are ready to give deep insights on ways forward; give them deeply researched designs for consideration. This weekend, take some time to reflect on all that needs to go into the full spec for approval (the so-called "green light to build.") It's a lot. And it all needs to line up. Remember that principle? "We get confidence in the quality of software by expressing it in multiple, independent ways that can be checked." The spec asks us to express the solution in terms of functionality, cost, test results and much more. We don't want a bag of mixed puzzle pieces that don't look related to one another; we'd love to see a cohesive story colored in about the solution, and supported with piloting. What can we run soon to reduce risk of failure? There are plenty of options. Yes ... there is much on which to reflect this weekend. |
2026-09-24 More discussion today on discovery and the bootstrapping of good projects. Scheduling remains the top challenge in this, but we already know that going in. We'll have much on which to reflect this weekend. |
2026-09-23 Nice to see at least some of the teams making contact with clients and organize some initial discovery questions. Good! Let's blow some positive waves your way accordingly. It would be nicer still if we saw more consistent ticketing of the team members who I know were involved but, at least at the moment in the logs, show no sign of activity. A little more situation awareness will go a long way to succeeding in the class. |
2026-09-22 Class was a busy mix of retrospective on scrimmage three, launch of class projects and open discussion about best practices to ramp up on the new assignment. Picking up with discovery on Thursday. |
2026-09-21 And we're off on the main class projects! We practiced a lot of things in the scrimmage. Meeting one another. Assessing strengths. Figuring out what we bring to the game. Now is not the time to just toss all that out and launch a new effort just like before. Apply what you practiced and learned. Yes. There needs to be a pizza in your team's future this week. Bootstrap fast. No project goes faster than the pace of the first week. Launch slow? Fail slow. Apply your principles, like ... survivability perhaps? Assess risk early and handle it head on. You should be taking active engineering control of the project, so ... what are we going to write down? What gaps need to be filled in, like, yesterday? Along the way we should prep a team charter. Plan on pushing one to your new team repo by late Friday. We'll talk more of what goes into this tomorrow but arrive to class with ideas about what you think needs to be clarified to get going. After all, you just practiced in the scrimmage. You should have some informed opinions now for what might have made things smoother. We already suggested some materials from LinkedInLearning. Now you might also take a look at characteristics of high-performing teams. |
2026-09-20 Class project tasking is released. Look in your personal repo folder for your specifics, and that will in turn tell you the shared folder where you can find more data. Time to get going! I think I got all the right links set up in the mentors site, but do please double check and let me know soon if it doesn't show you with the right team information. |
2026-09-20 Be sure to have what you need from the group VMs soon. Later this week they will be recycled for other tasks. |
2026-09-19 Scrimmage 3 grading summary is released. Saw a lot of good code blended with good intentions too. Plenty of great learning opportunities in this exercise! We will have much about which to talk, and even more to absorb and apply in the class projects coming up. |
2026-09-18 Adding ... I'm seeing some great comments and insights in the team reviews. You get it! Glad for this. |
2026-09-18 Scrimmages are in! Team reviews are in! Time for a weekend of reflection on what has been going on. Making decisions about what solves the problem is a whole different kettle of fish isn't it? Having someone else make those decisions so we can just go build them, and grind against known test data, sure simplifies the game a lot. Think about how your team made its decisions, what observations you made that informed the ways forward. What do you think we might make a specific point of doing differently in the class projects coming up? Software engineering is an exercise in what? Communication. And so far the most common challenge I have seen in scrimmage three has been gold plating the solution - making it harder to build, more elaborate to use. We are projecting way more of our own guesswork and biases into the decisions than we might. Which is to say, we didn't communicate as much as we might. Some teams did so in the last day or two. Good! Better late than not at all, but really -- waiting to find out something important after you build the app is a pretty expensive time to have that chat, wasn't it. Magically, our discussion topic for Tuesday is ... Discovery! Almost like we want you to dig deeper into properties of the class project early. Weekends are for reflection. Reflect! |
2026-09-17 Lab today with a big mix of practical tech tips and thoughtful discussion intended to draw out best value from these exercises. (Don't just do them. Reflect on what we take from them. Feed your brain.) |
2026-09-15 Here is an opportunity to practice in a small way the kind of spec writing task that we will do in the large with our class projects. Based on this initial project statement interview our virtual client (at TerpAI) and use that information to draft a proposed product definition consistent with the requirements of our timeline document. It is okay to leave out the cost estimate and advertisements/poster at this time. The intent is that this be effective practice before going into the drafting of our product definitions on the live projects. Hopefully this puts on your radar the kinds of issues to be alert to (and take seriously) before making impactful decisions on your class project. The virtual agent should appear as the agent CMSC435-101 available to you in your TerpAI dashboard at some point soon. Study the project statement then interview this agent. What must you take away from the client in order to craft an effective plan? Save the dialog from your exchange with the agent and push it as a text file "terpai-dialog.txt" to your repository folder. Then create your draft product definition as Word document "terpai-spec.docx", also to be pushed to your repository folder. We will pull these for evaluation presently. Yes, this is an individual exercise. No, it is not graded. Yes, we think it is important but only for people who want to understand the material and pass the class. You know how we promised to have you practice stuff in the small before having to do it for real in the large? This is an example. |
2026-09-15 Discussion today on principles of software engineering - the stuff we will practice applying (and studying with what effects) through balance of semester. |
2026-09-12 For those keeping track in advance of the close of schedule adjustment period on Monday, we have accounted for 21 of the 100 available course points. The grade server is up to date. Cipher accordingly. |
2026-09-12 Scrimmages 1 and 2 are graded, with summary pushed to group folders. I saw lots of good tech being discussed, and a few fairly effective models were offered in diagrams and video. There were no real crash-burns. (But the semester is young.) Follow your plan and let's see where we are on the coming Friday. Keep close attention to the time you invest on this, and on any decisions you need to change or elaborate in order to ship. If we aren't measuring, we aren't doing engineering. Also take the time to check in on what comments were offered to you by your team members last week on the mentor site. It is now set to the new work week. |
2026-09-10 Discussion today about process, planning and no small amount of detail concerning projects due tomorrow. Also one oops. I invited that you fill me in on your 400-level course experiences, but only had the data loaded up through last semester. My bad. I just reloaded those data, but this reindexes the table, and we lose the entries of the many of you who already responded. So .. thank you for responding quickly, but we need you to re-enter! Sorry about that. Please check to make sure your entries are listed now. |
2026-09-10 The 400-level course survey is released at https://vale.cs.umd.edu/mentors/courses (This is a route not linked to the masthead.) Will discuss in lab today. Please complete by end of the day Tuesday (15th) so I can process Wed morning. Also discussed in lab today will be the peer mentoring practices. Everything you enter this week will be shared with your team members at 9:30PM Friday, then a new week begins. We will use the next week's comments as review, not coaching, and they'll only be used by me as harvested end of the week. Then everything resets and we will being with regular practices on the class project. |
2026-09-09 Happy birthday to the first computer bug. We have been chasing all of your descendants for years. |
2026-09-08 Discussion today revolved around making the case for why do software engineering, which we did by looking at a number of scenarios where it was done poorly. This tells us the scope of our study is far larger than just programming. |
2026-09-06 A revamped mentors site is up. Are there bugs in the new release? I'd like to think not but let's find out. For now a bug bounty is in place: phony baloney bonus points for first report of each (genuine) bug. Now is a safe and relaxed time to get used to this tool. One real question: there is a poll open now (INQUIRIES->POLLS) and I'd like to see this completed by end of the evening on Tuesday. (This phrasing always translates into "before I make coffee and check it the next morning.") Try adding some tickets to get used to how it works. We can go over this in class. Don't feel bashful about what you enter for now, since I will reset it all at launch of the big class projects. Same for peer mentoring tips: you should be set with a team that matches your current group. (Some of you are still 'team of one' so let's get this squared away soon!) Offer some feedback, which will be shared at end of the work day on Friday. Again, we will go over this in class. Noodle around! |
2026-09-03 A lab today using Gallup Strengths. Let's find what superhero powers we bring to help our teams win, and let's also use these powers to connect with one another. To assist in your weekend reflection please consider these supplemental materials. Quality improvement is an on-going game after all.
|
2026-09-03 First individual exercises are graded and grade server remains up to date. Students who didn't supply all those files as requested should still do so, since these materials will have additional uses throughout the semeater. |
2026-09-02 Two new small exercises to get on your radar. You don't have enough details for how to do these now but you will by end of tomorrow's lab. First will be a one page submission of the Gallup Name it, Claim it, Aim it exercise. Details and examples in the lab, but after you do the practice tomorrow, do it again for real (when you have time to think about it) and submit it in your personal folder as "superhero.pdf" by SOB Tuesday, the 8th. At the same time, submit a one page 'infographic' to pitch yourself to others in the class. Again we will address this is more detail tomorrow but there is a lot of flex in what you offer. Submit this a PDF named for your directory ID. (If your campus directory ID is "morty" then the file will be "morty.pdf".) Do you notice the pattern here? We are giving a lot of weight to tasks which help us understand what we bring to the game, what strengths we use to bring success to a team, and how we are perceived by others. This is often pretty eye opening, and it gives better context for building solid relationships that are needed in a strong team. It works! (Let me know if any team wants to serve as the control group and use the "make shallow agreements, dial it in over discord, throw over the wall at end" processes. But my thought is: if you would like better project results than in the past then maybe you should try better processes than were used in the past...) |
2026-09-01 Since we kicked off discussion today with the question "what will we do to succeed in 435?" it is worth reminding you that we have tips from students in previous semesters on exactly this point. |
2026-09-01 The deadline to be on a scrimmage team is the deadline for submitting (as a team) the first scrimmage deliverables, which is Friday the 11th. Scrimmage 1 (the first group exercise) is a two-foot putt: By 0700 on Friday, September 11, set up your assigned VM as a web server. Put up something that would convince a skeptical visitor landing on that site that the server relies on a database. Ensure your VM itself evidences basic care, maintenance and security. (Some students are cyber mavens - cool, so to be clear, this security directive is not an obligation for you to go nuts with defense!) Per convention for group assignments, please submit a cover sheet, according to the conventions for digital signatures with the template in your group folder. This exercise serves as a forcing function to get everyone on a group in some form or other; it lets us practice conventions for projects; and it is a good opportunity to practice following our "do the right thing" directive. Heads up! Scrimmage 2 will be due by 9PM that same Friday. This is also an easy target (problem statement is below), but will require talking as a group in order to sort it out. Write a "plan" for how you intend to solve the problem, and provide a lo-fi model of the workflow your solution will support. The deliverable is your plan in Word document as "scrimmage02.docx" and either a Figma, Canva, Powerpoint animation or video animation of the workflow. These materials should persuade an ostensible product manager (like me) that you are on track and can solve my problem. (Cover sheet: yes.) The lo-fi, plan and ultimate product should be consistent with one another. Scrimmage 3 is due at 5PM the following Friday (September 18). For this just follow your plan. Foreshadowing: by that point we will have surveyed all sorts of simple ways that a product can fail for want of technologists anticipating what users actually need. Your mission is not to replicate such defects in this exercise. Don't just write a program; solve the problem. (Cover sheet: yes.) The problem - a capability we'd like to have: We'd like to have an easy way to visualize (read: "graph") data from a collection of uniformly-structured spreadsheets. There, how's that for simple? Give me what I need in order to succeed. Okay, a few more details are probably in order... The starting point for this tool is a set of "uniformly-structured spreadsheets" - what are those?
And what do we want to do? Enable the user to select and graph one or some of the properties over the whole set of input files. If sheets capture weather then we might want to identify a TEMP row name and value field(s), then our product will select those values from the set and pop up an appropriate display. If it was stock values, then we'd identify one or some stock ticker values (if they appeared as the labels in each sheet) and display the graph of those over time. If sheets were about student performance then we'd offer the list of student names (again presuming these appear as labels in each sheet) and see the trend of values over time. Some considerations to put on your radar early: First, we will be pretty concerned with usability and work flow. A system that technically allows visualization but with high-overhead data entry costs is probably a non-starter for us. Next, we are interested in rich display options; flexibility in what we name and how we select them is important. And as noted, we want something more than a toy; let's do this at scale. Finally:
This is a cool little toy that will let us explore common SE issues in the small before we blindly move ahead to trip over them in the larger project later. |
2026-09-01 First class today. We went over some of the practice, made some introductions and got us all going on first assignments. To reproduce here a few points which came up along the way:
|
2026-08-31 And we're under way in a new semester! Repository credentials will have been emailed to your address of record as of this morning, so per usual convention, if this is a surprise to you then check your spam folder or contact me soon so you can get set up. The initial assignments are due Thursday as detailed in the 2026-08-08 post below. We'll see you in class Tuesday. We have many small tasks to field right now, and with fast pace. It is for good effect, I promise you, so my best advice is to cheerfully stay up to date with them. |
2026-08-08 A new semester is just around the corner. We're sharing the the first assignments for those who want to get an early start.
|