Ask HN: How to break up and delegate programming tasks
1–10 of 36 posts
Re: Ask HN: How to break up and delegate programming tasks
#2i suppose usually for me one guy (say techsupp or network admin) sets up the svn/webserver/db, one guy decides on frameworks, one guy writes the skeleton, one guy starts on the interface, art guy does art stuff, typically the lead dev is watching over all this and merging stuff and when ready gives orders and access to the repo. if theres at least some structure and one template or working file/interface the juniors will have more success imo.
Re: Ask HN: How to break up and delegate programming tasks
#3Start by flow charting your program, divide the task into a group of single statements tasks that can be described without the words, "and", "or", "but", etc. If you need to use those words, you need to chain tasks or make decisions.
After several revisions (3-4) you should have a nice overview of what the program should do, and how it will do this.
Selected tightly interacting objects, and combine them into modules. This will be very apparently visually if you followed the first step correctly.
Now you have your scrum/agile modules which can be outlined and given to subordinates, and tracked.
:.:.:
If the whole thing is a just a big ball of spaghetti, make a another revision. If its very very small you might be glossing over the technical details.
Re: Ask HN: How to break up and delegate programming tasks
#4Re: Ask HN: How to break up and delegate programming tasks
#5For smaller features, we'll have a Dev just implement it full stack. This takes for granted that a lot of the plumbing is there, i.e. Service Layers
It helps to have these conversation during Planning Meetings. This will help the Dev's involved to get a better understanding of the Stories and Tasks needed to implement.
Re: Ask HN: How to break up and delegate programming tasks
#6My advice would be to think in terms of black boxes. You should couch tasks in terms of what the developer can expect to receive through an API and what their code should output. What happens in the middle shouldn't be anything you concern yourself with. When the junior developer works out a solution they can run their idea past you, and if it sounds OK then they write the code. And then you can review their code. The minutia of implementation is not your problem any more.
Re: Ask HN: How to break up and delegate programming tasks
#7Generally speaking, finding a way to communicate this will depend on the engineer. Someone very junior may require much more detail both in the technical design and the feature itself. Someone more senior needs less of that.
Re: Ask HN: How to break up and delegate programming tasks
#8personally i like to write the mvc skeleton myself and decide which frameworks will be used and go from there. or a leader for the backend who assigns out small tasks as small as a "function to draw this btn or move this element" or to "find me a library that does X and is..." and then he can merge them in... then once it takes shape you can share the files and the work. i suppose usually for me one guy (say techsupp…
Feature: User can register an account
Tasks:
- Registration page markup/styles
- Registration page JavaScript (form validation/submission)
- Registration API endpoint (validate properties, ensure user doesn't already exist, persist user model, send email confirmation).
Prerequisites: - Data access layer implementation
- User model
- App layout markup/styles
- Email service implementation
I agree with the lead setting up the initial project skeleton, but I'd take it one step farther and say the lead should also document the conventions for adding new modules/etc, so that the structure doesn't start to fall apart once the lead stops being the one managing it day to day.Re: Ask HN: How to break up and delegate programming tasks
#9I'm a big fan of old fashion modules are flow charting. Start by flow charting your program, divide the task into a group of single statements tasks that can be described without the words, "and", "or", "but", etc. If you need to use those words, you need to chain tasks or make decisions. After several revisions (3-4) you should have a nice overview of what the program should do, and how it will do this. Selected tig…
More recently, I've fallen back to frequent meetings and a wiki as the best way to work through this kind of activity - but it feels like there should be a better way.
Re: Ask HN: How to break up and delegate programming tasks
#10Stop treating your junior developers like monkeys who are only there to implement your brilliant ideas. That's not their job. Every developer should be able to solve problems; the more senior the developer the greater the impact and complexity of the problem they should be solving. Your job as a senior developer is to work out the high-level architecture that will contain the solutions to the smaller problems - eg so…
I think a lead should care about how their team is implementing the features they are working on, because as the lead, it's crucial that you know the ins and outs of the system - where I think we agree though is that a lead shouldn't care about how the work is done, as long as it's done within the project guidelines (coding style, consistent structure, testing, etc.).