4

I'm a programmer at a small company who's used to receiving projects by someone saying in a meeting: "make an e-commerce website," and then I'll just take it upon myself to do it. The only requirements I receive are the ones I ask for.

We're expanding, and I've been tasked with leading the development/management of a large web application. We will be utilizing a new in-house team of several programmers, as well as an outsourcing company.

In order to allow a new programmer to develop a component for this application, what should I provide to them?

What I'm really struggling with right now are determining the types of resources to provide, the level of separation that should exist between them, and how granular the details should be.

Let's say this project is an e-commerce website that will consist of a storefront, a shopping cart, and user registration, and I want a programmer to work on the user registration. I would greatly appreciate if someone can list out, very exactly, what should be provided, as, despite my best Googling, all I can find is high-level "fluff" about this. For example:

  • Should I include diagrams (UML?), and if so, which ones, and what should they be conveying?
  • Should I prepare written documentation (like a spec sheet?), and if so, what types of details should be included?
  • Should I provide things like functional/non-functional requirements, business requirements, etc.?
  • Wow that's a tough question. To enable the others to write pretty good answers, try to highlight your root question. I assume it is something like "How can I grant that subcontractors realise the requirements within the described scenario?". As usual on SE, Try to avoid multiple questions in one post, this will make the answers blurry: Do you want a list all all items to be provided (if so, you should provide more a lot more details of your scenario)? Do you want to know if you should provide UML, the UML level of detail, ... – Tob May 7 '15 at 18:18
  • 1
    It sounds like your organization is pretty small, still. Are you functioning as roles other than project manager? Meaning, are you still working on the project in some technical capacity, as an architect, designer, developer, or tester? I think it may be better to think about the roles required to complete this project and what things each role does. At this time, you may be in several roles, but that could change over time as the team grows and matures. – Thomas Owens May 8 '15 at 1:17
  • What this seems to boil down to is "What does a programmer need to develop their deliverables?", which is good because "How do we put a project-managed SDLC?" in place is far too broad. Yet reading between the lines that is also what is being asked. What I don't understand from this question is why you don't already know the answer since you are currently a programmer- Surely you therefore know what you need to develop your deliverables, or what you would like to have. I think you need to think about what you need to achieve, break that down into goals, then ask for help realising each goal. – Marv Mills May 8 '15 at 8:11
  • 1
    This is a very high level question and will yield Google's high level fluff answers. If you want lower level answers, you need to ask lower level questions. This is a great question but you need to dive down deeper and then put the pieces together to help you steer what looks like a PM maturity effort. – David Espina May 8 '15 at 13:34
  • @GoatBreeder, I don't believe UMLs are still relevant except in compliancy andor academic context. Does Google's engineering team uses UML? – Pacerier Jan 28 '16 at 10:24
3

As they say in the Washington Post's Worst Week in Washington column, "Congrats - or something..." Set aside the UML, you have more pressing concerns. As is so often the case, your multi-part question can be decomposed into individual questions, many of which have already been addressed on SE.

  1. Project Charter
  2. Stakeholder analysis and management. How do you manage conflicting stakeholder demands? Do you manage the team? Do you manage the contractors? See Working with a “single point of contact” and Project Manager - Writing Project Specification
  3. Project Plan
  4. Work Breakdown Structure

Sorry I ran out of time, but this should get you started - perhaps to the exit to look for that programming job you just left. :-)


Addenda:

Warning: Don't mistake a MS Project document for a Project Plan.

Take a look at http://www.projectmanagement.com/Templates/. For example, there is a Software Development Project Plan: "Here is everything you need for a software development project, from planning through close-out." Theis document requires $249 membership but the list of topics may help you evaluate free offerings on the internet. The plan includes:

  • Project Launch
  • Acquire Resources
  • Requirement Definition
  • Detailed Design
  • System Configuration
  • Acquire and Install System
  • Application Development
  • Data Migration
  • System Documentation
  • Testing
  • Training
  • Production Implementation
  • CLOSE-DOWN

Less detailed is the JPACE Project Plan: "Timing is everything, even in project management. The key to a successful project is to use JPACE--that is, to Justify, Plan, Activate, Control and End it the right way. This Microsoft Project plan will help you do just that."

0

Do mini scrum, write lists of tasks on post its and stick em on a board. tell developers to do tasks.

As you yourself know, developers are used to lack of requirements. Once the site starts coming together, you'll soon get people saying 'make it more blue!' etc

  • A list of tasks is a form of work breakdown structure. An effective WBS and task prioritization assumes a strong user champion and committed business analysts. Please don't try to learn project management and agile developments at the same time. – WaltHouser May 11 '15 at 22:06
  • hah! yeah right. maybe in a perfect dream world – Ewan May 11 '15 at 23:30
0

I agree with WaltHouser, you should definitely install a complete project management. This is where you should go for mid term.

Unfortunately, I guess you don't have the time to get all the required knowledge. This is what you should provide short term:

  • System / Sub System Specification
  • System / Subsystem Design Document (at least the interface part)

You'll find on wikipedia nice templates for the both documents, search for MIL-STD 498. The standard is outdated, nevertheless the templates are very supportive.

Try to write good requirements. Support yourself and your colleagues by writing a Requirements Management Plan to define:

  • Requirements shall be atomic
  • Usage of must, shall, should, can as special words
  • Usage of a scheme for similar categories of requirements

I wrote it on the SSDD part: Focus on the interfaces, esp. those connecting different developer teams. Go for them as much into detail as possible.

The project management part of the job might be covered by intuitive behavior or good sense. Fore sure, training will help a lot. For the beginning, don't stop sharing information and listen.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.