Essay for an efficient work alignment, collaboration and interactions.
“Genius is 1% inspiration and 99% perspiration”
-- Thomas Edison
Workflow optimization is all-time emerging field in the business. Even so, all companies have problems with efficient workflow. The document presents ongoing investigation into the central goal: “Efficient IT work”. I created this document based on my corporate and startup experience. I’m an IT Leader and Software Expert. However this document is not about software. It’s about work methodology.
In corporate world I was exposed to the big organization schemas. In startups, among many things, I was responsible for product delivery, system architecture and team building.
Creating an efficient IT structure is very challenging and super important for the business health, work quality and performance. It’s exceptionally difficult in the startup world when you need to be responsive for:
Success is an effect of: organization, risk management, focus, open mindset and proactivity. Having the idea is just a small part of the process.
The key to effective management of agile teams lies in the mastery of soft skills.
The main principle is that the team matters. You should respect the team and the work the team is doing.
It is important we all know what’s going on behind each other’s screen to some extent. Be open, share with your teammates your achievements and successes as well as your problems and issues. Don’t hesitate to tell when things frustrate you, when something really motivates you.
Use Asana to track you work and share the updates and goals with others.
Always share ideas you think are good! Focus on what you can do, rather than what you can’t. Be proactive ⇒ be positively active & be reasonable == able to make reasoning.
Encourage is the principal for building an efficient and sustainable environment.
Increase your productivity through better scheduling. Tips below comes from the asana team.
Agile software development is an umbrella term for several software development methods (including Extreme Programming and Scrum). More on this below.
In a nutshell Agile is a time-focused, iterative philosophy that allows to build a product step-by-step (incrementally), delivering it by smaller pieces. One of its main benefits is the ability to adapt and change at any step (depending on feedback, market conditions, corporate obstacles, etc.) and to supply only relevant products to the market.
To its advocates, Agile is a genuinely better way to run a company and an economy—better for those doing the work, better for those for whom the work is done, better for the organization itself. Instead of management extracting value from the firm, Agile generates value for customers and for society as a whole.
Agile methods were influenced by the ideas of lean manufacturing.
The main principles are:
Build faster - Measure faster - Learn Faster
Take Agile as the extension of the Lean.
A typical lean company follows a learn – measure – build cycle, and conducts many tests, frequently connects with customers, understands their value and focuses its key processes to continuously improve it. A never ending cycle leads the the teams to sustainability, smart development and success.
Let’s put them together:
Execute tasks faster, adapt to changes easier
Smart development, when you improve virtually everything you do by eliminating anything that doesn’t bring value to the customer
Makes the developing process flexible
Makes the developing process sustainable
Was initially designed for Software Development, then expanded to Marketing, and is currently applied in other areas
Started from traditional manufacturing and expanded to all existing industries
Action loop: product backlog – sprint backlog – iteration (sprints) – potentially shippable result
Action loop: build-measure-learn
Method for demonstrating progress — definition of ‘done’
Method for demonstrating progress — validated learning
Methodologies: Scrum, XP, FDD, DSDM, Crystal Methods etc.
Methodologies: Kanban, Kaizen etc.
Toolkit: sprints, boards, Scrum Master, acceptance tests, user story mapping etc.
Toolkit: hypotheses, split (A/B) tests, customer interviews, funnel and cohort analysis, Customer Success Manager etc.
My project management tool of choice is Asana.
Projects are lists of tasks. Use a project for a larger goal and a task for an action someone on your team needs to take in order to achieve that goal.
What does it mean?
Mainly that you can use projects to express different goals of your work schedule:
Slice and dice your tasks into multiple projects - this way you will deliver better overview of the work and features. This idea is nicely presented in Project management, goal setting, roadmaps, pipelines… video.
Asana projects go beyond simple task list view:
It’s uber useful for the team and the company if we can aggregate information (links, decisions, files) in a feature tasks. This way we will not get lost with the job we have to do and it’s related resources. Connecting work video tutorial explains it perfectly.
There are many good methodologies applying Agile principles. Below I will use the eXtream Programming (XP), which works very well in the startup environment. Other methodology, which works especially well in the enterprise environment is Scrum.
XP focuses heavily on ensuring the quality of delivered software and which prescribes engineering solutions towards that end. XP solicits feedback immediately - you don’t have to wait for the new sprint to tackle the feedback.
The team engage in Release Planning and Iteration Planning. They work in very short development cycles so that changes requested by the customer (who works on-site with the team) can be incorporated frequently.
Principles around meetings:
Note: each meeting should have a goal and agenda. If the meeting doesn’t bring any value then it means that the work flow requires some reorganization or there is something wrong with management. Make sure that:
Roadmap is a high level set of big user-stories. It’s there to keep the define big objectives and priorities. Roadmap helps the sprint planning process to deliver important features to the user and keep the system in a good condition.
Sprint, on the other hand, is to deliver incremental updates leaned into roadmap.
It’s hard to make meaningful progress when you’re constantly open to changing strategy. On the other hand, rejecting all new ideas is the opposite of fostering the kind of organization that can learn, adapt, and react quickly.
Specing is the process preceding the feature development. It’s composed from Scoping and Design. Then it is refined during Development.
The goal of scoping is to define all stakeholder objectives. Plan ahead for planning!. The project leader have to describe what he wants and why. He have to involve in this process business stakeholders to make sure that the objectives are in line with the product goals, and clear and extensive to think about the solutions.
During the design phase we want to define user and system requirements, describe the user stories. This process have to involve IT (architect and developer) to be sure that the design is aligned with the system architecture and define correct timeline for it.
Development starts with the analysis - collecting the solution ideas and finding possible obstacles which haven’t been defined during the design phase. For non trivial tasks, developer will present his solution idea to the rest of developement team for review before coding the solution. If it’s required, a developer works closely with the business to implement the solution and refine the spec document.
Be clear who owns what part of the work. This way we encourage accountability and empower every contributor to play their part in achieving the broader goals.
For more complex tasks, it’s good to do incremental solution idea review. The developer comes with his solution idea and the review is a brainstorm of new ideas and roadblocks. The obstacles you will find can often be gleaned from past failures. Other times, they’re determined by vividly imagining just how certain scenarios will play out
The documentation, data and code language is English.
Documentation has many forms: code comments, tests, diagrams, spec documents… In the lean environment the principal artefact of the work is a product. Although much documentation can be replaced with highly readable code and tests, in a world of evolutionary architecture it's important to record certain design decisions for the benefit of future team members and for external oversight. Therefor it’s a good habit to organize the list of objectives, requirements and user stories from the specing / planning sessions. Another form of the documentation is Lightweight Architecture Decision Records. At some point it’s enough to store information in the project management tool → Keep Asana as it’s your Database of work.
To model the feature design use:
Diagram and module specification have to be stored in DEV Wiki folder in Google Drive. Diagrams should be created using Google Drawing or draw.io
Remember - to successfully complete objectives you need to carefully plan and explain them.
Don’t make the plan by your own!
Without a clear plan, you might find yourself running a race without a route.
What you prioritize is what you value as a company. So, the prioritization process is the process through which you determine and express the company’s values. Ensure that you don’t do anything that isn’t the next most important thing that can be done. The clearest sign that smart prioritization isn’t happening is stupid perfectionism; if you see that happening, you know you need an upgrade to “more maniacal.”
XP (Extreme Programming) defines a great framework for high quality and responsive deliveries.
Starting with some framework from the very beginning is uber important. It’s easier to do this job at the beginning then adapt later.
Data can be an incredibly powerful communication tool, but even the most informed product teams can skew or misunderstand the purpose of a new feature because of a miscommunication.
As a Project Leader, during Scoping and Design stay clear about the most important goals that can be solved during the sprint. Drive the user stories using the data (metrics). Establish baselines by gathering metrics and tracking how new features and processes impact them.
However, sometimes the data won’t be able to tell you how to prioritize and scope or why the metrics are shifting (doing opposite than expected). Rely on your best judgment, test often, and build in frequent reviews to see what tactics are causing metrics to shift in the direction you want.
It’s crucial to define KPIs for your roadmap. What brings the value to the customers? Does the system works seamlessly? Measure completeness of your roadmap and KPIs for each sprint planning.
Agile ⇒ Lean: Build faster - Measure faster - Learn Faster
© Robert Zaremba http://scale-it.pl