mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-29 21:41:00 +08:00
83 lines
7.2 KiB
Markdown
83 lines
7.2 KiB
Markdown
|
[#]: collector: (lujun9972)
|
||
|
[#]: translator: ( )
|
||
|
[#]: reviewer: ( )
|
||
|
[#]: publisher: ( )
|
||
|
[#]: url: ( )
|
||
|
[#]: subject: (4 steps to becoming an awesome agile developer)
|
||
|
[#]: via: (https://opensource.com/article/19/2/steps-agile-developer)
|
||
|
[#]: author: (Daniel Oh https://opensource.com/users/daniel-oh)
|
||
|
|
||
|
4 steps to becoming an awesome agile developer
|
||
|
======
|
||
|
There's no magical way to do it, but these practices will put you well on your way to embracing agile in application development, testing, and debugging.
|
||
|
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/metrics_lead-steps-measure.png?itok=DG7rFZPk)
|
||
|
|
||
|
Enterprises are rushing into their DevOps journey through [agile][1] software development with cloud-native technologies such as [Linux containers][2], [Kubernetes][3], and [serverless][4]. Continuous integration helps enterprise developers reduce bugs, unexpected errors, and improve the quality of their code deployed in production.
|
||
|
|
||
|
However, this doesn't mean all developers in DevOps automatically embrace agile for their daily work in application development, testing, and debugging. There is no magical way to do it, but the following four practical steps and best practices will put you well on your way to becoming an awesome agile developer.
|
||
|
|
||
|
### Start with design thinking agile practices
|
||
|
|
||
|
There are many opportunities to learn about using agile software development practices in your DevOps initiatives. Agile practices inspire people with new ideas and experiences for improving their daily work in application development with team collaboration. More importantly, those practices will help you discover the answers to questions such as: Why am I doing this? What kind of problems am I trying to solve? How do I measure the outcomes?
|
||
|
|
||
|
A [domain-driven design][5] approach will help you start discovery sooner and easier. For example, the [Start At The End][6] practice helps you redesign your application and explore potential business outcomes—such as, what would happen if your application fails in production? You might also be interested in [Event Storming][7] for interactive and rapid discovery or [Impact Mapping][8] for graphical and strategic design as part of domain-driven design practices.
|
||
|
|
||
|
### Use a predictive approach first
|
||
|
|
||
|
In agile software development projects, enterprise developers are mainly focused on adapting to rapidly changing app development environments such as reactive runtimes, cloud-native frameworks, Linux container packaging, and the Kubernetes platform. They believe this is the best way to become an agile developer in their organization. However, this type of adaptive approach typically makes it harder for developers to understand and report what they will do in the next sprint. Developers might know the ultimate goal and, at best, the app features for a release about four months from the current sprint.
|
||
|
|
||
|
In contrast, the predictive approach places more emphasis on analyzing known risks and planning future sprints in detail. For example, predictive developers can accurately report the functions and tasks planned for the entire development process. But it's not a magical way to make your agile projects succeed all the time because the predictive team depends totally on effective early-stage analysis. If the analysis does not work very well, it may be difficult for the project to change direction once it gets started.
|
||
|
|
||
|
To mitigate this risk, I recommend that senior agile developers increase the predictive capabilities with a plan-driven method, and junior agile developers start with the adaptive methods for value-driven development.
|
||
|
|
||
|
### Continuously improve code quality
|
||
|
|
||
|
Don't hesitate to engage in [continuous integration][9] (CI) practices for improving your application before deploying code into production. To adopt modern application frameworks, such as cloud-native architecture, Linux container packaging, and hybrid cloud workloads, you have to learn about automated tools to address complex CI procedures.
|
||
|
|
||
|
[Jenkins][10] is the standard CI tool for many organizations; it allows developers to build and test applications in many projects in an automated fashion. Its most important function is detecting unexpected errors during CI to prevent them from happening in production. This should increase business outcomes through better customer satisfaction.
|
||
|
|
||
|
Automated CI enables agile developers to not only improve the quality of their code but their also application development agility through learning and using open source tools and patterns such as [behavior-driven development][11], [test-driven development][12], [automated unit testing][13], [pair programming][14], [code review][15], and [design pattern][16].
|
||
|
|
||
|
### Never stop exploring communities
|
||
|
|
||
|
Never settle, even if you already have a great reputation as an agile developer. You have to continuously take on bigger challenges to make great software in an agile way.
|
||
|
|
||
|
By participating in the very active and growing open source community, you will not only improve your skills as an agile developer, but your actions can also inspire other developers who want to learn agile practices.
|
||
|
|
||
|
How do you get involved in specific communities? It depends on your interests and what you want to learn. It might mean presenting specific topics at conferences or local meetups, writing technical blog posts, publishing practical guidebooks, committing code, or creating pull requests to open source projects' Git repositories. It's worth exploring open source communities for agile software development, as I've found it is a great way to share your expertise, knowledge, and practices with other brilliant developers and, along the way, help each other.
|
||
|
|
||
|
### Get started
|
||
|
|
||
|
These practical steps can give you a shorter path to becoming an awesome agile developer. Then you can lead junior developers in your team and organization to become more flexible, valuable, and predictive using agile principles.
|
||
|
|
||
|
|
||
|
--------------------------------------------------------------------------------
|
||
|
|
||
|
via: https://opensource.com/article/19/2/steps-agile-developer
|
||
|
|
||
|
作者:[Daniel Oh][a]
|
||
|
选题:[lujun9972][b]
|
||
|
译者:[译者ID](https://github.com/译者ID)
|
||
|
校对:[校对者ID](https://github.com/校对者ID)
|
||
|
|
||
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||
|
|
||
|
[a]: https://opensource.com/users/daniel-oh
|
||
|
[b]: https://github.com/lujun9972
|
||
|
[1]: https://opensource.com/article/18/10/what-agile
|
||
|
[2]: https://opensource.com/resources/what-are-linux-containers
|
||
|
[3]: https://opensource.com/resources/what-is-kubernetes
|
||
|
[4]: https://opensource.com/article/18/11/open-source-serverless-platforms
|
||
|
[5]: https://en.wikipedia.org/wiki/Domain-driven_design
|
||
|
[6]: https://openpracticelibrary.com/practice/start-at-the-end/
|
||
|
[7]: https://openpracticelibrary.com/practice/event-storming/
|
||
|
[8]: https://openpracticelibrary.com/practice/impact-mapping/
|
||
|
[9]: https://en.wikipedia.org/wiki/Continuous_integration
|
||
|
[10]: https://jenkins.io/
|
||
|
[11]: https://en.wikipedia.org/wiki/Behavior-driven_development
|
||
|
[12]: https://en.wikipedia.org/wiki/Test-driven_development
|
||
|
[13]: https://en.wikipedia.org/wiki/Unit_testing
|
||
|
[14]: https://en.wikipedia.org/wiki/Pair_programming
|
||
|
[15]: https://en.wikipedia.org/wiki/Code_review
|
||
|
[16]: https://en.wikipedia.org/wiki/Design_pattern
|